Evolve Functionality Iteratively

When you recognize the need for a reusable software asset it is key to map out a realization strategy. If you approach asset realization big bang you could:

  • end up creating a software asset that is irrelevant to your project’s immediate needs

  • add significant schedule risk due due to increased design, development, and testing time

Either way, you will spend a ton of precious $ drowning your savings. Instead mitigate these risks_by evolving the reusable asset over multiple iterations. Take the example of a reusable assets that sends notifications to your users. Let us name the asset Business Notifier. Instead of trying to build the 100 bells and whistles that this asset could have we come up with a simple plan to evolve it over several iterations.

Iteration #1 – notification via email for predefined business events Iteration #2 – allow user to choose notifications out of the business events Iteration #3 – let users define custom business rules to generate business events Iteration #4 – send notifications on a web console or instant messaging applications Iteration #5 – allow users to include their friends when receiving notifications. Iteration #6 – integrate notifications with workflow for review by a support person

Obviously this is just an example and the features you put in an iteration are based on business requirements, priority, ease of implementation, and project deadlines. You could for example reduce investment in an asset if it is no longer a priority or vice-versa.

The takeaway is no matter what you want to build as a reusable asset plan its evolution over multiple iterations.You will reduce risks, stay flexible to your business requirements and needs, and build only assets that you want to invest in.

Last updated