Home > Addressing software quality issues with development models, methods
Learning Guide:
EMAIL THIS

Addressing software quality issues with development models, methods

29 Mar 2007 | SearchSoftwareQuality.com

Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


Michelle 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
   Traditional Models (Waterfall, V-Model, spiral)
   Agile
   Scrum
   Extreme Programming (XP)
   Rational Unified Process (RUP)
   Test-Driven Development (TDD)
   More Helpful Resources

  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.

  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.

  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.



Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


RELATED CONTENT
Software development fundamentals
Continuous integration meets application performance management
Inherent Quality Simplicity, Section V: The Evolution
Outside-in Software Development: A Practical Approach to Building Successful Stakeholder-based Products -- Chapter 1, Introducing Outside-in Development
Automated Defect Prevention: Best Practices in Software Management, Chapter 1 -- The Case for Automated Defect Prevention
Implementing the IBM Rational Unified Process and Solutions: A Guide to Improving Your Software Development Capability and Maturity -- Chapter 2, Your First Steps
Varying SDLC methodologies among development teams
How continuous integration improves software quality
ThoughtWorks releases the CruiseControl continuous integration framework for large organizations
Continuous Integration: Improving Software Quality and Reducing Risk -- Chapter 2, Introducing Continuous Integration
Agile development methodologies -- Podcast

Agile software development
Approaches to defining requirements within Agile teams
Automated software builds save time, money for Portico
Using iterations to help balance priority and risk
Agile development: Not just for 'agilists' anymore
Jazz opening: IBM invites developers to collaborate on software
Agile Software Development: The Cooperative Game, 2nd Edition -- Chapter 3, Communicating, Cooperating Teams
Agile development and Grails a dynamic duo
Case study: Agile development moves at Rackspace
Agile tools for Agile development
Software development trends in 2008: Outsourcing, agile development

Extreme Programming (XP)
Agile Software Development: The Cooperative Game, 2nd Edition -- Chapter 3, Communicating, Cooperating Teams
Better software through debugging and unit testing -- Unit testing, Extreme Programming and TDD
Better software through debugging and unit testing -- Other useful resources
Better software through debugging and unit testing
Agile development best for delivering products on target
Agile methods bring improved software quality, but challenges remain
How long should an iteration be?
Is iterative development a new process?
Project signoff: It isn't over 'til the customer says so
IT career outlook -- Companies want communication skills as well as technical ability

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
build tool  (SearchSoftwareQuality.com)
development environment  (SearchSoftwareQuality.com)
heuristics  (SearchSoftwareQuality.com)
histogram  (SearchSoftwareQuality.com)
intentional programming  (WhatIs.com)
JAD  (SearchSoftwareQuality.com)
lean programming  (SearchSoftwareQuality.com)
peer review  (SearchSoftwareQuality.com)
source code analysis  (SearchSoftwareQuality.com)
Standard Performance Evaluation Corporation  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary


About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides enterprise IT professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective IT purchase decisions and managing their organizations' IT projects - with its network of technology-specific Web sites, events and magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Reprints  |  Site Map




All Rights Reserved, Copyright 2006 - 2008, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts