I still see many people writing about adopting Lean and/or Agile software development. I can remember how difficult it was for my team to work out what ‘Agile’ was and I think it has got harder since, as growing popularity has drawn charlatans into the area. I see two main types of useful articles.
- What (theory) : “It’s a philosophy” articles which usually point first towards the different values of agile and lean practitioners. But you can’t “do” a philosophy, so we get:
- What (practice) : Methodology – the study of methods that embody the philosophies. Many will say that Lean & Agile are not processes but I disagree; I think they are ‘software development process’ change processes.
I’d like to try something different: WHY?
The old ways of planning engineering projects, used for building a tower block, didn’t work for software. We don’t know enough, with sufficient certainty at the beginning of development to design top-down and are rarely sufficiently constrained by physics to be forced to build bottom-up.
Unusually for computing, the words ‘lean’ and ‘agile’ have useful meanings.
Lean is about ‘travelling light’, by avoiding waste in your software development process. It uses observation and incremental changes of your current process, while you incrementally deliver business value via working software.
Agile is about doing only valuable work, being nimble and able to change direction, in response to changed requirements or better understanding. It recognises that there are very few completely stable business processes, so software developers need to identify changes that will have impact on the software under development and apply effort in a new direction.
I recommend that you consider both approaches, as they are complementary. Neither removes the need for appropriate engineering practices. We’re only throwing out hard-engineering stuff we packed but didn’t prove useful on a software journey. We throw out what we don’t need, to prevent the weight of unecessary baggage holding us back.
The title of this post is a phrase that is often ascribed to Albert Einstein. Indeed I have ascribed it, doubly-wrongly, myself in relation to modelling, without checking. I am a Bad Physicist. One of the many things I’ve learned since yesterday is that he didn’t say it. Ironically, it is probably an over-simplification of something he actually said: “It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.” OK, maybe one-and-a-halfly wrong but let’s not get into the equivalence of modelling and theory right now.
There have been a few times in my life when I have known for a long time that there was something inherently wrong in my understanding of a subject. Yesterday, at the age of 55, I set a new record for Wrongness longevity. Despite having passed ‘O’ Level, ‘A’ Level and half a degree in physics, I confirmed my suspicion that I didn’t really understand Alternating Current electricity AC.) I’m not keen to discuss the details of how I proved this but I was relieved there was a circuit breaker.
I still wouldn’t say I really understand AC still but I have reached the point of knowing my unknown. Enlightenment may have to wait but in getting where I am, I’ve discovered there are lots of other people who don’t understand either and some of them are qualified electricians, making it very lucky for all of us that we in the UK are protected by a very well designed electrical system and ‘The Regs’ which allow people who don’t understand to navigate adequately with their one good eye, by following an explicit set of rules.
I also came across students struggling with the same misunderstandings as me, being advised by the kind of over-academic idiots that I thought were legally restricted to computing forums. If a kid is asking what “electron flow” means in an AC-circuit, s/he is probably not looking for an answer that involves quantum mechanics. But there is the problem: one of my secondary-school physics teachers, by trying to keep things as simple as possible, used an over-simplistic analogy between DC and AC current that has confused me for 40 years. Or he didn’t understand either.
To check if things had improved, I looked at current school science revision notes. If anything, they were worse. In summary: +ve and -ve don’t mean much in AC but “Live” and “Neutral” do. Current doesn’t so much “flow” as “oscilate”. Zero load is BAD. All the current! The advice not to mess with mains voltage unless you really know what you are doing also applies to me, and I was only trying to change a ceiling fan.
What I’ve learned may eventually find its way into my ‘Finds & Thinks’ book.