This discussion paper was written as an assignment for the module Practical Projects-Computer Applications for my degree, Bsc (Hons) in Information Technology (Software Engineering).Actually the whole module is focusing on one concept and that is agile project management methodology. So we were asked to find more about agile and point out our ideas.
In order to accomplish this task I thought of doing a comparative assessment in between agile method and other heavyweight methods available in the field. So this paper contains the history, characteristics, advantages, etc of agile while comparing it with others.
This paper is really a good chance to get an idea about agile project management method and give yourself a chance to decide whether it is really a good approach for project managing.
The purpose of this discussion paper is to define a comparative assessment of the strengths and weaknesses of AGILE project management methodology. This assessment explicitly takes into account the principle of AGILE concept along with other project management methodologies.
As we all aware, there are several project management methodologies that could be carried out while developing a project. AGILE, cleanroom, RUP and waterfall are some of them. But is any of these methods are better than the other? This is the question which tries to discuss throughout this paper.
As undergraduates we come across several different projects to finish up in a given amount of time. In such a situation students need correct and best approach to develop their solution. Throughout the discussion paper it tries to highlight the best solution which could use in developing a practical project.
In that situation the undergraduate students can gain a straight benefit from this, since the paper has been written while thinking from their point of view. But still anyone who is unknown to AGILE can get an idea from this paper.
This paper has been written by analyzing the collected data about this subject. The problems which arrive as an undergraduate while studying was also helped me to write this paper.
Finally the objectives of this study are to find out and demonstrate the features and benefits of AGILE project management method while comparing with other methods of project management.
1
Background
This paper discuss about the several project management methodologies used in industry while comparing them with AGILE project management methodology.
Before comparing other project management methods with AGILE we should first have to focus our attention to the question "what is AGILE?"
2.1 History of AGILE
Group of methodologists get to together and discuss about a common set of guiding principle in order to have an efficient software development. This happened in 2001. So they formulated something called "AGILE manifesto."The modern definition of AGILE software development invoked in mid 1990's as a part of a reaction against the "heavyweight" methods. Initially AGILE methods were called as "lightweight" methods. It focuses on task prioritization, responding to changes, face to face communication and quick deliveries.
So we can consider AGILE as a conceptual framework works on iterative and incremental delivery of working software. In the iterative part it tells that repeating a life cycle for a particular task in a short period of time. Now let's see what are the different types of AGILE methods available to software project management.
2.2 AGILE Methods
There are so many agile methods we could use. Some of the most popular of them are extreme programming (XP), DSDM (Dynamic Systems Development Method), lean software development, crystal, scrum and FDD (Feature Driven Development).IID aspect is the most common thing applicable to all these methods. But still there are several methods and principles which are common to the methods. Let's see some of them to each method.
2
XP- Shows the value of communication, simplicity, courage and feedback
Use specific technical and collaborative practices like TDD refactoring, pair programming, open workspace, automated acceptance tests and continuous integration.
DSDM - Allow the project team to take decision
Promote cooperation and collaboration throughout the stakeholders
Integrate testing throughout
Emphasize on frequent product delivery
Lean - Much closer to the customer
Have short cycles
Empower the team
Eliminate the waste
Build in integrity
Decide as late as possible
Crystal - Emphasize people
Improve communications
Shrink or grow to fit
Gather techniques from other methods
Scrum - use retrospective to correct the process
Collaborate through daily standup meetings
Exhibit the product upon iteration completion
Manage a prioritized list of requires on a product backlog
FDD - Center development on the feature
Create a domain model with domain experts
3
Common Characteristics
There are many characteristics of agile project management method. Most promote development, team work, collaboration and adaptability throughout the life cycle of the project.
Having Iterations
In agile method it breaks the task into small parts or increments. So it only have a minimal planning no need to worry about long term planning. Iteration is like a small frame which may last only one, two weeks where maximum could be four weeks. Each of these frame acts like a unique task, it acts as same as a typical life cycle with planning, requirement gathering and analysis, designing, coding and testing. This helps to reduce the risk to the project and a project can deal with any changes quickly. Iteration might not fulfill the requirements to write the documents but still it will produce a bug free code in a less amount of time. By adding several iterations together you can have your final product.
Team Work
Team hierarchy of an agile project is much self organized without considering about the hierarchy of the project team. Each member will have to complete a task which will give the functionality of a particular iteration. So each individual will work towards to accomplish a task in order to fulfill iteration. Team will communicate face to face in meetings when they work in a same place but if they not they will use facilities like video conferencing, e-mail etc. Most teams who are doing agile will work in an open office called bullpen. The team size will always small in order to communicate and make their work easier. If a team work towards a large project several small teams will work together to achieve several targets of the same project. In here they should have a good coordination among them.
However every team will get a customer representative on behalf of their client. They will be available to answer for the questions of developers in the mid iteration process. They will work in between the team and client and will adjust things for the beneficiary of customer goals and company goals.
4
Collaboration
When working with agile there will be daily face to face meetings with team members. There will be customer representative and some stakeholders as the observers and team members will discuss among themselves what they did and this will help to reduce the severe problems which may occur due to lack understandability among team members. This always has face to face communication which creates a less documentation. But the bond that the members can have from that can't be achieved using documents.
5
Literature Review
In this part of the discussion paper I'm trying to focus your attention to what experts think about agile. Several experts in the field of IT has so many different ideas about agile. So I'm trying to analyze their ideas in here in order to look at agile in another point of view.
In the article "Dr. Dobb's Agile Newsletter 11/07" written by Scott W.Ambler, (Chief Methodologist for Agile and Lean for IBM Rational) in 21st of November 2009 he takes into account whether agile is really successful. In there he really clear out and quoted that the teams use agile have much success rather than teams who use traditional methods for project management. In there he also mentioned that agile projects has 71.5 success rate percentages while traditional projects has 62.8 percent, data warehouse projects has 62.6 percent and off shoring projects 42.7 percent. In figure1 it shows the project success rate by project type and organization type.
<Figure 1>
6
In the book "Managing agile projects" by Kevin Aguano he indicates why agile method is unique and different from other methods. Throughout his book he argue for the reason that agile is really a good method. In there he clearly indicates that agile method can easily adapt to the changes. Actually he tells that agile introduce the change to the project that it can easily handle it. In this way sponsor can get maximum usage of his project.
This is the Boehm's cost of change curve that I found in the above mentioned book. In there the author has descriptively tells that how the cost varies when tries to make a change to the project at a later time.
<Figure 2 >
Like this throughout his book he has explained why that agile has become some good project management method in present world.
7
As you can see many experts who are in the field of Information Technology has guaranteed that agile methodology is really a good approach to project managing. But there will always be ideas which go against with this concept, because these are the ideas that given by personal experience.
Web Technology Director at IPC Media, Mr. Kelly Waters is someone who has specialized in agile project management. But still he has point out some disadvantages of agile in his blog called "Agile Software Development made Easy!"
According to him active user interaction and close collaboration are main key factors in agile project management methodology. It's a basic theory in agile that make sure goals are managed well. Since failure does not meet goals these may be critical factors of a successful project. So the user obviously will have to commit most of his time to this until the project finish off.
Another risk that describes in the blog is requirement emerge and evolve. This could make project creeps and it will have a risk of a never ending project. Apart from that this will create less predictability of a project; in a business like situation it may be hard to declare a price for the project.
Like this experts gives their ideas to for and against for agile project management method. All of these are right for their personal experience and how they use it. So we can't exactly say that agile is good or bad. It depends on your point of view.
8
Assessment
Traditional development methods like waterfall, RUP, PrinceII etc. are in the field from a certain time period. Several small and large projects had been fully success filled by using these heavyweight methods but still they had lot of drawbacks. Kent Beck took these drawbacks and found a solution for them and that's how first method in agile extreme programming came out to the industry. The table in below gives you a great idea about the similarities and different of agile and heavyweight methods.
Agile Methods
Heavyweight Methods
Approach
Adaptive rather than predictive
Identify requirements, prioritize the work and move on
Predictive
Product based, work is plan according to the activities, focus on final out come
Project size
Small
Large
Documentation
Less
More
Management style
Decentralized
Autocratic
Perspective to change
Can adapt to changes
Not that much adaptable
Culture
Leadership collaboration(every team member collaborate to the project equally)
Command control
Emphasis
People oriented(Members have to think why we do this before doing something)
Process oriented
Team size
Small
Large
<Table 1>
9
There are several weaknesses and strengths for every project management methodology. So the team should choose what is best for them. This selection can be done according to three factors.
Project size - There are three elements as budget, duration and project team organization when considering about the project size. The more the budget or duration is the size of the project is increasing. According to Alistair Cockburn one of the founders of agile alliance tells that if a fewer people are needed the project size is small of vice-versa. You can see it in the figure below.
<Figure 3>
People factor - This could be considered as the most important feature in agile. As an example like iterations, customer collaboration etc. Having experienced and skilled members in a team is a key factor of agile. At any time a customer can interact with the team and can give his ideas. In this situation agile is much popular than heavyweight methods.
Risk factors - The most important and risk factors of a project could be criticality of a project and responding to a change.
10
Now I would like to take your attention to the life cycle of feedback to several methods. In there also according to the figure below you can see that the methods of agile gives the feedbacks quickly rather than the heavyweight methods. So this could save the money for a particular project.
<Figure 4>
So according to my point of view and from my experience I feel agile is much better than a traditional method like waterfall. It's basically because we can do a project in a minimum amount of time with developing all the functionalities.
But sometimes I feel that less documentation is a disadvantage up to a certain extent. Because if we need to refer a project in future we may not able to find them since we don't have much documents. Some times because of this iteration idea I fell that we are not getting a chance to envision a project to the end.
Apart from these things I believe that agile is really a good approach to project managing.
11
Conclusion
Throughout this discussion paper I try to give you all an idea about the agile project management methodology while comparing it with heavyweight methods like waterfall, RUP etc. In here I analyzed all the details I found about agile project management and compare and contrast them with other methods and I also have given some ideas of experts in the field about agile.
According to the research I have done I discovered that agile is the most successful project management methodology you could use in a project. There are many experts view which go against and for about this matter. As my point of view I too believe that agile project managing is a good method for a project. Though it has some disadvantages as I mentioned in the previous section most of the time the benefit we could gain from this is much powerful than the disadvantages.
Finally I would like to finish my discussion paper with my conclusion that agile project management methodology has a majority of success while comparing it with other methods in Information Technology field.
12