[trustable-software] Construction problems

Paul Sherwood paul.sherwood at codethink.co.uk
Thu Jan 25 11:26:15 GMT 2018


Hi all,
now I've got started documenting some basics about "stuff we think we 
know" I've taken a shot at "problems with software construction".

I'm trying to avoid making any suggestions about solutions *at all* 
until I'm confident that the problem areas are well described.

My starter-for-ten is as follows:

# problems with software construction

- builds take too long, so
   - engineer time is wasted directly waiting for builds
   - downstream/dependent activities are delayed

- build process/tooling is complex and/or involves multiple approaches, 
so
   - engineer time is wasted learning specifics and tricks and 
workarounds
   - new and drive-by engineers waste time getting up-to-speed

- build tools misbehave in unexpected ways, so
   - engineer time is wasted debugging the build tooling
   - downstream/dependent activities are delayed
   - downstream/dependent activities may be impacted by 
pollution/corruption

- build tools generate different outputs on different machines, or 
between runs, so
   - engineer time is wasted debugging the differences
   - we can not guarantee that the output is what we expect/want
   - we can not guarantee that we can get the same output again in future
   - downstream/dependent activities are delayed
   - downstream/dependent activities may be impacted by 
changes/pollution/corruption

- builds are affected/modified by dependencies/inputs/upstream changes, 
so
   - engineer time is wasted debugging the differences
   - we can not guarantee that the output is what we expect/want
   - we can not guarantee that we can get the same output again in future
   - downstream/dependent activities are delayed
   - downstream/dependent activities may be impacted by 
changes/pollution/corruption

Any feedback/suggestions would be much appreciated.

The master version of this text is at [1]. Soon I'll tidy up the repo 
and rename it, since it now occurs to me that this is a step towards a 
potential 'single point of truth' for basic reasoning about the problems 
we face, along with defensible logic to justify any potential solutions 
we recommend/adopt.

br
Paul



More information about the trustable-software mailing list