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.

TABLE OF CONTENTS

 

  Basics/Fundamentals

[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.

 

  Agile

[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 SearchSoftwareQuality.com 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.

 

  Scrum

[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.

 

  • Agile software development with Scrum (PDF)
    In this FAQ, Scrum co-creator Ken Schwaber answers just about every question you may have about using Scrum.
  •  

  • 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.
  •  

  • Diving into the scrum to make things happen
    Learn how Wizard Information Services adapted Scrum to develop its own agile methodology called Scrum Agile Methodology (SAM).
  •  

  • Project management and Scrum: A side by side comparison (PDF)
    This paper compares traditional waterfall project standards and deliverables with those in Scrum, as well as looks at the differences between the project manager's role and that of the Scrum Master.
  •  

  • Best practices in Scrum project management and XP agile software development (PDF)
    This white paper explains how Primavera Systems, a vendor of project portfolio management solutions, turned around its development organization using Scrum and Extreme Programming.
  •  

  • When is Scrum not Scrum?
    In this blog posting, Tobias Mayer talks about how some of the Scrum principles originally stated are outdated and it's time to take another look at what practices are more effective.
  •  

  • Increased visibility when using Scrum (excerpt from Agile Software Development with Scrum)
    Ken Schwaber and Kane Mar argue that Scrum can be combined with XP engineering practices to generate a significant impact on the productivity of a project team. This article details a project in which this theory was put to work successfully.
  •  

  • Book: Agile Software Development with Scrum
    Readers will learn how Scrum cuts through the complexity and ambiguity of complex, emergent requirements and unstable technology to iteratively and quickly produce quality software.
  •  

  • Conventional Software Testing on a Scrum Team (Excerpt from Agile Software Development Ecosystems)
    The Scrum methodology can pose a challenge for software testers who are used to more traditional waterfall-inspired development processes. Jonathan Kohl relates his experiences working on Scrum teams who found some clear advantages in changing their methods.

 

  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.

 

  • Extreme Programming (XP) quality
    Where does quality fit in XP? Ryan Lowe explains in this blog posting.
  •  

  • The quality of requirements in Extreme Programming
    This paper describes and evaluates the quality of requirements generated by an ideal group using XP and discusses how the XP process can assist or hinder proper requirements engineering.
  •  

  • Towards reconciling quality and agility in Web application development
    This paper empirically addresses the tension between quality and agility (speed) in Web application development, describing a set of software disciplines that were added to Extreme Programming to improve Web software quality without sacrificing development agility.
  •  

  • Case Study: The quest for quality, an offshore project experience
    In this case study you'll see how StarSoft Labs used XP with a twist to bring its defect rate down while keeping good velocity and implementing changes rapidly.
  •  

  • Improve competitive quality with extreme programming
    Excellent quality in a software product is a competitive advantage. Citect's adoption of Extreme Programming shows how thinking a new way about managing a project and a team pays off.
  •  

  • Embracing fun: Why Extreme Programming is great for game development
    Using XP you can keep projects flexible, which allows you to easily change the direction of a game and find the fun gameplay.
  •  

  • An adventure in Extreme Programming
    Learn how a team of IBM developers used XP to deliver a software component for a large middleware product as part of a larger, traditional development project. How XP impacted the success of the project, the deliverables, and the interaction between team members, colleagues, and the customer, are also discussed.
  •  

  • Best practices in Scrum project management and XP agile software development (PDF) This white paper explains how Primavera Systems, a vendor of project portfolio management solutions, turned around its development organization using Scrum and Extreme Programming.
  •  

  • Book: eXtreme Programming eXplained
    Kent Beck's eXtreme Programming eXplained provides a high-level overview of the author's Extreme Programming (XP) software development methodology. Written for IS managers, project leaders or programmers, this guide provides a glimpse at the principles behind XP and its potential advantages for small- to midsize software development teams.

 

  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.
  •  

  • Testdriven.com
    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.
  •  

  • XProgramming.com
    XProgramming.com 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 SearchSoftwareQuality.com's editors an e-mail at editor@searchsoftwarequality.com 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.

-ADS BY GOOGLE

SearchCloudComputing

SearchAppArchitecture

SearchITOperations

SearchAWS

Close