Software development methodology is evolving very fast and every team has found version that works well in current context.
Software development methodology is going through continuous improvement.
The_Pragmatic_Programmer book talks about Trace bullet approach and as per that it comes down to feedback. The more quickly you get feedback, less change is required to hit the target.
I have used Tracer Bullet approach through out my career with good success.
I will share another approach or mindset of software development that can be used in some scenario to build better product and create value.
Explore or Discovery
Many time as team you have to find what is the next feature you should be building that will help in increasing adoption of product.
So i call this as Explore or Discover phase and this phase of development has very different goal and trade off. This phase means that you have to move fast, cut some corners to get feedback. This phase will not have enough tests, documentation, code quality is not good etc.
Important thing about this phase is you are actively collecting feedback on whether this is the next big idea your team will be investing.
In this phase you have to make sure you gain more than loose, so timebox discovery phase to keep track on resource that is consumed.
Outcome of successful discovery puts you in Growth phase and in many case this will be steep growth, but every unsuccessful outcome has lots of signal on next exploration.
You Build to learn in this phase and once you learned then move to next phase or start another discovery.
Growth Phase
This phase is outcome of successful discovery and now you have found the next feature that market or your target audience need.
Trade off for this phase is very different from Explore phase, you have to stabilized feature , do changes based on feedback so users who have shown interest in idea are still engaged. Users who got on-boarded work like your sponsor, so keep them in loop.
Interesting things about this phase is your team will be in war room type of situation, everyone is trying to get over huddles and get feature out.
Word of caution this phase very intense and demanding. This phase is the real "Sprint" phase not the agile sprint! putting extra hours has good returns.
Another thing to watch out is to be persistent in exploiting maximum of new feature but many time team drops the ball and go back to discovery phase.
I would say this phase also puts design pressure on team and you can refer to design-pressure-on-engineering-team post that talks about it.
Successful outcome of this phase is Expand phase. Team is exhausted after this phase but very motivated.
Expand Phase
Welcome to phase that requires building software in the way we learn in text book, this is the phase where engineering discipline are very important because solution has to be scalable, maintainable , reliable etc.
Now you can go to management and ask for more funds to get servers , expand team etc because this idea will generate some profit.
Don't build product like discovery phase in this stage otherwise you will become victim of your own success, below image should be good example of it.
Conclusion
All of these phases has very different constraint and trade off and it is very important to know that, expand phase can't be managed like explore phase or vise versa and i have also found that engineering disciplined are very very different in these phase, so you need team that is aligned with mindset. If you get your team wrong then it can really very challenging to execute phase.
It is fascinating to see that our industry keeps on evolving and new development methodology are found.
It is much more than Agile or scrum.
I want to end with quote
As engineering team we should do continuous exploration and exploration is not linear process.
Some of other post on software development that you might interesting
need-driven-software-development-using
broken-promise-of-agile
cargo-cult-innovation-center
I will be happy to learn about new ways of building software, so please share it!
If you like the post then you can follow me on twitter.
Software development methodology is going through continuous improvement.
The_Pragmatic_Programmer book talks about Trace bullet approach and as per that it comes down to feedback. The more quickly you get feedback, less change is required to hit the target.
I have used Tracer Bullet approach through out my career with good success.
I will share another approach or mindset of software development that can be used in some scenario to build better product and create value.
Explore or Discovery
Many time as team you have to find what is the next feature you should be building that will help in increasing adoption of product.
So i call this as Explore or Discover phase and this phase of development has very different goal and trade off. This phase means that you have to move fast, cut some corners to get feedback. This phase will not have enough tests, documentation, code quality is not good etc.
Important thing about this phase is you are actively collecting feedback on whether this is the next big idea your team will be investing.
In this phase you have to make sure you gain more than loose, so timebox discovery phase to keep track on resource that is consumed.
Outcome of successful discovery puts you in Growth phase and in many case this will be steep growth, but every unsuccessful outcome has lots of signal on next exploration.
You Build to learn in this phase and once you learned then move to next phase or start another discovery.
Growth Phase
This phase is outcome of successful discovery and now you have found the next feature that market or your target audience need.
Trade off for this phase is very different from Explore phase, you have to stabilized feature , do changes based on feedback so users who have shown interest in idea are still engaged. Users who got on-boarded work like your sponsor, so keep them in loop.
Interesting things about this phase is your team will be in war room type of situation, everyone is trying to get over huddles and get feature out.
Word of caution this phase very intense and demanding. This phase is the real "Sprint" phase not the agile sprint! putting extra hours has good returns.
Another thing to watch out is to be persistent in exploiting maximum of new feature but many time team drops the ball and go back to discovery phase.
I would say this phase also puts design pressure on team and you can refer to design-pressure-on-engineering-team post that talks about it.
Successful outcome of this phase is Expand phase. Team is exhausted after this phase but very motivated.
Expand Phase
Welcome to phase that requires building software in the way we learn in text book, this is the phase where engineering discipline are very important because solution has to be scalable, maintainable , reliable etc.
Now you can go to management and ask for more funds to get servers , expand team etc because this idea will generate some profit.
Don't build product like discovery phase in this stage otherwise you will become victim of your own success, below image should be good example of it.
Conclusion
All of these phases has very different constraint and trade off and it is very important to know that, expand phase can't be managed like explore phase or vise versa and i have also found that engineering disciplined are very very different in these phase, so you need team that is aligned with mindset. If you get your team wrong then it can really very challenging to execute phase.
It is fascinating to see that our industry keeps on evolving and new development methodology are found.
It is much more than Agile or scrum.
I want to end with quote
As engineering team we should do continuous exploration and exploration is not linear process.
Some of other post on software development that you might interesting
need-driven-software-development-using
broken-promise-of-agile
cargo-cult-innovation-center
I will be happy to learn about new ways of building software, so please share it!
If you like the post then you can follow me on twitter.
It is a very nice blog. Really it is a very international destination post. Thanks for sharing this post.
ReplyDeleteWebsite development company in Bangladesh
Nice blog about software Metrics.
ReplyDeleteTechnolom IT Compnay for SEO Services
in USA & Canada
I was very interested in your blog. Now I will be more willing to look here.
ReplyDeletemobile sales techniques
Hey, would you mind if I share your blog with my Twitter group? There are a lot of folks that I think would enjoy your content. Please let me know. Thank you.
ReplyDeleteSoftware Testing Training in Chennai
Employ Magento software engineers and be quiet about the results of your undertaking. Such designers know the stage's elements, shortcomings, and qualities and can convey the greatest arrangements.
ReplyDeleteMoreover, when you go to Magento trained professionals, you normally get a very much planned group with a wide foundation. Such representatives will function as one entire and, in this way, can finish your undertaking as per every one of your prerequisites and courses of events>> affordable magento developers
Big data is a term that describes the large volume of data – both structured and unstructured – that inundates a business on a day-to-day basis. big data projects for students But it’s not the amount of data that’s important.Project Centres in Chennai
ReplyDeleteTechstreet Solutions is a professional software development company that offers quality and reliable services for businesses of all sizes. We provide custom software development, cloud solutions, website design, mobile app development, and more. Get in touch with us today to get started on
ReplyDeleteYou can call us :- +91- 9716440096
Visit Our website:-software development company
This comment has been removed by the author.
ReplyDeleteThis blog post perfectly highlights the benefits of using Flutter for app development. It is informative, well-written, and provides valuable insights for both beginners and experienced developers. The advantages discussed make a compelling case for choosing Flutter for your next app project. Overall, a great resource for anyone interested in mobile app development.
ReplyDelete