SPC - Software Productivity Center Inc.
Contact Us Home
| Agile Development | Is Agile Right For Me?

Over the past few years Agile methods have enjoyed increasing popularity; it is clear that Agile development is today hitting the mainstream. Regardless, Agile is proving to be an approach that businesses can leverage to ensure they derive the best business value from their development projects. Agile has polarized the software industry: Many people swear that Agile is the best way to develop software, but there are also many people who say it doesn't work. The truth, of course, falls between the two extremes and depends very much on the situation you are in.

So how do you decide if an Agile development approach is the right choice for you? The best place to start is to look at the problems that can be solved by applying Agile practices, and see how many of them you are experiencing in your organization. The more that apply to you, the more benefit you can realize by transitioning to Agile.

 

3-dots empty agile addresses common business problems

Based on SPC's experience improving the effectiveness, productivity, and buisiness alignment of hundred's of software organizations, the following common problems can be resolved by adopting Agile methods:

Business needs change faster than development can respond. Many businesses (but not all) operate in markets where the ability to respond to changes in market conditions is critical to success. Getting a leg up on the competition, quickly resolving customer problems, responding to changes in regulations. Agile methodologies structure projects so that working software is delivered in small increments every 2-4 weeks. This provides frequent and regular opportunities for the project team to shift direction when they need to, and minimizes the investment in a lot of upfront work that won't be delivered after all.

Too much time elapsed between initial customer request and delivery of business value. In traditional software development methodologies a fully working system is not available until the end of the development project. While this approach can makes sense from a technical point of view, it can result in several months (or even years) before the system can be used to generate value for the parent business. In Agile development, because the software is maintained in working order each iteration, the delivery of business value is not an all or nothing event. Between iterations, if the business decides that there is enough usable functionality if the current system increment it is entirely feasible to deploy this subset of the total feature set for immediate business use. Business value accumalates earlier, resulting in higher Return on Investment and shorter payback periods.

Systems as delivered fall short of customer needs and/or expectations. Often development projects begin by gathering and documenting the customer's requirements for the system. These may be lengthy textual documents, or complex UML models. Either way it can be difficult to see if they have correctly captured the customer's intent. Then, over several months (or years) the requirements are interpreted by the development team and implemented in software. Typically the system falls short of customer expectations due to innaccuracies in the requirements and erroneous assumptions made by the developers. In contrast, Agile development emphasizes frequent (daily is preferred) interaction between the developers and the customer so that the customer can see what is being developed and correct any misunderstandings or faulty assumptions before they occur. Any problems that actually get into the code can be caught when the software is demoed at the end of each iteration and fixed right away.

Quality problems in released software. Usually this is due to test cycles being squeezed and development rushed because projects try to incorporate last-minute requirements/design changes. In the rush to fit it all in bugs slip through and are not discovered until the software is in production use. Agile addresses this problem in two ways. First, quality is built into the development process. At the end of each 2-4 week iteration all the features implemented is expected to be in usable, working order. Second, incoporating change is an integral part of the Agile planning process, which allows Agile projects to accomodate new demands and adjust commitments based on current business priorities.

Failing to deliver projects as per commitments. A common problem for software teams, that projects frequently take longer or cost more than initially planned. This is also one of the causes of relationship problems between development and the business. It can occur for multiple reasons: the development team is too optimistic in its estimates; risks and other contingencies aren't adequately accounted for in the project plan; requirements aren't clear intially and turn out to be much larger than expected. Agile practices resolves this problem in a planning process that makes commitments based on the measured capacity of the development team. Short term commitments are fixed on an iteration-by-iteration basis. Long term commitments are made based on current information, but are refined continuously (by development and the business together) as new information becomes available.

Strained, arms-length relationships between business and development. A common situation where finger pointing and blame games ensue when project outcomes aren't as desired. This is symptomatic of poor collaboration between development and the business, and often neither party is willing or interested in understanding the other's priorities and problems. Agile hits this one head on! Agile projects are delivered by cross-functional teams in which development and business people work together every day. Developers are expected to understand the business priorities that dictate the content and order of the feature set. Business people are expected to recognize the technical and work capacity constraints the developers are working under. Each party respects the integrity and professionalism of the other. All are pulling together towards a common vision and goals.

 

How does your situation compare? The more of these problems that apply to you, the more benefit you can realize by transitioning to Agile:

  • Deliver business value when it is needed
  • Build stronger relationships between development and its business partners
  • Implicitly drive development projects by business priorities
  • Quickly develop high quality systems
  • Provide frequent visibility into project progress
  • Heighten team morale and collaboration

 

1 2 Want to know more?
  • If you have a thorny business issue or Agile question you need answered fill out our on-line enquiry form.
  • If you're unsure if your Agile Development approach is working for you as it should or could -- Take our quick 12-question needs assessment or read up on what you need to do to deliver on the Agile promise.
  • If you're unsure if an Agile approach meets your needs, read up on the problems Agile can solve for you.
  • To learn more, we encourage you to contact an SPC representative. They understand our services from your perspective. You will get an honest picture without the hype. There's no risk, no obligation, and plenty of ways to see if SPC is right for you.

Our goal is to ensure our clients have the right process, technology and skills to deliver lasting change to their development organization. Discover why SPC is right for you.

get spc working for you

Learn more about how SPC's consulting services can optimize your Agile Development practices.

 

 

Why Use SPC
» Discover the SPC difference.

Free Newsletter
Signup! Stay Informed

Sign up for SPC’s newsletter, New Insights, and stay current with the latest thinking from industry leaders.

SPC Services
Everyday, SPC works with software leaders to realize the full business potential of their development teams and practices. We do this through our core service offering:
» Consulting
» Skills development training
» Team coaching
» Executive support

Resources
An extensive collection of best-practices information you can put to use today.
» SPC articles & whitepapers
» SPC skills development training
» Recommended reading

SPC Articles & Whitepapers
Our most popular requests.
» Agile Transition Case Study
» Agility with Use Cases
» Controlled Agility

Skills Development Training
Improve your skills with SPC Springboard training.
» Successfully Managing Agile Projects
» Mastering Agile Requirements: Principles, Process and Practices
» How to Write Effective Use Cases
» Implementing Lean Software Development
» Transitioning to Agile Project Management
» Agile Software Product Design:
Creating Successful Products Using Agile Development
 
Complete SPC Springboard schedule
Complete SPC Springboard catalogue
SPC Springboard on-site training

recommended reading

For more details on the various different aspects of Agile Development check out some of the books on SPC's recommended reading list.

» Go to the book list

Related Knowledge
Our expert knowledge addresses the core process, performance, and organizational areas critical to lasting change.
» Process Change & Adoption

Related Resources
An extensive collection of useful information, including technical briefs, free templates, suggested reading and links to other great sites.

Contact SPC
Put us to work for you!

Toll Free in North America 1.877.548.1948

Outside North America +1.604.662.8181

Click here for contact info

Email: info@spc.ca
QUICK ACCESS
Why Use SPC?
Overview
What We Do
Overview
Services
SPC Springboard - SPC's Open-Enrollment Training Program
Delivering Lasting Change
Software Requirements Development & Management
Estimation & Project Planning
Process Change & Adoption
Relevant Insights
Get SPC's Value Working for Your Organization
Experts & Consultants
Overview
Resources
Overview
Corporate
Overview
©1992 Software Productivity Center Inc. All rights reserved.
Why Use SPC? | What We Do | Experts & Consultants | Resources | Corporate
Privacy Policy
SPC - Software Productivity Center Inc.