Who can we trust for software?

Thu 15 September 2016

TL; DR We need to figure out how to guarantee that software can be trusted

In the over-simple graphic above, I've tried to map some of the key technical roles being performed in the delivery and maintenance of complex systems and services. I'm struggling to work out who precisely sits in the bottom right corner, but I strongly believe we (i.e. everybody) need these people to exist, and we need to trust their work.

Trust is a difficult and complex topic, and sadly it feels like there is more evidence every day that people don't care enough about it.

Some politicians now seem happy to literally and blatantly disregard the facts, as opposed to just hiding or manipulating them. And some scientists are not much better, as the latest expose on the murky past of the sugar industry shows.

I can't make any strong claims about the ethics of software people in general, but in my direct experience the folks I've worked with have tended to be honest about their work, and I value that highly.

Engineers may argue and complain a lot, make mistakes, and be completely incapable of estimating how long things will take, of course :-) But normally technical people don't set out to deliberately do the wrong thing and lie about it, unless they are pressured or incentivised to do so.

I struggle to believe that "evil software engineers" were the root cause for the vehicle emissions cheating scandal.

And when software goes wrong, I would default to blaming inexperience, confusion and incompetence, rather than conspiracy.

But obviously there are bad actors in software, and their influence has become much more visible over recent years.

Trouble is, most people don't seem to care very much about the risks until they are impacted directly. We're mostly happy to

shovel our personal info and passwords into Google, Facebook, LinkedIn et al share our most private moments and conversations via phones and websites use online banks and retailers, and carry wireless electronic cards so we can be robbed-over-the-air without even the need to pick our pockets Travel far, at great speeds, in metal boxes that are entirely operated via software. I think the big metal boxes will be the tipping point.

Now that we're connecting all the metal boxes to the network, people are finally going to have to wake up.

As far as I know no-one has died as a result of hacks to cars or aeroplanes so far, but it's bound to happen. And when it does, the media will be all over the tech community.

"How could you let this happen?" and "What (TF) are you going to do to fix it?"

I'm expecting some seismic changes as a result:

  • A clear separation between 'developers' who just want/need to build apps and services on top of infrastructure software which they can assume to be trustable, and the people who commit to producing trustable infrastructure code
  • A realisation that trustability is harder (maybe impossible) to achieve without giving everyone access to the source code.
  • A lot of attention on how to verify, in public, that the infrastructure software really is trustable.
  • As a result of the above, a lot more formal verifiability and verification of open source software.

And then hopefully we'll all know who we can trust to guarantee that software is what it appears to be, and does what it claims to do.

Reposted from LinkedIn

The Dalton Cycle

Fri 29 July 2016

Thanks to Niall Dalton for this comment at the end of his post on the trustable-software list

"I go off on this tangent to raise the whole bucket of pain involved in building a trustworthy system like this. Not that we necessarily want to try to build a 100% trustworthy ...

Read More

Trustable Software - Help Wanted!

Tue 14 June 2016

For a whole load of reasons I think we need to get to trustable software, and would appreciate comments and suggestions, preferably on the mailing list, which is public.

Note, I'm not "marketing" or "selling" anything here. The aim is to trigger interest in a cross-industry set of grown-up ...

Read More

Are we there yet?

Sat 16 April 2016

Many large projects are late. Most of the time the the actual journey turns out to be much harder and much longer than it looked when we started out.

From a management perspective we are constantly looking for validation that we're hitting the plan, whether it's traditional milestones ...

Read More

Technical debt for whole systems

Sat 19 March 2016

"It ain't what you don't know that gets you into trouble. It's what you know for sure that just ain't so." [Mark Twain]

If you've been in involved in large-scale software projects over the last few decades you've probably learned the hard way that ...

Read More

Software Engineering As Legitimate Engineering Discipline

Wed 20 January 2016

For 2016 I've decided it's time I take my public communications seriously.

Perhaps some of my customers and colleagues realize that my previous attempts at wit are born from decades of struggle on difficult software projects.

But most of the internet has no idea who I am, and ...

Read More

Why Should GENIVI Members Contribute, Again?

Tue 23 June 2015

GENIVI Members need to make attractive, useful software to run reliably in cars for a long time. The amount of software needed is increasing faster than our capacity to bring in extra engineers, and our ability to increase the productivity of the engineers already engaged. Given the economics, automotive organizations ...

Read More

Leading Tools in GENIVI

Sat 02 May 2015

I've had a stormy relationship with the automotive industry - love-hate doesn't begin to cover it.

It's not that I'm a car guy - I can barely manage an oil change. But cars these days contain a staggering amount of software. And in spite of what some may ...

Read More

Three Times Done

Sun 11 January 2015

In my experience many organisations experience systemic difficulties in getting work 'done' to an acceptable standard. The Scrum solution for this is 'agreed definition of done', which typically leads to a checklist eg

  • the work has been checked in to the VCS
  • it builds ok
  • the automated tests pass
  • documentation ...
Read More

Refactoring is an anti-pattern

Fri 13 December 2013

I thought I'd written more than enough words on refactoring already, but maybe I was too cryptic.

So here's my version 2.

