Sunday 22 January 2017

Importance and Benefits of Agile Scrum methodology in Software Development


Agile is by no means critical of development methodologies developed in the 1970s and 1980s in response to the chaotic and unplanned approaches often used in the early days of software. This fast delivery approach provided a couple of important benefits. First, it enabled users to get some of the business benefits of the new software faster. Second, it enabled the software team to get rapid feedback on the software's scope and direction.
Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. Agile development refers to any development process that is aligned with the concepts of the Agile Manifesto. The Manifesto was developed by a group fourteen leading figures in the software industry, and reflects their experience of what approaches do and do not work for software development.
A very popular methodology under Agile is Scrum which is a subset of Agile. It is a lightweight process framework for agile development, and the most widely-used one. A “process framework” is a particular set of practices that must be followed in order for a process to be consistent with the framework. “Lightweight” means that the overhead of the process is kept as small as possible, to maximize the amount of productive time available for getting useful work done.

Scrum is a most perplexing and paradoxical process for managing complex projects. Scrum shows management how to guide a project along its optimal course , which unfolds as the project proceeds. Under this there is an iteration of development activities that occur one after the other. The output of each iteration is the increment of product.  A time box is a maximum duration that has a specific purpose to achieve, as well as duration, scope, and an agenda to meet the desired purpose.  In any ongoing  project we need to know and understand the goals of the overall project which should be achieved at the end.  The project is broken down into sprints. Each sprint should have one or more objectives which is finished in an iterative manner one by one.

 Scrum process is distinguished from other agile processes by specific concepts and practices, divided into the three categories of Roles, Artifacts, and Time Boxes. These and other terms used in Scrum are defined below. Scrum is most often used to manage complex software and product development, using iterative and incremental practices. Scrum significantly increases productivity and reduces time to benefits relative to classic “waterfall” processes. Scrum processes enable organizations to adjust smoothly to rapidly-changing requirements, and produce a product that meets evolving business goals. An agile Scrum process benefits the organization by helping it to :

  • Increase the quality of the deliverables
  • Cope better with change (and expect the changes)
  • Provide better estimates while spending less time creating them
  • Be more in control of the project schedule and state
BENEFITS OF AGILE
·         Customer Satisfaction by Rapid, Continuous Delivery of Useful Softwareà All customers and users gets  satisfied when developers continuously deliver the value to them with usable software.
·         People and Interactions are Emphasized Rather Than Process and Toolsà Agile is focused very heavily around people and the interactions between people, rather than process and tools.
·         Continuous Attention to Technical Excellence and Good Designà When working agile the whole work is in shorter iterations and only build what is necessary to satisfy the requirements for that iteration and nothing else. This thing forces  to keep designs simple which is very important as simplicity helps developers design testable and therefore more reliable systems. Developers understand, and choose from, many possible technical ways to satisfy business need and these are choices that reflect a craft that balances design, use, and support.
·         Regular Adaptation to Changing Circumstances à Customer or business sponsor may change their mind about what is being built. This may be because developers have given them new ideas from the software they delivered in a previous iteration. It may be because the companies priorities have changed or a new regulatory change comes into force. Hence change is a reality of software development, a reality that your software process must reflect.
x

·         Benefits to Customer à  Customers find that the vendor is more responsive to development requests. High-value features are developed and delivered more quickly with short cycles, than with the longer cycles favored by classic “waterfall” processes.
·         Benefits to Vendors à Vendors reduce wastage by focusing development effort on high-value features, and reduce time-to-market relative to waterfall processes due to decreased overhead and increased efficiency. Improved customer satisfaction translates to better customer retention and more positive customer references.
·         Benefits to Development Teams à Team members enjoy development work, and like to see their work used and valued. Scrum benefits Team members by reducing non-productive work (e.g., writing specifications or other artifacts that no one uses), and giving them more time to do the work they enjoy. Team members also know their work is valued, because requirements are chosen to maximize value to customers.
·         Benefits to Product Managers à Product Managers, who typically fill the Product Owner role, are responsible for making customers happy by ensuring that development work is aligned with customer needs. Scrum makes this alignment easier by providing frequent opportunities to re-prioritize work, to ensure maximum delivery of value.
·         Benefits to Project Managers à Project Managers (and others) who fill the ScrumMaster role find that planning and tracking are easier and more concrete, compared to waterfall processes. The focus on task-level tracking, the use of Burndown Charts to display daily progress, and the Daily Scrum meetings, all together give the Project Manager tremendous awareness about the state of the project at all times. This awareness is key to monitoring the project, and to catching and addressing issues quickly.
·         Benefits to PMOs and C-Level Executives à Scrum provides high visibility into the state of a development project, on a daily basis. External stakeholders, such as C-Level executives and personnel in the Project Management Office, can use this visibility to plan more affectively, and adjust their strategies based on more hard information and less speculation.

Apart from the regular benefits Agile has certain Advantages in the field of Software Development. They are given as below :

Advantages of Agile

Developers like to use the best techniques for keeping the design under control without excessive work or rework. Some of these techniques include :
1)       Refactoring : Refactoring is the process of improving the design of existing code without changing its externally observable behavior. Refactoring is most often done in the context of Test-Driven Development/Design where extensive tests and simple design make it easy to refactor safely.
2)       Simple Design : Keeping the design simple and not repeating code helps developers keep the code maintainable
3)       Test Driven Development : Test-Driven Development is a way of driving the design of code by writing a test which expresses what developers intend the code to do, making that test pass, and continuously refactoring to keep the design as simple as possible.


It is evident from the given points above we can say that Agile has a very special space and importance in Software Development environment. There are several reasons behind it that Agile approach is very rapid and it involves continuous integration at each and every step otherwise the result/output can be different from expectation. Scrum is a popular project management framework for agile projects which is being followed in most of the Software Industries. Scrum methodology uses different measures and metrics which applies automation and track the progress without going in manual methods.  

Author: Ms.Shweta Shree Sharma
Project Manager
IBM Technologies. 


No comments:

Post a Comment