Agile Software Development


While all the agile methodologies is unique in its particular approach, they all share a frequent vision and core values . They fundamentally incorporate iteration along with the continuous feedback that it supplies to successively refine and provide a software program. They involve continuous planning, continuous testing, continuous integration, and other forms of continuous evolution of the project and the software. They are all lightweight, especially compared to conventional waterfall-style processes, and inherently adaptable. What is more significant about agile methods is that they all focus on enabling people to collaborate and make decisions together fast and efficiently. "Agile Development" is an umbrella term for several iterative and incremental software development methodologies. The very popular agile methodologies comprise Extreme Programming (XP), Scrum, Crystal, Dynamic Systems Development Method (DSDM), Lean Development, and Feature-Driven Development (FDD).

These methodologies highlighted close collaboration between the development team and business stakeholders; frequent delivery of business value, tight, self-organizing groups; and clever ways to craft, support, and send code. In the late 1990's, several methodologies began to gain increasing public focus, each using a different mixture of old and new ideas. The expression"Agile" has been applied to this collection of methods in early 2001 when 17 software development professionals gathered in Snowbird, Utah to examine their shared ideas and various approaches to software development. Make decisions together fast and efficiently. 


Agile Manifesto

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity--the art of maximising the amount of work not done--is essential
  11. The best architectures, requirements, and designs emerge from self-organising teams
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
 

 Extreme ProgrammingExtreme Programming (XP) is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop a software.Extreme Programming is just one of the Agile software development methodologies. It provides values and principles to guide the staff behaviour. The team is expected to self-organize. Extreme Programming provides special core practices in which −Each clinic is simple and self-complete.Combination of practices produces more complicated and emergent behaviour.
 
Extreme Programming involves 
Writing unit tests before programming & keeping all of the tests running. The unit tests are automated and eliminates defects early,Hence reducing the costs.
  • Starting with a simple design just enough to code the features at hand and redesigning when required.
  • Programming in pairs (called pair programming), with two programmers at one screen, taking turns to use the keyboard. While one of them is at the keyboard, the other constantly reviews and provides inputs.
  • Integrating and testing the whole system several times a day.
  • Putting a minimal working system into the production quickly and upgrading it whenever required.
  • Keeping the customer involved all the time and obtaining constant feedback.
Scrum
Scrum includes the same types of actions as the waterfall technique, but rather than executing them as sequential phases, they are encapsulated into several iterations, or sprints to create a functioning application. In this way, Scrum assembles the application incrementally, with each increment adding and enhancing features and functionality made by its predecessors. Another integral element of Scrum is the different Kinds of feedback loops utilized to ensure that,
Formal Events in Scrum
  1. Scrum Planning
  2. Daily Scrum
  3. Sprint review
  4. Sprint retrospective
Pillars of Scrum methodology are transparency, inspection and Adaptation. This makes scrum most popular among other methodologies. The five scrum values are Commitment, courage, Focus, openness and respect. Another important term is Sprint, in scrum sprint is an iteration of calendar month or less in which a product increment is delivered.
Scrum team roles  1. Scrum master 2.Product owner, 3.Development team.

Dynamic Systems Development Method(DSDM)
Dynamic Systems Development Method is an Agile project delivery framework. It initially used as software development method in 1994. In later versions the DSDM Agile Project Framework was revised and became a generic approach to project management and solution delivery rather than being focused specifically on software development and code creation,and could be used for non-IT projects

Lean Development.
Lean Development is another Agile Software Development methodology used. There is seven main principles used in this method. Lean principles center on the idea that less is more, and they aim to streamline every part of the software development lifecycle.
In regards to waste, the lean philosophy has quite a broad definition which includes anything that does not add value to the item. A lean product development group should concentrate on learning and, due to the strong need for software applications now, should determine on characteristics as late as you can to get rid of the requirement to redo work as the marketplace changes. At the exact same time, there is pressure to provide as quickly as possible. The idea is that efficiencies could be applied and waste may be handled in any way levels: every person, each section, interdepartmental operations, the business as a whole, as well as the connections of the organization together with clients and providers.
 The previous three lean principles share a lot in common with Agile thinking. The idea that the group sets the pace -- or, in Agile conditions, the sprint -- and is responsible for delivering the promised product is right in line with what Agile teams practice. Along with the phrase see the whole brings to mind the Agile retrospective where the group gathers at the end to discuss what successes and challenges it saw.

Comments

Popular posts from this blog

PHP 8.0- Release Date Information

Web 3.0 Basics