Risk based selection for agile iterative lifecycle methods
This overview helps project management and teams in selecting the best iterative method(s) for their projects, based on the major risks they want to tackle. The overview highlights the focus of the different methods, ie. which risks are mainly addressed. This is not a detailed course on all the methods, but references to literature are provided.
During the last decade agile software development methods and lifecycles (SDLC) became very successful and as such a lot of hype was created around them. The abundance of methods that have been developed looks scaring at first sight: agile, incremental, iterative, evolutionary, lean and extreme are some of the terms used. It is not easy to select the right method for the problem at hand.
As a project team your focus is on tackling your project's risk. Choosing the right iterative development method is an important activity early in your development lifecycle.
Compared to the waterfall approach all iterative methods have in common that their main deliverable in (almost) every iteration is an integrated, tested, executable system. All development processes (requirements, analysis and design, coding, integration and test) are performed in every iteration.
Differences between the methods lie in the kind of risks where they put the focus on, the length of iterations, the amount of documentation, the importance of modeling.
What follows is an overview of the best-known methods, their focus, and main references. Use this overview to make an educated selection for your projects.
Spiral Model (Boehm 1985)
Although not the first application of iterative development, Barry Boehm was the first to explain why iteration matters. The spiral model has explicit activities to identify risks, tackle them via prototyping and evaluate them before going to the next iteration.
A Spiral Model of Software Development and Enhancement, by Barry Boehm, IEEE Computer, May 1988
Incremental Development
Often used together with iterative development. The main focus is on a staged integration. The major risk of a big bang integration near the end of development is tackled. In traditional waterfall oriented organisation, incremental development has the advantage that you can work in an iterative way only at the backend of your lifecycle activities (coding, integration, testing) and do the front part activities (requirements, analysis & design) in a waterfall way. No difficult cultural and organisational change is needed with your business partners. A disadvantage of this approach is that you remain inflexible to requirements changes. With a fully iterative process you also do your requirements activities with every iteration, and you can cope with requirements changes, but it also requires more involvement from your customer.
Rational Unified Process (RUP)
An iterative incremental development process by IBM-Rational which is widely accepted by industry. The process is architecture driven, use case driven, and risk driven, in right balance. Compared to the agile methods there is more emphasis on documentation and visual modelling. IBM-Rational provides a whole toolsuite and web-based process asset library to support the process. RUP is highly tailorable and scalable, although the tailoring can be a challenge for somewhat smaller projects.
The Rational Unified Process: An Introduction, Philippe Kruchten,
eXtreme Programming (XP)
XP is the best known of the agile methods. The aim is on coping with unstable requirements. Emphasis is put on communication, simplicity, early deliveries and testing. The method is based on a set of core practices: test-driven development, continuous integration, pair programming, small releases, customer tests, simple design, refactoring, metaphor, collective ownership, coding standard, planning game, whole team and sustainable pace. XP works very effective and is largely productive for small highly skilled teams. The method is rather difficult to scale to large distributed teams. It can also be difficult to use in traditional development organisations.
www.xprogramming.com (Ron Jeffries)
eXtreme programming - a gentle introduction
Extreme Programming Explained, Kent Beck
SCRUM
A method which emphasizes on project management and team work, with less focus on the engineering practices. Iterations are defined as 30 days sprints. Daily 15 minute meetings (scrums) help the team stay on track and make fast progress. Customer prioritised features are kept in a backlog. The method is widely applicable, both on new projects and on maintenance, at the team level (which might be part of a larger organisation).
www.controlchaos.com/
Agile Project Management with Scrum, by Ken Schwaber, Microsoft Press
Dynamic Systems Development Method (DSDM)
When staying within the deadline and the budget (time-box principle) is your main concern you might have a look at DSDM which focusses on these risks. The process framework is based on Rapid Application Development (RAD). There are similarities with RUP, but there is less focus on tools and techniques.
DSDM Consortium
Crystal Methods (Alistar Cockburn)
XP like method, but more focus on documentation. Emphasis on tailoring for project sizes between 6 and 60 developers, and for criticality. Attention is given on versioning and configuration management.
Crystal Clear: A Human-Powered Methodology for Small Teams, by Alistair Cockburn
Feature-Driven Development (FDD, Peter Coad)
Combines agile methods with model driven techniques. The focus is on features: plan by, design by, build by, and report by feature. The domain modelling is mostly done upfront. Iterations are defined as feature sets. A feature is developed in a waterfall way. Due to the emphasis on domain modelling this methods scales good to larger teams.
A Practical Guide to Feature-Driven Development (The Coad Series),
Test-Driven Development (TDD)
Focuses on testable requirements and test automation. The development cycle is turned around: start with a test case and a failing unit test before implementing the code. Use unit test tools and build a regression testsuite on the go. This is one of the XP practices that seems to be more difficult to adopt in traditional development environments.
Test Driven Development: A Practical Guide, by Dave Astels
Test Driven Development: By Example, by Kent Beck
Introduction to TDD, by S.Ambler
Component Based Development (CBD)
CBD is about building software systems by assembling and integrating software components, rather than about coding. The focus is reducing development cost and rapid system assembly. Activities include: component qualification (suitability testing), component adaptation, assembling components into systems and system evolution.
Component-Based Software Development / COTS Integration
Lean Software Development (LSD, M.Poppendieck)
Based on "lean thinking" in manufacturing, logistics and product development. The focus is on efficiency and the elimination of waste. Also related to "lean six sigma".
Lean Software Development: An Agile Toolkit for Software Development Managers
Lean Software Development. Deliver Value Quickly, Efficiently, Reliably - Every Time
Waterfall lifecycle
A waterfall lifecycle is only suitable for easy projects with well known requirements and known solutions. These kind of project are rather rare those days. Or as Fred Brooks explained in his
‘95 ICSE keynote and in his famous “Mythical Man-Month”: “The waterfall model is wrong!”.
General literature on agile and iterative development:
Manifesto for Agile Development
Agile and Iterative Development: A Manager's Guide, by Craig Larman
Agile Project Management: Creating Innovative Products, by Jim Highsmith
Agile Software Development, by Alistair Cockburn
Unified Project Management, by Walker Royce
Balancing Agility and Discipline, A Guide for the Perplexed, by Barry Boehm, Richard Turner
Conclusion
An iterative development lifecycle is the obvious choice in todays flexible software business. Choosing the right variant of iterative development should be based on the risks you want to tackle in your project. This overview gives you a first guideline.
Digg it! | Add to del.icio.us
During the last decade agile software development methods and lifecycles (SDLC) became very successful and as such a lot of hype was created around them. The abundance of methods that have been developed looks scaring at first sight: agile, incremental, iterative, evolutionary, lean and extreme are some of the terms used. It is not easy to select the right method for the problem at hand.
As a project team your focus is on tackling your project's risk. Choosing the right iterative development method is an important activity early in your development lifecycle.
Compared to the waterfall approach all iterative methods have in common that their main deliverable in (almost) every iteration is an integrated, tested, executable system. All development processes (requirements, analysis and design, coding, integration and test) are performed in every iteration.
Differences between the methods lie in the kind of risks where they put the focus on, the length of iterations, the amount of documentation, the importance of modeling.
What follows is an overview of the best-known methods, their focus, and main references. Use this overview to make an educated selection for your projects.
Spiral Model (Boehm 1985)
Although not the first application of iterative development, Barry Boehm was the first to explain why iteration matters. The spiral model has explicit activities to identify risks, tackle them via prototyping and evaluate them before going to the next iteration.
A Spiral Model of Software Development and Enhancement, by Barry Boehm, IEEE Computer, May 1988
Incremental Development
Often used together with iterative development. The main focus is on a staged integration. The major risk of a big bang integration near the end of development is tackled. In traditional waterfall oriented organisation, incremental development has the advantage that you can work in an iterative way only at the backend of your lifecycle activities (coding, integration, testing) and do the front part activities (requirements, analysis & design) in a waterfall way. No difficult cultural and organisational change is needed with your business partners. A disadvantage of this approach is that you remain inflexible to requirements changes. With a fully iterative process you also do your requirements activities with every iteration, and you can cope with requirements changes, but it also requires more involvement from your customer.
Rational Unified Process (RUP)
An iterative incremental development process by IBM-Rational which is widely accepted by industry. The process is architecture driven, use case driven, and risk driven, in right balance. Compared to the agile methods there is more emphasis on documentation and visual modelling. IBM-Rational provides a whole toolsuite and web-based process asset library to support the process. RUP is highly tailorable and scalable, although the tailoring can be a challenge for somewhat smaller projects.
The Rational Unified Process: An Introduction, Philippe Kruchten,
eXtreme Programming (XP)
XP is the best known of the agile methods. The aim is on coping with unstable requirements. Emphasis is put on communication, simplicity, early deliveries and testing. The method is based on a set of core practices: test-driven development, continuous integration, pair programming, small releases, customer tests, simple design, refactoring, metaphor, collective ownership, coding standard, planning game, whole team and sustainable pace. XP works very effective and is largely productive for small highly skilled teams. The method is rather difficult to scale to large distributed teams. It can also be difficult to use in traditional development organisations.
www.xprogramming.com (Ron Jeffries)
eXtreme programming - a gentle introduction
Extreme Programming Explained, Kent Beck
SCRUM
A method which emphasizes on project management and team work, with less focus on the engineering practices. Iterations are defined as 30 days sprints. Daily 15 minute meetings (scrums) help the team stay on track and make fast progress. Customer prioritised features are kept in a backlog. The method is widely applicable, both on new projects and on maintenance, at the team level (which might be part of a larger organisation).
www.controlchaos.com/
Agile Project Management with Scrum, by Ken Schwaber, Microsoft Press
Dynamic Systems Development Method (DSDM)
When staying within the deadline and the budget (time-box principle) is your main concern you might have a look at DSDM which focusses on these risks. The process framework is based on Rapid Application Development (RAD). There are similarities with RUP, but there is less focus on tools and techniques.
DSDM Consortium
Crystal Methods (Alistar Cockburn)
XP like method, but more focus on documentation. Emphasis on tailoring for project sizes between 6 and 60 developers, and for criticality. Attention is given on versioning and configuration management.
Crystal Clear: A Human-Powered Methodology for Small Teams, by Alistair Cockburn
Feature-Driven Development (FDD, Peter Coad)
Combines agile methods with model driven techniques. The focus is on features: plan by, design by, build by, and report by feature. The domain modelling is mostly done upfront. Iterations are defined as feature sets. A feature is developed in a waterfall way. Due to the emphasis on domain modelling this methods scales good to larger teams.
A Practical Guide to Feature-Driven Development (The Coad Series),
Test-Driven Development (TDD)
Focuses on testable requirements and test automation. The development cycle is turned around: start with a test case and a failing unit test before implementing the code. Use unit test tools and build a regression testsuite on the go. This is one of the XP practices that seems to be more difficult to adopt in traditional development environments.
Test Driven Development: A Practical Guide, by Dave Astels
Test Driven Development: By Example, by Kent Beck
Introduction to TDD, by S.Ambler
Component Based Development (CBD)
CBD is about building software systems by assembling and integrating software components, rather than about coding. The focus is reducing development cost and rapid system assembly. Activities include: component qualification (suitability testing), component adaptation, assembling components into systems and system evolution.
Component-Based Software Development / COTS Integration
Lean Software Development (LSD, M.Poppendieck)
Based on "lean thinking" in manufacturing, logistics and product development. The focus is on efficiency and the elimination of waste. Also related to "lean six sigma".
Lean Software Development: An Agile Toolkit for Software Development Managers
Lean Software Development. Deliver Value Quickly, Efficiently, Reliably - Every Time
Waterfall lifecycle
A waterfall lifecycle is only suitable for easy projects with well known requirements and known solutions. These kind of project are rather rare those days. Or as Fred Brooks explained in his
‘95 ICSE keynote and in his famous “Mythical Man-Month”: “The waterfall model is wrong!”.
General literature on agile and iterative development:
Manifesto for Agile Development
Agile and Iterative Development: A Manager's Guide, by Craig Larman
Agile Project Management: Creating Innovative Products, by Jim Highsmith
Agile Software Development, by Alistair Cockburn
Unified Project Management, by Walker Royce
Balancing Agility and Discipline, A Guide for the Perplexed, by Barry Boehm, Richard Turner
Conclusion
An iterative development lifecycle is the obvious choice in todays flexible software business. Choosing the right variant of iterative development should be based on the risks you want to tackle in your project. This overview gives you a first guideline.
Digg it! | Add to del.icio.us