Let's start by noting that most of the folks who claim that they are 'refactoring' don't actually know what it means.

I, on the ...

Read More

What does "BSP" stand for?

Sun 23 June 2013

During a late-night drinking session technical discussion this week there was confusion about the meaning of "BSP" for Linux and Android.

Some folks think BSP stands for "Board Support Package".

But, as with SCRUM, the popular view is wrong.

In the real world, BSP means Bull Shit Project.

BSPs are ...

Read More

The Worst Metric

Wed 06 February 2013

Lines Of Code is an awful way to measure software - but look at the pretty picture...

Read More

The software commandments

Fri 15 July 2011

OK, I admit it - some of the Agile thinking did influence the recent Software Commandments 2.0 update.

I accept short timeboxed sprints.

Agreed definition of DONE - great.

Prioritised list of requirements - awesome.

Daily standups - fine if you are all in the same room, and you stick to the rules ...

Read More

The best revenge...

Thu 14 July 2011

Over the years I've worked with many amazing people, but from time to time I've also had to deal with some complete assholes unpleasantness.

Frankly it's amazing at how downright dishonest, manipulative and plain stupid some folks can be.

Actually plain stupid applies to me too.

I ...

Read More

I predict the future of embedded Linux

Fri 06 May 2011

I've been reading the excellent Future Babble by Dan Gardner.

Perhaps unsurprisingly, it confirms that we're all wired as complete idiots when it comes to looking into the future.

The science shows that the more confidently someone makes a prediction, the more likely they're talking utter balls ...

Read More

I believe in aeroplanes

Thu 27 January 2011

How can you be sure that something is true?

Actually it is surprisingly difficult... Do I mean true as in fact or true as in 'I believe this'? Maybe we're in the matrix, and everything is a simulation... maybe the people you trust are lying.. or maybe they're ...

Read More


Sun 16 January 2011

After a typically ignored secretive softlaunch, I'm finally taking the wraps off devcurmudgeon. The idea is to be funny, incisive... and maybe change the world one hacker software developer at a time. But I'm not optimistic. This project may fail, like so many others :-)

Mostly I expect to ...

Read More

El Reg "not your grandad's project management"

Tue 14 December 2010

I confess, I get a lot of my worldview from The Register... saves me coming up with my own jokes.

Anyway, was a little disappointed watching this...


Had to turn off when the Microsoft guy said "you have to build the business ...

Read More

My briefcase is older than you

Tue 30 November 2010

I recently demonstrated my desperation gravitas to a roomful of undergraduates with the immortal line "My briefcase is older than you." Disappointingly they continued fiddling with their gadgets.

Even my rollercoaster antics with Prezi failed to amuse...

But the exercise was not entirely a waste of time.

A spot of ...

Read More

Picking a fight...

Sun 14 November 2010

Maybe I'm alone on this one ... but aren't Open Source and Agile pretty much directly opposed?

Agile = 5-9 people in a team, locked up together, everything thrashed out in face-to-face conversations, daily standups, timeboxed iterative deliveries.

Open Source = no fixed team size, distributed around the world, everything thrashed ...

Read More

Musical differences...

Thu 04 November 2010

I used to be in a band, when I still had enough hair for a stupid haircut.

We had real instruments. None of this electronic bleepy noises nonsense. We used to lug huge amplifiers everywhere, because the guitars always had to be loud enough to shake the building.

Whereas the ...

Read More

Open Sores

Fri 22 October 2010

I need to get with the program. All these years working on secret projects with someone else's name on the mastheads have created an obvious problem - nobody knows who the hex I am.

But wait!

There's an obvious solution too.

Why don't I just take my old ...

Read More

Apple vs Contortionists redux

Fri 01 October 2010

Previously I asked "Does Apple use Scrum?"...

An ex underling just slipped me the recipe for Apple's secret sauce....

Wanna hear? Of course you do... you too could make gazillions... but you've got to promise not to tell anybody else.

It goes like this...

  1. Three independent design teams ...
Read More

Software Chaos Ridiculously Under Managed

Sat 28 August 2010

So this post is just a place-holder for me to launch my new methodology - SCRUM.

I'd hate to have some fan copy my ideas (again) and find myself unable to prove categorically that I thought it first, so here goes...

Google tells me (so it must be true) that ...

Read More

Emperor's New Scrum... iteration 1

Fri 27 August 2010

I've been wading through the literature on Scrum/Agile/Lean/Kanban/Hokey-kokey for months now, and I'm still no nearer to making sense of it...

How on earth can folks seriously believe that the whole commercial world should turn itself upside down so programmers can have an easy ...

Read More

On time and on budget - yeah right!

Sat 07 August 2010

Developing complex software well is actually very difficult to do.

Seems to me it requires intelligence way above average, combined with enough pig-headedness to refuse to be defeated by dumb chips and other people's code spitting random error codes at you - often for hours or days at a time ...

Read More

Some background...

Thu 05 August 2010

After years of advising folks NOT to blog, tweet or display their backsides innermost secrets on facebook, here I am poised to break my own rules. No doubt I'll come to regret it later, but really, I need to vent.

Later posts will explain why...

Read More