Software Development Done Right
Ch. 2: Agile Process Exists for a Reason
I’ve heard people refer to building a software application, as the same as building a house. While there are some parallels to that, there are tons of things that are different. I will go into those differences in an upcoming chapter, as it’s actually more like a sailing metaphor, but leaving all of that aside, if you were to build a house, would you not follow a set of plans? Before you hammer one nail, you need to have a clear picture of what the final structure will look like (at least in an abstract sense with hand sketches and drawings). And in fact, if you are building it with your significant other, you both kinda need to agree that his/her picture matches yours. Not only that, you’ll need to make sure that you have the foundation poured before you bring in the framers to do the walls, and the roofers to put a roof on before you then have plumbers and electricians do their work before the drywall is installed!
Having gone through the process of building a new home, I saw firsthand the work that my contractor did in scheduling all of this at the right time. But, you would be surprised at how many software projects I have seen have a zero percent chance of success if not started off following some sort of formal process. Pushing pixels and code around is the easiest it’s ever been these days. There are tons of tools to get started coding. The mantra of “Let’s just get started with coding and experimenting” may work in a research lab or some large companies where a team can hide for years and not make a profit, I’ve never seen it work with teams that have to deliver a product to market.
If you are building a new product, something that will be game-changing, time and costs are of the essence. Development needs to be smart and efficient - thus you need a clear and concise set of rules to follow. You can pick your own process - there are tons to choose from. At Lab651 we have an entire set of core beliefs that follow many of the principles of the Agile Manifesto. You can choose whatever solution works for you, but in short, there should be some set of values that everyone gets behind.
It may seem basic to restate the obvious, but a process has a number of advantages
- It saves time
- It creates a common language and vocabulary among the team
- It structures large tasks into smaller and more manageable pieces
- It communicates the goals of the project
And most importantly - it sets the tone and culture of how things will operate.
As a side note to those who think of software as building a house: Building tone and culture aren’t really thought about in my mind when building a house, but they make all the difference in the world when sailing with a crew during a storm.
Now, with every process - can you have too much of it? Certainly. And that is where the beauty comes in - the artistic side of building software. The process and tips I define here are things that have worked for us, but might not necessarily work for you - and that’s fine. Just know that they do exist for a reason and should be continually improved and whoever is building your product will have greater success if they have one. On to the next chapter!
Don't miss a chapter! Subscribe to get the monthly chapter in your inbox >