Agile system development needs the right milestones
Achieving a genuinely agile system development process means making more broad-based changes. It’s essential to ensure that everyone in the company is on board and to build agile development teams running from product managers through to developers. The change process needs to be proactive in tackling any differences in approach and to establish the best possible mix of methods. The key point for successful agile system development, however, is setting the right milestones. This takes experience – and lots of it – and the ability to think your way into the mindset of the various disciplines involved.
Before looking at a sample project, I’d like to illustrate this with an analogy. What would happen if a programmer, an electronics engineer and a design engineer were tasked with building my dream house, each using their own established approach? I don’t want to end up with a minimum viable product (a windowless log cabin with no hot water); I want a nice comfortable home with every modern convenience, where I can grow old in comfort. So, engineers, to work!
The comment about hot water certainly didn’t escape our programmer, so he’s got straight down to designing the bathroom. It’s going to be a temple of relaxation, a true home spa experience. Naturally he needs a bit more space (cf. a faster CPU, more memory, more bandwidth, etc.), even though he hasn’t actually been given a specification yet. He’s also given plenty of thought to the electricity and water connections. For his self-selected sub-task, he produces a bunch of mock-ups, ensuring that virtual water flows from the virtual taps and that the plugholes do what plugholes should. At the end of the first phase of construction, the build passes extensive unit testing and the first release, in a modular design, is all set for the next sprint.
The electronics engineer
He’s quick to come up with some ideas for what will be needed for the shell and installations, and some thoughts on a floor plan. He soon works out what he needs by way of underfloor heating, windows, etc. (in a real development project these would be components and sub-assemblies). To clarify some of the more complicated points, he gets hold of some materials, flicks through catalogues and makes enquiries with a few specialist suppliers. At the end of the first phase of construction, there are various raw prototypes for features like shower fittings, water distribution systems, meters and stopcocks – all with added connectivity and automatic control systems. It’s all a bit clunky and oversized, with lots of different bits of pipework bolted together, but hot water does come out of the hot water tap.
The design engineer
He is concerned to note that the site is quite small and doesn’t have much space for a crane or a cement truck. He’s also wondering how it’s all going to fit together and how he can fit it around a flight of stairs which also needs to allow for potentially installing a stair lift, should one be required at a later date. Once he has identified and prioritised all of the more finickety functions, he starts with the basic concept, makes some sketches and considers different variants. He filters out the less critical details and starts by checking how the various rooms and installations might fit around a stair lift (in real life, this would mean choosing functional principles and thinking about the system layout). At the end of the first phase of construction, scaffolding has been set up, mirroring the outline of the house, and a series of ropes have been stretched across the space to show the layout of the interior. There’s also a 3D model showing a number of additional rooms. Detailed plans have been drawn up for the stair lift, but a ladder will do as a stand in for now.
Traditionally, the first phase of construction would involve digging trenches for the foundations and pouring these and the concrete base (hopefully without forgetting any of the connections for the utilities) – a very different picture from our fictitious scenario above. Each of the three engineers can show me concrete results, which I can look at, try out and evaluate – forming a good basis for agreeing the next step. All are confident that they’ve made good progress and do not anticipate any major problems.