When you can, this should be how software is made. As I get older the thought of working on a software project that takes more than three weeks before feedback comes from the end user scares me more and more. Don’t get me wrong, I totally understand that not all software projects can accomplish this; and for them I weep. Call this idea whatever you want. You can call it Agile, Kanban, or whatever else I couldn’t care less…
What I care about is writing software that people want to use, and hopefully not wasting either their or my time needlessly when doing so. So far the concept of “Ship Soon and Often” has done the best job of accomplishing that for me. “Why?”, I wonder. I have some ideas on that which I would like to share.
Both the user and I don’t fully understand what is needed.
This seems to be true nearly all the time. Even when the users or stakeholders are certain of what they want this pesky thing called time moves forward and those requirements change. Getting usable items in front of these people seem to knock loose a better understanding of what really is needed and what isn’t.
Big Plans == Over Engineering
Another smell I’ve learned to be afraid of is when I’m on a team that is given multiple weeks to plan a design to start building against. I find I lay the best laid traps in over-engineering for myself with all of this room to build the foundation of an application that nobody fully knows yet how it should function. To compound the problem, it’s fun to design out that kind of stuff, especially in a green-field application. This sometimes will have developers put down their guard on avoiding impossible to plan-for future proofs.
The Less to Remember the Better
Standing up feature X is a feat in-and-of itself. Imagine you are tasked to stand up feature X, Y, and Z before shipping. This creeps in thoughts of how to do all of these all of the time, and slows down the whole process. If your goal is to only stand up one feature for each shipping cycle the less clutter you’ll have in your heads and the faster you’ll go.
I want to stop here for now and let those points sink in. Stay tuned as I’m sure I’ll have another segment of this coming in the near future!