Get started Bring yourself up to speed with our introductory content.

Addressing software quality issues with development models, methods

Each software development model has its own practices for building quality software. It is up to software makers to determine which model best fits their needs and to follow its practices so that they can deliver software on time that meets users' needs and is bug-free. To help you decide which model or combination of models is right for you, we've gathered these articles, tips, books and other resources about the main software development models.


Michelle Davidson, Site EditorMichelle Davidson, Site Editor

If you want to build quality software, most experts these days say you should use an agile development model or method. However, many still believe traditional models have benefits. And others say even if you use an agile method, that doesn't guarantee you'll produce a quality product.

Each model has its own practices for building quality software. It is up to software makers and their development teams to determine which model best fits their needs and to follow its practices so that they can deliver software on time that meets users' needs and is bug-free.

To help you decide which model or combination of models is right for you, we've gathered these articles, tips, books and other resources about the main software development models. You'll learn what their main philosophies are, their benefits and downsides, and how companies are using them to create quality software.

Are there other topics you'd like to see learning guides on? Send me an e-mail and let me know what they are.
-- Michelle Davidson, Site Editor.




[Return to Table of Contents]

There is no absolutely perfect software development model or process. Proponents say each has its own benefits. But by comparing them you can determine which model -- or combination of models -- is best for your project.


  • Which development method is right for your project?
    We can debate the pros and cons of one development process over another until we're blue in the face, but the simple fact is that we will never declare a true winner. There simply is no silver bullet development process that will help every development team deliver every product on time and on budget. This article provides a brief overview of three development processes and when they are most appropriate.

  • Software quality development and assurance in RUP, MSF and XP: A comparative study (PDF)
    This study compares three of the most industrially relevant software development process models (Rational Unified Process (RUP), Microsoft Solution Framework (MSF) and Extreme Programming (XP)) regarding their software quality support in terms of software quality development and software quality assurance. Based on the results, the writers propose a de-facto standard for quality support in software development process models.

  • Iterative vs. waterfall software development: Why don't companies get it?
    Why, given that iterative and incremental approaches dominate the literature, does business remain so wedded to the waterfall approach to software development? After much reflection and research, this author attempts to explain.

  • Introducing an agile process to an organization (PDF)
    The transition from a plan-driven process to an agile process affects not only the development team members, but also other teams, departments and management. This article describes common pitfalls and effective approaches to making this change.


  Traditional Models

[Return to Table of Contents]

Traditional software development models such as Waterfall, V-Model and spiral aren't highly regarded these days and are considered to be ineffective. However, many companies still use them and say they have benefits.


  • Arguments for the waterfall model
    While many would say the waterfall model is ineffective and outdated, some still say it is well-suited for software projects that are stable and where "it is possible and likely that designers will be able to fully predict problem areas of the system and produce a correct design before implementation is started."

  • Understanding the pros and cons of the waterfall model of software development
    Waterfall development is a software development model involving a phased progression of activities, marked by feedback loops, leading to the release of a software product. This article provides a quick and dirty introduction to the model, explaining what it is, how it's supposed to work, the six phases and why the model can fail.

  • Waterfall development for new managers
    There are many development methodologies to choose from, and new managers often struggle when deciding which to use. This article says waterfall development, while it has its shortcomings, is popular among new managers because it's straightforward and it facilitates project management.

  • The V-Model (PDF)
    This paper provides an overview of the V-Model, describing the basic concepts, its submodels and its advantages and disadvantages compared with other development methods.

  • The spiral model as a tool for evolutionary acquisition (PDF)
    This paper provides definitions of a set of six spiral model Essentials or critical success factors for spiral development. It illustrates each with examples, identifies the hazardous look-alikes to avoid, and provides guidelines for using the spiral model in support of evolutionary acquisition.



[Return to Table of Contents]

