BootCamp Day 4

It was a beautiful Wednesday, the 4th day of the boot camp 12/10/2016. I learn how to use Agile development in Software development

What is Agile Development Software?

The combination of iterative and incremental process models with the focus on process adaptability and customer satisfaction by rapid delivery of working software product.

Agile Methods break the product into small incremental builds. These builds are provided in iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves cross-functional teams working simultaneously on various areas like planning, requirements analysis, design, coding, unit testing, and acceptance testing.At the end of the iteration, a working product is displayed to the customer and important stakeholders

Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In agile, the tasks are divided into time boxes (small time frames) to deliver specific features for a release.

An iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer.

image illustrating Agile Software Development

Agile Software Development Process

Agile Vs Traditional SDLC Models

Agile is based on the adaptive software development methods whereas the traditional SDLC models like waterfall model is based on predictive approach.

Predictive teams in the traditional SDLC models usually work with detailed planning and have a complete forecast of the exact tasks and features to be delivered in the next few months or during the product life cycle. Predictive methods entirely depend on the requirement analysis and planning done in the beginning of cycle. Any changes to be incorporated go through a strict change control management and prioritization.

Agile uses adaptive approach where there is no detailed planning and there is clarity on future tasks only in respect of what features need to be developed. There is feature driven development and the team adapts to the changing product requirements dynamically. The product is tested very frequently, through the release iterations, minimizing the risk of any major failures in future.

Customer interaction is the backbone of Agile methodology, and open communication with minimum documentation are the typical features of Agile development environment. The agile teams work in close collaboration with each other and are most often located in the same geographical location.

Agile Model Pros and Cons

Agile methods are being widely accepted in the software world recently, however, this method may not always be suitable for all products. Here are some pros and cons of the agile model.

1. Is a very realistic approach to software development
2. Promotes teamwork and cross training.
3. Functionality can be developed rapidly and demonstrated.
4. Resource requirements are minimum.
5. Suitable for fixed or changing requirements
6. Delivers early partial working solutions.
7. A good model for environments that change steadily.
8. Minimal rules, documentation easily employed.
9. Enables concurrent development and delivery within an overall planned context.
10. Little or no planning required
11.Easy to manage
12. Gives flexibility to developers

1. Not suitable for handling complex dependencies.
2. More risk of sustainability, maintainability and extensibility.
3. An overall plan, an agile leader, and agile PM practice is a must without which it will not work.
4. Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.
5. Depends heavily on customer interaction, so if the customer is not clear, the team can be driven in the wrong direction.
6.There is a very high individual dependency since there is minimum documentation generated.
7.Transfer of technology to new team members may be quite challenging due to lack of documentation.

Agile development is definitely one of the methods to adapt to software development. The advantages are more significant compared to its advantages, I urge u to adopt it for rapid software development in Software IT projects

All the best