72 Comments:
This is very useful information, especially for project managers. Thanks!
Hi
Good article Ronny. Rather than risks, I reckon that you consider what software development problems your team has been struggling with, find the root cause of these and use this as the key to deciding which agile best practice you should implement first. I explain how this approach works in: http://profmgmt.wordpress.com/2007/02/04/what-software-development-problems-do-agile-best-practices-answer/
Cheers
Robin
For organizations to stay ahead in today’s fast changing business scenario, time is the single biggest factor – time to market, time to launch new products, time to respond to customers. Organizations are faced with a growing number of challenges and business risks due to rapid advances in technology and increasing pressures on margins.
Software Development Company
Hi,
This articles is good and informative.
Software Development Company
Indeed a well read. With the article focussing on specific agile software development procedures,software developers can easily pick up one of them.Agile software development is an intrinsic part of software development and is also a reckoned name in the field of offshore software development.
Very good content, i wish to exchange my blog link with you:
my blog is mainly on doing software reviews,this is my blog:
http://recommendsoftware.blogspot.com/
thank you for your notes it will be useful for me
While agile development has rather critical processes to follow thus getting well acknowledged with the cycle layers is important...quite lucrative blog......
Hi Ronny,
I'd like to ask your opinion about Code Inspection in agile development processes. I'm a fellow of the Institute for Software Quality (www.ifsq.org) -- we're producing, publishing and promoting a set of standards for source code.
What's your position?
This is very useful information, plz visit my
Software Blogspot yah.. thanks
I always read your blogs something everyday because I like your thought and I got much advice after read you. I tell to my other friends about this & it’s blog. I hope you will read my this comment and you will remember me. i want you to always make new articles like this. I appreciate this.
Thanks a lot.
Online Applicant Tracking System
A waterfall lifecycle is only suitable for easy projects with well known requirements and known solutions. These kind of project are rather rare those days. Or as Fred Brooks explained in his
An iterative development lifecycle is the obvious choice in todays flexible software business. Choosing the right variant of iterative development should be based on the risks you want to tackle in your project. This overview gives you a first guideline.
I like your post about "Risk based selection for agile iterative lifecycle methods"
I want to share you a great technique which known as data recovery services and softwares, it can prevent your lost data due to any reason.
Hey, thanks a lot for sharing the nice post with us. Keep going on
Very useful information. I like the way of presentation.
This comment has been removed by the author.
very good work done. i like it!
the one thing that i liked about it is when in project team, your focus is on tackling your project's risk. Choosing the right iterative development method is an important activity early in your development lifecycle.
For more tips refer softwarecollectors
This is the very helpful information for managing to business the overview highlights the focus of the different methods, thanks for sharing this post.
Nice Blog.
You made my morning with the SDLC..thanks a lot.
Sample Questionnaire Customer Satisfaction Survey
useful and nice post !!!
Xtreme zone
The software company I work in uses the agile method in development. We make sure that through this method, we produce high quality results. We follow standards as stated by the ISO 9001 registrar when we got that certification of quality management systems. Through this certification, we are recognized by the world as one of the companies that comply with this standard.
This is a good article Ronny. I would be most likey consider using software in our small company. What do you think of misys software and quickbooks alternative, anyway? I have been hearing them to some friends. I hope you can find time to answer this. Thanks!
I agree with Meikah Delied........
useful information,
sentientit develops software based upon the latest technologies and utilizing Mobile – based applications and Web-based applications software development which provides excellent service.
Very nice sharing. Really appreciated.
Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic.
Apron | Shop Towel
Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be
subscribing to your feed and I hope you post again soon.
http://www.boundlesstech.net
Interesting and helpful article, thank you.
http://www.micro-tronik.com/
I surely enjoyed every little bit of it
Agreed with meikah. Thanks a lot.
Nice Blog. Very informative and also great post. Thanks.
Excellent sharing Thanks for share i am sure its must help me. thanks for doing this.
Software Product Development
Thanks for sharing thins information. Great article.
Seo With Google
Hi mate, this was wonderful article.
Datastage
hi
Thanks for sharing this information with all. just keep update the blog with useful information.
Thanks
martin
A great piece of information. However, software development companies these days require a more dynamic outlook to the whole process of management.
Thanks som uch for porividng such a beneficial information about agilem ethodology....Its seems to be very vast process in software testing so i really impressive as per ur article ..Thanks
Hi, I have just visited your site and the info you have covered has been of great interest to me.
Waterfall model has both advantages and disadvantages, waterfall mode is suitable for typical projects that are repetitive in nature, refer to post www.softwaretestingsoftware.com/waterfall-model/ for more details
Well it is my good luck in real, as I was searching something else on internet and I am here to your blog by chance and I must say it is a good site buddy.
It is nice to find a site about my interest. My first visit to your site is been a big help. Thank you for the efforts you been putting on making your site such an interesting and informative place to browse through. I'll be visiting your site again to gather some more valuable information. You truly did a good job.
I admire the way you express yourself through writing. Your post is such a refreshing one to read. This is such an interesting and informative article to share with others. Keep up the good work and more power. Thanks!
This blog greatly matches my interests and I your writing method is very interesting. I would like to share vps hosting with guys which should match your interests as well.
This comment has been removed by the author.
Looks like a great inspirational post for web designers
Looks like a great inspirational post for web designers
This is a better-quality article as they all are. I make fun of been wonder wide this an eye to some beat now. Its great to receive this info. You are fair and balanced.
Chevy HHR Turbo
The blog contains informational and educational material. The post enhance my thoughts and experience. So nice!
I've got to scramble to keep up with your prodigious output!
I am so excited after seeing our blog.
Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon.
Thanks for sharing with us.
http://www.boomixwallpapers.blogspot.com
awesome
This post was not only helpful but very useful too. Thank you for sharing this piece of your expertise with all of us. Cheers!
The .net Obfuscator is the best option while going in for protecting your .NET applications.
Thank you for the info. It sounds pretty user friendly. I guess I’ll pick one up for fun. thank u
Software Product Development
I am posting here just to let you know that you are doing a good job by keeping us posted about this. Please keep on posting such quality articles as this is a rare thing to find these days. I am always searching online for articles that can help me. Looking forward to another great blog. Good luck to the author! all the best!
Really awesome post found here..This is really an amazing topic. Many thanks for your time and effort to share this wonderful article with us. I'm hoping for more impressive post next time.
I have read this post. collection of post is a nice one ..that am doing website designing company chennai india and website development company chennai india. That I will inform about your post to my friends and all the best for your future posts..
Your blog always create some informational and amazing things, which add in my knowledge and experience.But I am a bit confuse. Thanks for sharing.Waiting for next post...
When one conceives the issue at hand, i have to agree with your endings. You intelligibly show cognition about this topic and i have much to learn after reading your post.Lot's of greetings and i will come back for any further updates.
Website Designing
I love your site! You will be in our prayers and thoughts! Nice and informative post
on this topic thanks for sharing with us.Thank you
Architectural Walkthrough
Architectural Visualization
Architectural Rendering
3D Animation
Product Animation
Read all the related Posts:
64 Software Manual Testing Interview Questions
Answers To Common Job Interview Questions
Behavioral Questions In Interviews
Questions to Ask at an Interview
Competency based Interview Questions
Read all the related Posts:
How to avoid missing defect in Software Testing?
Defect Management Process
What is the difference between a Test Strategy and Test Plan?
Beginners Guide to ETL Testing
Step by step guide from Test Case Development to Test Execution
Read all the related Posts:
64 Software Manual Testing Interview Questions
Answers To Common Job Interview Questions
Behavioral Questions In Interviews
Questions to Ask at an Interview
Competency based Interview Questions
Read all the related Posts:
How to avoid missing defect in Software Testing?
Defect Management Process
What is the difference between a Test Strategy and Test Plan?
Beginners Guide to ETL Testing
Step by step guide from Test Case Development to Test Execution
Read all the related Posts:
64 Software Manual Testing Interview Questions
Answers To Common Job Interview Questions
Behavioral Questions In Interviews
Questions to Ask at an Interview
Competency based Interview Questions
Read all the related Posts:
How to avoid missing defect in Software Testing?
Defect Management Process
What is the difference between a Test Strategy and Test Plan?
Beginners Guide to ETL Testing
Step by step guide from Test Case Development to Test Execution
Latest Hot Entertainment News, Latest update about Bollywood, hollywood, pakistani Girls
hotentertainnews.blogspot.com
Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up
Surgical instruments
Dental Instruments
Beauty instruments
Neurosurgery Instruments
ENT instruments
Gynecology instruments
Orthopedic instruments
Ophthalmology
Hollow wear Utensils
Veterinary instruments
Surgery Sets
It’s great to see good information being shared and also to see fresh, creative
ideas that have never been done before.
CCTV karachi
Security equipment
Surveillance System
Companies are faced with a lot more difficulties and business risks due to fast developments in technology and increasing demands on edges.
One worthwhile task carried to a successful conclusion is worth half-a-hundred half-finished tasks.
Ground Coffee
Best Coffee
original coffee
American coffee
Retail Coffee
Coffee Aroma
special coffee
Coffee beans
Coffee wholesale
CSR activity in Coffee business
Post a Comment
Read more about Software Quality at the <<Software Quality Weblog Home