Agile software development is a methodology for the creative process that anticipates the need for flexibility and applies a level of pragmatism into the delivery of the finished product. It focuses on keeping code simple, testing often and delivering functional bits of the application as soon as they're ready.


  • Agile development best for delivering products on target
    If you want your application to truly meet your users' needs, you must use an agile development methodology. That's the point Venkat Subramaniam from Agile Developer and Neal Ford from ThoughtWorks stressed during their presentations at the Fifth Annual TheServerSide Java Symposium.

  • Agile methods bring improved software quality, but challenges remain
    Early benchmarking results of agile development methods such as Extreme Programming (XP) and Scrum projects show productivity and quality improvements, but time/scope pressures remain the biggest challenges to project success. Software metrics and estimation expert Michael Mah sat down with to discuss the improvements seen and what factors can still negatively affect a project.

  • The state of software quality, part 2: The challenge of building quality into the development life cycle
    Organizations are adopting lighter-weight development methodologies and agile development styles to address software quality issues, as well as bringing testing into the development process.

  • Role of testing in agile projects
    Agile development emphasizes the role of testing in the software development process. Here are some guidelines to testing within the agile methodology.

  • Secure agile software development an oxymoron?
    Can you be agile and secure? That's the dilemma agile software developers face as they build flexible, responsive applications. But it is possible, according to Dan Cornell, principal at the Denim Group. Some compromises just need to be made.

  • Agile quality: A canary in a coal mine (video presentation)
    Scrum co-creator Ken Schwaber discusses how a degrading core code base paralyzes a team and negates any agility gained through process improvement. He proposed strategies for management to identify, track and stop this downward spiral.

  • Quality in an agile world (PDF)
    In this article Scott Ambler outlines how agile methodologies and improve software quality and what effect the use of agile has on traditional quality assurance roles.

  • Agile software testing in a large-scale project (PDF)
    This case study of a large Extreme Programming project provides quantitative and qualitative data to show that agile software testing does work.

  • Agile outsourcing: Testing and quality assurance
    In this column, the author explores how agile methodologies offer probably the smoothest way to ensure a balance between testing and quality assurance. He also explores some typical problems that arise in testing and quality assurance and how agile methodologies address them effectively.

  • Agile development and software quality
    Learn how the agile development process played an integral part in repairing a configuration issue this company's users experienced.

  • Book: Agile Software Development Quality Assurance
    This book provides the research and instruction used to develop and implement software quickly, in small iteration cycles, and in close cooperation with the customer in an adaptive way, making it possible to react to changes set by the constant changing business environment.



[Return to Table of Contents]

Scrum is an agile software development model based on multiple small teams working in an intensive and interdependent manner. The model employs real-time decision-making processes based on actual events and information. This requires well-trained and specialized teams capable of self-management, communication and decision-making. The teams in the organization work together while constantly focusing on their common interests.



  Extreme Programming (XP)

[Return to Table of Contents]

Extreme Programming (XP) is a pragmatic approach to program development that emphasizes business results first and takes an incremental, get-something-started approach to building the product, using continual testing and revision.



  Rational Unified Process (RUP)

[Return to Table of Contents]

Rational Unified Process (RUP) is an object-oriented and Web-enabled program development methodology. According to Rational (developers of Rational Rose and the Unified Modeling Language), RUP is like an online mentor that provides guidelines, templates, and examples for all aspects and stages of program development.


  • A manager's introduction to the Rational Unified Process (RUP)
    This white paper overviews the Rational Unified Process (RUP), an evolutionary software development process.

  • Rational Unified Process: Best practices for software development teams (PDF)
    Here's another overview of the Rational Unified Process. This one describes six best practices, the various phases, the core workflows, and integration with tools.

  • Fortune 500 title insurance company improves IT quality with the Rational Unified Process
    A Fortune 500 title insurance company suffered from increasing maintenance costs for their existing change management and requirements tracking products. To improve things, it adopted the Rational Unified Process (RUP) and Rational Suite and it turned to Amentra to implement and customized development methodology based on RUP and to mentor the company's employees in the use of this methodology.

  • Agile modeling and the Rational Unified Process (RUP)
    This article discusses how agile modeling can be used in conjunction with the various instantiations of the Unified Process (UP), including but not limited to the RUP and the Enterprise Unified Process (EUP). Topics include how modeling works in the Unified Process, how good is the fit between agile modeling and RUP and adopting agile modeling on a UP project.

  • Book: The Rational Unified Process Made Easy: A Practitioner's Guide to Rational Unified Process
    The Rational Unified Process Made Easy will teach you the key points involved in planning and managing iterative projects, the fundamentals of component design and software architecture, and the proper employment of use cases. All team members -- from project managers to analysts, from developers to testers -- will learn how to immediately apply the RUP to their work.

  • RUP in the dialogue with Scrum
    Learn how software development teams can add Scrum ideas to an existing RUP environment.


  Test-Driven Development (TDD)

[Return to Table of Contents]

Test-driven development (TDD) is a software development technique that involves repeatedly first writing a test case and then implementing only the code necessary to pass the test.



  More Helpful Resources

[Return to Table of Contents]

Bas de BaarExpert advice on software process models and methodologies

Do you have a question about using a certain software development model? Bas de Baar, our site expert on software process models and methodologies may have the answer. Read advice he has given or submit your own questions.


  • Manifesto for Agile Software Development
    Learn about the principles of agile software development and the authors of the manifesto.

  • Agile Thoughts Blog
    Tobias Mayer, a freelance agile consultant and trainer, offers his thoughts on agile software development.

    This site is dedicated to promoting techniques, tools and general good will in the test-driven community.

  • Scrum Alliance
    This nonprofit organization provides articles, news, training information and other resources on Scrum.

  • Scrum Log by Jeff Southerland
    Jeff Sutherland, co-creator of Scrum, posts regularly about Scrum software development.

  • is a resource for information about Extreme Programming (XP), featuring articles about the state of XP, techniques, tips, and experience reports.

Send in your suggestions
Are there other topics you'd like to see learning guides on? Send's editors an e-mail at and let them know what they are.

Dig Deeper on Topics Archive

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.