later, but most likely, you bit off more than you could chew. Fixing this is quite easy. Instead of trying to deliver a complete software product with all the bells and whistles, break it down into manageable, short releases (no more than two weeks in duration) with a specific and pragmatic set of features and scope.
This approach is called an “iterative” approach to software development, which the agile community made especially popular. The truth is that iterative development predates Agile. Iterations were first suggested in the classic development process work by Winston Royce in defining the lifecycle that became known as Waterfall. You can also use an iterative approach with Waterfall development where you fully define all requirements up front, code, and then test in a staged approach. Or you can use agile development where only the tasks that fit within an iteration are completed. In my personal experience, agile development lends nicely to solving this problem (iterations are called sprints), but it can certainly be done with an iterative Waterfall approach. Bottom line: Undertake less work and finish quicker.
Tackle Your CM and ALM Strategies in an Iterative Way
So you’re on board with limiting the work but worried about delivering something that is useful. Say that you’re building contact management software that is used to track customer and sales contacts. When you start planning out the software, all the features and functions needed to pull this off can quickly overwhelm you.
I can imagine your wheels turning as you are thinking about building a security system, contact listing, contact maintenance screens, reports, dashboards, email functionality, and import and export features–the list goes on forever. Stop stressing! In the first iteration (or sprint), build just the contact listing and the ability to add or edit a contact. Forget about security, auditing, ability to delete contacts, etc. Focus on the bare necessities. The juicy stuff can come later.
In fact, you may even be inclined to start gold plating the contact listing. You might dream up ways to allow in-place editing, print preview, file attachment capabilities, and many other flashy enhancements. Those are all cool ideas, but let those features materialize in future iterations. If you are developing this for internal use, your team could actually start using the bare-bones model after the first iteration allowing you to receive immediate return on investment, and, more importantly, feedback from your customers.
These are just a few of the issues that I have had to deal with when implementing ALM strategies. There are obviously many more and hopefully I will have a chance to share them with you in future articles. Regardless of which thorny issue you tackle when implementing CM and ALM strategies, make sure that you take a pragmatic approach to analyzing the issue and come up with solutions to help you continuously improve your own processes.