Agile Development: A quick overview

Lazaro Ibanez
Nov 8, 2017 · 5 min read

The agile software life cycle basics:

The Agile software life cycle model is very different as compared to traditional software development frameworks, because focuses on an iterative and incremental process, adaptability to changing the product and enhancing customer satisfaction through rapid delivery of working product features and client participation. The product release is a series of iterative cycles known as sprints. They include the entire life cycle of the development of a functionality: analysis, designing, coding and testing of a technical piece and most of the time, produce a shippable, deployable product.

The collaboration and relationship between the team and the company is the key to a successful implantation of Agile in a development environment. It is important to point out that this model makes extensive use of events, such as the 15 minutes daily stand-up meetings, sprint review meetings and the retrospective meeting at the end of each sprint, to identify and self-correct the development carried out by the team. Because of its inherent nature, feedback is solicited frequently, as and when needed, to collaborate, and speed up the development process through sharing of ideas and self-management.

The roles played in the Agile process are the product owner, the scrum master, and the development team. The product owner owns the project on behalf of the stakeholders or management team and ensures that the project is developed successfully, keeping in mind the company vision of the product as it should appear in the market. The scrum master ensures that the Agile process is followed at all times, and take care of any difficulties or technical issues arising during the development process. The team members actively participate in the sprints and make sure that meaningful and useful development functionalities are created.

Main features of an Agile software development life cycle model:

  1. The team and their interactions. In this development model, self-organisation and motivation have a more relevant role than the traditional delegation of authority and seniority hierarchy that was very popular more than a decade ago. This is one of the reasons the agile development is very popular among start-ups, where the teams, acting as a whole unit, are encouraged to take an active part in the development and planning of activities, supporting a common vision. Companies with a flat programming hierarchy, very popular nowadays and popularized by Google and Facebook, also have found that Agile is the perfect fit for them, because empowered the team members to take certain decisions on their own, which increase the speed of the development.
  2. Product releases. The teams are usually between three and nine developers who break down their work into smaller actions that can be completed within fixed duration cycles, the sprints. During each of them they track progress, plan and re-plan in daily 15 minutes stand-up meetings, and collaborate to deliver customer ready software. They traditionally last from two weeks up to one month, although the trends now indicate that the sprints typically last from seven days up to ten working days. At their end, a production ready functionality is totally developed and presented to the product owner for verification purposes. Once the sign off is received, the development is presented to the stakeholders or senior management team, and their opinions are carefully noted to improve upon the current application development cycle. The goal is to develop and deliver, bug free software features in a continuous and sustained manner until all the constituent product features are developed.
  3. Customer collaboration. One of the consequences of other development life cycles methods, like Waterfall, is the big amount of time used to gather all the requirements and the little period left to do the actual development work. The daily coding environment is not perfect and most of the time the entire set of requirements may not be available or acquirable. The Agile model encourages to start the programming as soon as possible and present the functionality to the client for verification purposes. The project owners should clear, the minimum product features needed to be developed, so the functionalities can be included on the sprint cycles as soon as possible. In this way, a lot of time is saved through customer collaboration and as a result, the project proceeds in a successful manner as the client always Okays the development.
  4. Responding to changes. As mentioned before, Agile add more emphasis in sustained, quick and dynamic development of customer ready product features, rather than spending more time during the initial project planning and analysing of requirements. It values and principles for software, evolve through the collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to the changes. Which can be easily and effortlessly carried out, by what is known as user stories. What are the user stories? They are very slim and high-level requirements artifacts, written by the domain experts, the stakeholders or managers, not the developers, containing just enough information so that the developer team can produce a reasonable estimate of the effort to implement it. In this way, the changes can be carried out at any time while the features are being developed, even late in the product development cycle.

You may also like these articles about Agile Development:

Via:

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade