Someone asked me a few weeks ago how lean/agile (little L, little A) has changed how I worked. At the time, I didn’t think that I’ve changed what I did all that much. Sure, lean and agile practices have refined how things are done. Kanban, story mapping, and product ownership are just some of the tools I’ve learned over the past decade. But I hadn’t realized how far I’ve come.
Remember that one time?…
Earlier in the week, someone asked me about a project I had worked on around 6 to 8 years ago. I remember doing discovery, learning the domain, and preparing for the project to start implementation. It was a great problem domain, in that, there were tons of technical challenges and the opportunity to make a great product for the client. Fond memories of tackling that challenge.
Then I found the documentation we had authored, of which, I was a major contributor.
Here was a collection of hundreds of pages of system designs, database schemas, and architecture. And no real substance; no real value. At least, not long term.
My stomach churned. I think I actually said out loud, “who ever thought this was a good idea?”
Don’t get me wrong; the information there conveyed tons of domain knowledge. But the information there was so waterfall-based; I had a tome of “requirements” and “design” which was completely useless a month after it was written (if not sooner). I shudder at the time it took to compile it all.
Back to Reality
Coming back to the future, to the state of affairs today, things are completely different. Lean and agile practices have shown me ways to not waste so much effort on those things that don’t provide lasting value. Experience has shown me that getting something out there trumps figuring it all out in the beginning. The act of getting something out there will help you gain knowledge and, more importantly, show you the blind spots.
Would I do things differently now for that endeavor? Heck yeah. I think most would say they could do something better, given that hindsight is 20-20 and all. Start prototyping earlier. Get the workflow right and confirm it. Make sure what we ended up designing was actually the correct problem to tackle.
Software is ever changing, but the ride is still exciting and interesting. Since lean/agile is here now, I wonder what I’ll be reminiscing about in 5 to 10 years?