This post is the result of a tweet to @flowchainsensei about a month ago about Scrum projects, where I said I really should blog about my experiences in “Agile Land”, so here it is:
My “Agile background” began back in 1997 (yes, I know that was technically before Agile began) when I started reading about iterative development and was on a project where the management was getting a bit “edgy” about the project and its delivery. It was a large organisation, with too much money and a lot of politics. At the time I was the lead for a sub-project which was responsible for the back-end interface and I recommended to the overall lead that we set up a server and do weekly or bi-weekly deployments on to it, so at least people could see the good work that was being done. Unfortunately, he was a “waterfall guy” and completely ignored the suggestion…
In the mean time, I came in to contact with the “useability people”. They had the whole setup (which was unusual at the time) with multiple cameras, mirrored windows etc… I didn’t use that though, instead using one of the early Java GUI builders to rapidly prototype interfaces which I then printed out (their (great) suggestion) and talked through it with them. Yep – that was paper prototyping and it worked well. Eventually after a number of major re-designs and total restructurings we ended up with something that seemed quite reasonable so we started using that for our weekly sessions. It was working against a set of “Mock Object” interfaces (we used to call them stubs ;) that people could play around with, so we’d go through various scenarios.
In the background, I had the team of 4 working on the connectivity to the main system as we knew the information that we needed to maintain, just not the visual interface and we adjusted things as we went along and sync’d with any minor updates to the data model, which was against an Object-Oriented (oops, NoSQL nowadays) database. Finally, we ended up with an interface that everyone was happy with. In fact the Users said it was the best internal maintenance system that they’d ever used! For me, as a contractor, it was off and on to the next big thing as I’d built and successfully deployed my part. Unfortunately, for the project, it was cancelled a few months later as they’d never demonstrated much of their (front end web) functionality to their users and the whole project was canned only a few months before they would of finished!!! That’s in a 2 year project, because they thought the waterfall model was fine – what’s wrong with demonstrating a 2 year development project after 2 years? ;-)
For me it was a huge lesson – there seemed to be something to this “iterative development” and I was curious . . . I can’t remember exactly what I was reading around then, but I think it was mostly around the RUP and I remember Royce’s book on “Software Project Management – A Unified Framework”. About a year later I was bought on to a project that had a fixed deadline, which was going to make or break their funding. People were just generally freaking out because it seemed out of control and no-one really knew what to do. Using what I’d learnt so far, I suggested we write down all the product features that had to be built and prioritize them, paying attention to put the “risky” ones first (as that’s a key rule for RUP). We had about 2 months and I think we had about 30 product features. Funny thing, is I remember keeping the list on a whiteboard where we’d cross them out when done and make any key notes regarding them. This was about 10 years before I learnt about Scrum – the only thing we were missing was the moving of stickies, but still it was an “information radiator”. Apart from the first week planning, architecting and prototyping technologies, for the most of this project I was really a coding architect. The other thing we did was weekly demos (it just seemed natural as we only had two months to complete this, so even a monthly iteration wouldn’t of made sense) and discussed the progression of the project and adjusted any estimates for the features as we progressed. In the end, we built about 25, but obviously the remaining 5 were really “nice to haves”. Another job successfully done and on to more projects, but you’ll have to wait for the next Iteration of this to hear about that . . .