[SystemSafety] Putting Agile into a longer perspective

Steve Tockey steve.tockey at construx.com
Mon Oct 21 21:17:37 CEST 2019


I believe it was Fred Brooks who said in 1975, about the OS/360 project in 1965,

“Build one to throw away”

Unfortunately, building just the first one is really expensive. Who ever really throws it away and builds it again?

What agile zealots seem to blissfully ignore is how necessarily high-overhead agile (or, any iterative process) is. Each iteration REQUIRES:
*) making assumptions about what may or may not turn out to be true in future iterations
*) high probability of re-work due to past assumptions turning out to be incorrect
*) regression testing to make sure modifications didn’t break something that was working before

More iterations necessarily means more overhead.


As well, consider Steve Mellor’s great quote:

“The number of times it took you to get it right is a measure of just how badly you did it the first time”


Now, on the one hand, it can be the case that the time-value of early learning and / or early delivery outweighs the necessary overhead of iterations. In this case, it truly does make sense to be agile (iterative).

On the other hand, iterating on code is what makes it so very expensive. The “recognized” engineering disciplines learned long, long ago,

“It’s a lot damn cheaper to iterate on models"

Depending on the nature of the model, it can be so cheap that you really can afford to build many more than one to throw away.


So there you have it:

1) iterate when and only when the value of early learning / delivery sufficiently outweighs the necessary overhead of iterating
2) iterate as much as possible on inexpensive models that can be thrown away cheaply, don’t iterate on code if you can at all avoid it


— steve



From: systemsafety <systemsafety-bounces at lists.techfak.uni-bielefeld.de<mailto:systemsafety-bounces at lists.techfak.uni-bielefeld.de>> on behalf of Olwen Morgan <olwen at phaedsys.com<mailto:olwen at phaedsys.com>>
Date: Monday, October 21, 2019 at 11:29 AM
To: "systemsafety at lists.techfak.uni-bielefeld.de<mailto:systemsafety at lists.techfak.uni-bielefeld.de>" <systemsafety at lists.techfak.uni-bielefeld.de<mailto:systemsafety at lists.techfak.uni-bielefeld.de>>
Subject: [SystemSafety] Putting Agile into a longer perspective



Oh, dear. Why did this one crop up at a time when I felt like having a real rant at it ... ?

There are some very good things about Agile. The continuous integration devops processes that support it are extremely useful in critical systems development. But the demagogues of Agile are missing a critical matter in software technology. Agile practices ideally require means for developing software that are so powerful and efficient that if you've got the software wrong, it's still affordable to throw it away and start again. (Not an original thought - AFAI recall, Tony Hoare said something to similar effect back in the early 1980s.)

Agile will work only when we've made rigorous software development so streamlined that we can afford to throw incorrect systems away several times during the course of a project and yet still deliver within reasonable time and cost constraints.

Who is working to make such rigorous development cheap and efficient? ... I don't know of anyone who I think actually understands the essence of the problems enough to get going on a credible project. I've got some ideas on how one might make a start, but every time I speak to people about them, they appear to think I'm bonkers - and for all I know, maybe they're right.


plus ca change,

Olwen


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.techfak.uni-bielefeld.de/mailman/private/systemsafety/attachments/20191021/2036682e/attachment-0001.html>


More information about the systemsafety mailing list