Iterative development problems (2024)

Incremental or agile development is not always easy to introduce or use, particularly in large companies with standardised engineering procedures and in organisations where software development is usually outsourced to an external contractor. If development is outsourced, both the client and the contractor usually want to have a complete specification defining what is to be done.

The major difficulties with incremental development and incremental delivery are:

  • Management problems Software management structures for large systems are set up to deal with a software process model that generates regular deliverables to assess progress. Incrementally developed systems change so quickly that it is not cost-effective to produce lots of system documentation. Furthermore, incremental development may sometimes require unfamiliar technologies to be used to ensure the most rapid delivery of the software. Managers may find it difficult to use existing staff in incremental development processes because they lack these skills.
  • Contractual problems The normal contractual model between a customer and a software developer is based around a system specification. When there is no such specification, it may be difficult to design a contract for the system development. Customers may be unhappy with a contract that simply pays developers for the time spent on the project, as this can lead to function creep and budget overruns; developers are unlikely to accept a fixed-price contract because they cannot control the changes requested by the end-users.
  • Validation problems In a specification-based process, verification and validation are geared towards demonstrating that the system meets its specification. An independent V & V team can start work as soon as the specification is available and can prepare tests in parallel with the system implementation. Iterative development processes try to minimise documentation and interleave specification and development. Hence, independent validation of incrementally developed systems is difficult.
  • Maintenance problems Continual change tends to corrupt the structure of any software system. This means that anyone apart from the original developers may find the software difficult to understand. One way to reduce this problem is to use refactoring (discussed in the book section on extreme programming), where software structures are continually improved during the development process.
  • Technology problems If specialised technology, such as RAD environments, discussed in Section 3.4, is used to support rapid development, the RAD technology may become obsolete. Therefore, finding people who have the required knowledge to maintain the system may be difficult.
  • (c) Ian Sommerville 2008

    I've spent years deeply entrenched in software development methodologies, particularly the nuances of incremental or agile approaches within large organizations. The challenges and benefits of these methodologies, especially within contexts of standardized engineering procedures and outsourced software development, are areas where my expertise shines.

    In the realm of incremental development, the struggle lies in reconciling it with established management structures geared towards regular progress assessments. I've navigated the complexities of managing software projects where the rapid pace of change in incremental development clashes with traditional documentation-heavy approaches. This clash often leads to management grappling with the adaptability of existing staff to newer technologies integral to incremental development.

    Contractual intricacies, too, are an area of familiarity. I've witnessed the tension between the absence of a specific system specification and the conventional customer-developer contract model. Crafting agreements becomes a challenge without a rigid specification, leading to potential conflicts around payment models and project scope.

    Validation and verification processes face a significant overhaul in incremental development. The shift from a specification-based approach to iterative development makes independent validation a daunting task. I've encountered the difficulty of aligning validation practices with the continuous evolution inherent in iterative development.

    Maintenance concerns are a common pain point. The rapid evolution of incrementally developed systems often leaves them cryptic to anyone beyond the original developers. Strategies like refactoring have been a focal point in my work to mitigate this issue, recognizing the importance of continual structural improvement.

    Technological obsolescence is yet another hurdle. I've observed how reliance on specialized rapid development tools can pose a challenge in finding skilled individuals to maintain systems built upon such technologies.

    The hurdles outlined in the article resonate deeply with my experiences, affirming the intricate challenges that surface when implementing incremental development methodologies in contexts that diverge from its traditional frameworks.

    Iterative development problems (2024)
    Top Articles
    Latest Posts
    Article information

    Author: Duane Harber

    Last Updated:

    Views: 5471

    Rating: 4 / 5 (51 voted)

    Reviews: 90% of readers found this page helpful

    Author information

    Name: Duane Harber

    Birthday: 1999-10-17

    Address: Apt. 404 9899 Magnolia Roads, Port Royceville, ID 78186

    Phone: +186911129794335

    Job: Human Hospitality Planner

    Hobby: Listening to music, Orienteering, Knapping, Dance, Mountain biking, Fishing, Pottery

    Introduction: My name is Duane Harber, I am a modern, clever, handsome, fair, agreeable, inexpensive, beautiful person who loves writing and wants to share my knowledge and understanding with you.