Organizations Handle Complex Software Development Projects, Through Iterative and Incremental Development
An organization scales its {development process} up and down, to remove a reason for its projects to fail. A small endeavor such as an Excel macro could exceed its budget or take too long to complete, if it is forced into some heavy-handed methodology. A large undertaking such as a system-of-systems could miss its objective, if any scope creep or shift is lobbed off or ignored. An institution must handle ventures that vary in size. The miniature ones are managed, by allowing them, to use a less heavy process. Yet, a company must also adjust its approach, for sizeable and complicated projects. An organization achieves that goal through iterative and incremental development (IID).
IID is a collection of approaches that employ the same techniques. These methods use feedback cycles, and they break their work into chunks. Methodologies that use them include Extreme Programming (XP), Scrum, the Unified Process, and the Spiral Model. All of those processes employ iteration and incrementalism, making them all variants of IID.
That {set of approaches} handles complex problems well. Those issues tend to penalize premature commitments by an organization. Complicated difficulties are challenging to define initially and are subject to unanticipated shifts. When institution makes a promise before it is justified, that company must perform some rework. The larger discrepancy between the pledge and reality the more rework a business must do. An organization fixes this problem by only making well-founded vows. It enforces this goal through IID. That collection of processes does not require an institution to make unjustifiable commitments. It avoids many difficulties of complex problems, so it handles them quite well.
IID is becoming the standard for software development. In the 1990’s, the U.S. Department of Defense (DOD) made it the ideal, with Mil-Std-498 (read Larman and Basili for more details). Outside the DOD, the Agile Manifesto was published in the early 2000s’s. The methods that adhere to those principles have proliferated in the 21st century, in organizations around the globe. Many other institutions are also using hybrids of Agile and plan-drive methodologies. Those approaches result in software with fewer defeats than a non-amalgamation does (see the 2014-2015 Cast Crash Report for more details). Methods using iteration and incrementalism are on the rise, and they are producing better results than other ones are. The software development industry is converging on IID as a standard.
That specification applies most especially to complex projects, but it fits simpler ones too. Basic undertakings do not necessitate an organization use its capabilities. They tend to be easier to specify and less subject to unexpected changes than complicated endeavors are. An institution can successfully complete a straightforward venture, without IID. Yet, a company who uses that process by default is not harmed by doing so. It scales down to simple projects quite well, since it does not require more than what is justified. It also scales up to complex undertakings. Yet, a business does not need IID to complete basic endeavors successfully. An organization can use it for basic ventures, but an institution must use it for complicated ones.
Curated Content and Authors
Gary McGraw discusses risk analysis in software design.
Joe McKendrick describes the degree to which business leaders lack insight into their software development teams.
DataKitchen talks about sources of data complexity in organizations and the relationship between Dev and Ops in data organizations.
Larry Maccherone details how DevSecOps should work.
Victor Coisne meditates on metrics for measuring software delivery performance.
Pavan Belagatti discusses what DevSecOps is, why it is important, and what its best practices are.
Janakiram MSV talks about how DevOps is becoming more relevant for data scientists.
We wrote that describes how an organization can identify underlying problems in it software development operations.
We penned a piece that describes how conclusions form the logical bedrock of a strategy.
Joe McKendrick is author, speaker, and researcher. He specializes in describing trends in information technology.
Endnotes
This article argues than an institution needs iterative and incremental development for intricate projects, but it does not tell a company which variant to use on what undertaking. That business will have to read future editions of this newsletter and articles in the Software Development Journal, to get that information. Please subscribe to this bulletin, if you are interested in learning more about this topic. If you want to learn more about underling application-construction-issues, please read this {blog}. If you like any of those publications, follow ExperTech Insights on Twitter.