Thursday, May 20, 2021

Agile Software Development

Traditional software development ("waterfall"), is plagued by predictable problems:  developers plan the next software release, then design, built, test, and release it, completing one phase before the next starts.  The entire process might take a year or longer, and by the time it is done, the product is not very good for one of two reasons:  either the technology has advanced, so that the software is obsolete before it is released, or the client's demands have changed, and they no longer want the product the developers have made.

Agile development, illustrated above, differs from the traditional approach by prioritizing and ranking changes, then taking them on one at a time.  By breaking the long development cycle into many short "sprints," each taking a week or so to complete, developers are able to deliver the most valuable changes immediately, and to adapt quickly to changes in technology or client preferences.  Clients get the changes they value more quickly and the developers can incorporate software innovations as they occur.  For example, Salesforce.com famously releases three model updates to its software each year.  

We can easily fit this into the problem-solving framework of Chapter One:
  • Who is making the bad decision?  
Clients and Developers are jointly deciding how to design software that will be available in a year's time.
  • Do they have enough information to make a good decision?
NO!  Clients don't know what their preferences are going to look like in a year and developers' don't know which capabilities are going to added to newer versions of the software.  
  • Do they have the incentive to make a good decision?
Yes

Agile development mitigates the client's and developer's information problems by shortening the planning horizon to a week or so.   Clients rank which features are most valuable, and developers use the latest and best technology.  If client preferences or software changes, Agile development adjusts by the next sprint. 

HT:  Halley and Brian

    5 comments:

    1. Brilliant post! These tools might come in handy for top Software Outsourcing Companythat promise development of cutting-edge Artificial Intelligence Technologies .

      ReplyDelete
    2. Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with extra information? It is extremely helpful for me. sales engagement platform

      ReplyDelete
    3. Embrace Agile Software Development with App On Radar Android App development services. We prioritize iterative development cycles, collaboration, and adaptability, ensuring swift delivery of high-quality Android applications that meet your evolving needs and exceed expectations.

      ReplyDelete
    4. Similar to traditional software development, Penguin Book Writers understand the importance of adapting to evolving trends and client demands. Embracing agile methodologies allows for flexibility and responsiveness in creating and delivering high-quality books tailored to readers' needs.

      ReplyDelete