The word agile is derived from agile manifesto, where a small group of people get together to discuss their feeling & strategy to enhance Software development process.
As Name says Agile means fast so we need this when requirement are not freezed in initial state and there is a lot of chances to change in requirement.
Basically Agile is nothing but a combination of iterative and incremental process.
In agile we break the project in small crunches of builds and these crunches are known as Sprint and the size on sprint depends on difficulty level that build.
Generally a sprint have Life from 2 weeks to 3 weeks and each sprint cover various areas like Planning, requirement analysis, design coding, unit testing and acceptance testing etc.
Main Benefit of agile is we get Customer Sanctification more and every engineer individually have a clear task.
Agile Process of every sprintTeam Build Up : A dedicated team of Engineers will be buildup with scrum master.
Daily Stand up meeting : Here a daily short meeting will be done with Three points :
1.) What have done yet.
2.) What will be done today.
3.) What are the obstacles.
Less documentation :In agile very less documentation is required.
Rapid development & testing: Here rapid development and testing required so build can be delivered frequently
Client Feedback: Client feedback observed if client is satisfied then work on next sprint if not then update the build as per new requirement.
Key points in Agile :
1.) Only active Engineers are involved in the project.
2.) Engineers must be able to take suitable decision should be able to work individually and seprately.
3.) A optimize Estimation of requirement with time.
4.) Develop small, incremental release and iterate.
5.) Highly focus on frequent delivery and client feedback.
6.) Testing is integrated from one phase to another.
7.) After every sprint a review cycle is done to improve next sprint process more.
Scrum in agile :
Scrup is a part of Agile, it is light weight process framework and most widely used.
Scrum enable engineers in real time decision making based on actual events and information.
Scrum have three terms :
1).Scrum Master : Scrum master is responsible to build an engineers team, schedule sprint meetings and find out the solution of Obstacle
2).Product Owner :Product owner is responsible to create backlog and he will give priority of that backlog based on his requirement and responsible to provide sign-off for each sprint.
3).Scrum Team : Team has individual task and complete the assigned task.
A scrum involves :
1.) Initially appointment of a project manager called the Scrum Master
2.) Clear & suitable partition of task that need to be done
3.) A separate planning for each task.
4.) Daily stand up meeting
5.) Raise the issue/obstacle on frequent bases.
6.) Execution of project in brief, high- intensity and frequent work sessions.
7.) Continuous review of project progress.
An agile scrum process benefits the organization by helping :
1.) It improved the quality because at every stage client is involved.
2.) Changes are accepted frequently so client expected changes can be done easily.
3.) It provide better estimation with less time.
4.) Project remains under control in complete development life cycle.
Tips : Generally in Scrum process there is no tester directly involved.
Example of agile :Suppose a client name Tina has a Toy shop and she want a website to sell her toys online
but he don't know about it much more means not clear about requirement.
Tina contact to Mr Ben who is a software Engineer, Mr. ben will build a team of software engineer and in first sprint mr. ben delivered a template of website
Tina is Ok with that website after that in second sprint Mr. ben delivered a online website but it is not completed yet.
Now tina can add her toys to sell them online and after every sprint a new feature will be added with the website like discount, offer, return policy etc.
and as the sprint will passes the web site will be near to complete.
finally tina's website will get completed and she will give Sign-off documents(closure document) to ben and will continue with her website.
Difference between Agile and SDLC
|1.||Requirements are highly variable and changes are accepted on frequent basis||Requirements are freezed in initial phases|
|2.||Highly Client involvement||Less client involvement|
|3.||Follow the adaptive approach where no much planning required||High level of planning is required|
|4.||Testing is done frequently and integrated testing is required||Testing is done in testing phase only|
|5.||It follows the increment and iterative approach||It follows the sequential approach|
|6.||In agile process are divided into small sprints||Usually process are not divided|
|7.||Less documentation required||High documentation is required|
|8.||User acceptance is required at the end of every sprint||User acceptance is performed at the end of project|