Everybody is talking about agile development according to 10th Annual State of Agile Report it was found that 95% of a respondent organization that practice agile and have experienced the exponential success after adopting agile.
The question today here is not about the percentage of the people adopting agile and earning success, the question is:
Why do companies even need agile development? And what are some tradeoffs? Are there other development methodologies which are a better fit? How to evaluate what’s a better fit.
In this article we will answer all of your questions and help you to identify which methodology is a good fit for your project.
Here we go.
Agile development is the set of principal which break the bigger task into smaller task called iteration. Each iteration has defined by duration during which pre-determined features are developed and delivered.
Who uses Agile?
Anyone who wants to prioritize the larger complex project into a manageable task with improved teamwork, better communication, and faster results can benefit from Agile.
The Project team that work with service oriented and non physical deliverables like coding, copywriting and design prospects.
Team that work with external agencies and need to collaborate more seamlessly to meet deadlines.
Companies that want teams working collaboratively and creatively.
Companies with client who want to provide and incorporate feedback as the project evolves.
Here is an example of company who uses Agile:
About TERADATA:
Teradata Application formerly known as Aprimo is an integrated marketing software and application based in Chicago, United States.
It provides marketing software to the company to manage several aspects of marketing including campaign management, brand management, email marketing, event management and project management.
How the company does Agile:
The two major challenge of the TERADATA Application was the communication during project and second being how to use data more effectively to quickly develop and execute “microcampaigns” and interact with customers. Lisa Arthur CMO of TERADATA Application knew that if they want to get ahead of the competition then they seriously need to resolve this problem.
Lisa Arthur thought of agile approach and coordinate with Gartner an American research and advisory firm providing information technology related insight.
Gartner produces the research, as well as internal collaboration to create a landing page for the report, write the announcement email, identify who should receive it, and make sure every element was approved.
Lisa with her team automated the workflow and approval process and they made sure to define who within Teradata Applications and at Gartner had to be involved and when. We know that example set by this company really motivate you to do Agile for your company, but don’t run, stop and explore the other half of this article.
Do you really think that “better business result “is the reason for a company to adopt agile or something else?
Here are the few reason why company need Agile:
1. Deliver your product faster in the market.
The main reason why the companies adopt agile is that they are fed up because their project simply taking too long. The idea of two week delivery cycle of agile attracts most of the companies. A Research shows that there is 37% chance of products developed using agile reaching the market faster than using traditional software development methods.
In a competitive environment, we all want our product to the market faster than our competition and Agile leads provide us with the right scope to deliver the product at the right time.
2. Build the right product.
Agile is different from traditional software methodologies because in traditional methodologies the customer changing his priority midway does not affect the entire project drastically.
But in Agile the project are break into smaller iteration which gives the opportunity to the customer to see the emerging product and gives feedback which helps the project development team to deliver the right product based on the customer feedback.
3. Customer Satisfaction
As a customer we want a product build on our idea, we don’t want to invest in a product that doesn’t work, doesn’t do what we need it do. This only can make us unhappy.
As a customer the only thing can make us happy is seeing a product that is build according to our feedback.
Building a product in agile provide this opportunity to the customer, where the product is build around the customer feedback which makes them happy.
Working in agile is like building the partnership with a customer where they both work to get their problem solved.
4. Transparency
The use of agile inherently leads to great transparency between the team members. This is because of the improved communication between team members. Communication can take place daily in which each team members update on deliverables and make commitments to better quality products. Through communication, problems are discovered, discussed and resolved faster, hence bringing higher transparency to the company.
After reading theses reason why company adopts agile, if you are thinking of adopting agile then you needs to know what you are in for, you need to be sure that you and your project team supporting your project understand theses tradeoffs and are happy to accept it.
Here are the few tradeoffs of adopting agile
1. More time and Commitment.
For delivering the right product in agile active user involvement and close collaboration between all teams’ member and stakeholder is needed for keeping them on the same page throughout the development process. This involves numerous face to face conversations, for delivering the right product. Daily users need to be available for prompt testing and sign off on each phase so developers can mark it off as complete before moving on to the next feature.
This might ensure the product meets user expectations but is onerous and time-consuming. This demands more time and energy of everyone involved.
2. Flexibility is the issue.
Yeah, you heard the right, flexibility is the major issue in agile because the project in agile did not stick with one plan, there is a continuous change of course based on customer feedback for the delivery of the right product. Due to this two major problem arise. One is that customer feedback and communication is not clear which create a problem for the developer. The other is they are not clear what the project is going to deliver because of the continuous change in plan. This can make it harder to define a business case for the project, and harder to negotiate fixed price projects.
3. Lack of necessary documentation.
In agile requirement emerge and evolve continuously and it is one of the main principal of agile which eliminate wasted efforts on deliverables that don’t last which save both time and money. Requirements are clarified just in time for development and can be documented in much less detail due to the timeliness of conversations. However, this can mean less information available to new starters in the team about features and how they should work.
This creates misunderstand and difficulties for the team member and it indirectly affects the project.
4. Testing is integrated throughout the development.
Like others, agile development doesn’t have separate test phase at the end; they believe that integrating testing phase throughout the development helps to ensure the quality throughout the project.
However, it does imply that testers are needed throughout the project and this effectively increases the cost of resources on the project.
No doubt this does have the effect of reducing some very significant risks but the cost of a long and unpredictable test phase can cause huge unexpected costs when a project over-runs.
After reading these tradeoffs of agile development, we know that you would be looking for the other model for your project.
Here are other models for your project you may want to study:
1. V-model
V-model is also known as SDLC model and is now one of the most widely used software development process where the execution of process happens in a sequential manner in V- shape. It is also known as verification and validation model. Just like the waterfall model, testing phase is involved in v-model throughout the development cycle and it is a highly disciplined model because the next phase starts only after the completion of the previous phase.
When to use V-model:
- The V- shaped model should be used for the small to medium size project where the requirements of the task are clearly defined.
- It should be chosen when the technical resources are available with the technical expertise.
- Last but not the least it should be chosen when you have high confidence of customer,
2. Incremental model
Incremental model is one of the software developments model which combines one or two element of waterfall model which are then applied in an iterative manner. In incremental model project requirement is break down into multiple modules and each module is developed separately.
Finally developed modules are integrated with other modules. During development of each module, waterfall model is followed for each module development separately. Each developed module in Incremental Model is standalone feature and could be delivered to the end users to use it. On incremental basis other modules are integrated as additional features one after another and finally delivered to the client
When to use incremental model:
This model can be used when the requirement of the project is clearly defined and completely understood.
- When you are in a hurry to get a product to the market early.
- When there are some high risk feature and goals.
- When Resources with needed skills are not available.
- When a new technology is being used.
RAD model
RAD is rapid application development model that uses minimal planning in favor of rapid prototyping. In RAD model the component or function are developed in parallel as if they were mini projects. The developments are time boxed, delivered and then assembled into a working prototype. This can quickly give the customer something to see and use and to provide feedback regarding the delivery and their requirements.
When to use RAD model:
- When there is a need to produce a system in short span of time.
- Involvement of user in the development cycle.
- When quality is negotiable.
- When the stakeholder is not sure what they want other than a basic requirement.
- When the budget is high
Spiral model
The spiral model was introduced by Barry Boehm in 1985, which is also known as spiral lifecycle model. This model works on incremental and prototype technique, with more emphasis placed on risk analysis. Generally these models are used for the large and complicated project where the risk factor is high.
In spiral model the project passes through four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spirals, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spiral builds on the baseline spiral.
When to use spiral model:
- When costs and risk evaluation is important
- For medium to high-risk projects
- Long-term project commitment unwise because of potential changes to economic priorities
- Users are unsure of their needs
- Requirements are complex
Final note:
There is no magic spell which can tell us which model is a better fit for your project. For this you need to first evaluate your project. After evaluating your project determine what actually you expect from it and then choose which methodology will you go for?
The post Is Agile Development The Right Fit For Your Company? appeared first on - Snyxius.
