Wednesday, 23 January 2019

Agile Methodology

What is Agile methodology in project management?
Agile is a process by which a team can manage a project by breaking it up into several stages and involving constant collaboration with Client and Developers at every stage.

The Agile methodology begins with clients describing how the end product will be used and what problem it will solve. This clarifies the customer’s expectations to the project team. Once the work begins, teams cycle through a process of planning, executing, and evaluating — which might just change the final deliverable to fit the customer’s needs better.

In short, Agile methodology is a set of principles and practices for software development and project management that emphasizes flexibility, collaboration, and iterative progress. It focuses on delivering small, incremental improvements to a product rather than trying to complete it all at once, allowing teams to adapt to changing requirements over time.

Advantages of Agile Methodology
  1. The customers continuously get a look and feel of the project progress at the end of each iteration/sprint.
  2. Each sprint provides the customer with a working software which meets their expectations as per the definition of done provided by them.
  3. The development teams are quite responsive to the changing requirements and can accommodate changes even in the advanced stages of development.
  4. There is a constant two-way communication which keeps the customers involved, thus all stakeholders – business and technical – have a clear visibility on the project’s progress.
  5. The design of the product is efficient and fulfills the business requirements.
The Stages of the Agile Software Development Life Cycle

6 Stages of the Agile Development Life Cycle
  1. Scope out and prioritize projects
  2. Diagram requirements for the initial sprint
  3. Construction/iteration
  4. Release the iteration into production
  5. Production and ongoing support for the software release
  6. Retirement
1. Scope out and prioritize projects
During the first step of the agile software development life cycle, the team scopes out and prioritizes projects. Some teams may work on more than one project at the same time depending on the department’s organization.

2. Diagram requirements for the initial sprint
Once you have identified the project, work with stakeholders to determine requirements. You might want to use user flow diagrams or high-level UML diagrams to demonstrate how the new feature should function and how it will fit into your existing system.

3. Construction/iteration
Once a team has defined requirements for the initial sprint based on stakeholder feedback and requirements, the work begins. UX designers and developers begin work on their first iteration of the project, with the goal of having a working product to launch at the end of the sprint. Remember, the product will undergo various rounds of revisions, so this first iteration might only include the bare minimum functionality. The team can and will have additional sprints to expand upon the overall product.

4. Release the iteration into production
You’re nearly ready to release your product into the world. Finish up this software iteration with the following steps:

Test the system. Your quality assurance (QA) team should test functionality, detect bugs, and record wins and losses.
Address any defects.
Finalize system and user documentation. Lucidchart can help you visualize your code through UML diagrams or demonstrate user flows so everyone understands how the system functions and how they can build upon it further.
Release the iteration into production.

5. Production and ongoing support for the software release
This phase involves ongoing support for the software release. In other words, your team should keep the system running smoothly and show users how to use it. The production phase ends when support has ended or when the release is planned for retirement.

6. Retirement
During the retirement phase, you remove the system release from production, typically when you want to replace a system with a new release or when the system becomes redundant, obsolete, or contrary to your business model. https://www.lucidchart.com

Agile Vs Waterfall Method
Agile and Waterfall model are two different methods for software development process. Though they are different in their approach, both methods are useful at times, depending on the requirement and the type of the project.

Agile Model Waterfall Model
Agile method proposes incremental and iterative approach to software design Development of the software flows sequentially from start point to end point.
The agile process is broken into individual models that designers work on The design process is not broken into an individual models
The customer has early and frequent opportunities to look at the product and make decision and changes to the project The customer can only see the product at the end of the project
Agile model is considered unstructured compared to the waterfall model Waterfall model are more secure because they are so plan oriented
Small projects can be implemented very quickly. For large projects, it is difficult to estimate the development time. All sorts of project can be estimated and completed.
Error can be fixed in the middle of the project. Only at the end, the whole product is tested. If the requirement error is found or any changes have to be made, the project has to start from the beginning
Development process is iterative, and the project is executed in short (2-4) weeks iterations. Planning is very less. The development process is phased, and the phase is much bigger than iteration. Every phase ends with the detailed description of the next phase.
Documentation attends less priority than software development Documentation is a top priority and can even use for training staff and upgrade the software with another team
Every iteration has its own testing phase. It allows implementing regression testing every time new functions or logic are released. Only after the development phase, the testing phase is executed because separate parts are not fully functional.
In agile testing when an iteration end, shippable features of the product is delivered to the customer. New features are usable right after shipment. It is useful when you have good contact with customers. All features developed are delivered at once after the long implementation phase.
Testers and developers work together Testers work separately from developers
At the end of every sprint, user acceptance is performed User acceptance is performed at the end of the project.
It requires close communication with developers and together analyze requirements and planning Developer does not involve in requirement and planning process. Usually, time delays between tests and coding





0 comments:

Post a Comment

Topics

ADFS (1) ADO .Net (1) Ajax (1) Angular (47) Angular Js (15) ASP .Net (14) Authentication (4) Azure (3) Breeze.js (1) C# (49) CD (1) CI (2) CloudComputing (2) Coding (8) CQRS (1) CSS (2) Design_Pattern (7) DevOps (4) DI (3) Dotnet (10) DotnetCore (19) Entity Framework (4) ExpressJS (4) Html (4) IIS (1) Javascript (17) Jquery (8) Lamda (3) Linq (10) microservice (4) Mongodb (1) MVC (46) NodeJS (8) React (10) SDLC (1) Sql Server (32) SSIS (3) SSO (1) TypeScript (3) UI (1) UnitTest (2) WCF (14) Web Api (16) Web Service (1) XMl (1)

Dotnet Guru Archives