With form is increasing the computer projects in many of them we find problems of planning. The objectives of the product are emerging as the client realizes that he needs something new and the project is affected. This makes new methodologies emerging in other fields that give good results in the management of software projects. Several of the creators of these new methodologies Meet in 2001 and create the AGILE manifesto where they manage to put in common a series of principles that should be taken into account when managing AGILE software projects, with this manifesto is coined the term “Agile Methodologies “.
Traditional planning or with a predictive focus part of tasks. It Has a predictive control of the tasks that will be carried out and the planning of these tasks in the first phases of the project. This entails the extra effort to predict the possible tasks that can arise in the medium and long term when less information of the project we have. Later we went to write the specifications in a document that we will deliver to the client and this one must validate. If This validation is correct the requirements change during the progress of the project and our application will have changed which implies that the deadlines are lengthened, the budget and/or the quality decreases. As a result, many times the testing phase is usually in the background and the time marked in the planning for this phase is diminished.
On the contrary the Agil application part of the business objectives, ie, necessary objectives for the client once you give the software. It Is assumed that there are variables that we do not control and the objectives can change, so it is based on the Empirical, what we have in the moment and what we are doing. To do this, a permanent check must be carried out analyzing what is missing.
In Agile Methodologies is also written worse documentation as opposed to cascade methodologies, the documentation is more scarce, becomes less important in favor of obtaining functional product. However a traditional methodology simply delivers documentation of how the final product will be.
Agile Development with Scrum
Scrum part of the essence of agile development. IT focuses on the most priority features and can be executed in a short period of time. The development cycles, called sprints in Scrum, produce an increment of finished and operational functionality.
The product Backlog is the list of prioritized requirements that represents the vision of the client regarding the objectives of the project. It is a constantly evolving document, although part of initial requirements, is modified during the development in the Sprint review meetings. For your elaboration all that is involved in a task can provide suggestions but is defined as a sole responsible, called Product owner.
As It is a document that varies throughout the iterations it is not necessary that this completed to proceed with the first iteration. It is Enough to identify the requirements that we have in this phase and a detail of the priorities, that is, for each requirement that we have to detail at least its value, estimated cost, a brief description. The estimated cost and value allow us to know the return on investment and will be used to assign a priority to each user story.
Through the Product backlog also we plan the iterations, grouping in a coherent way functionality so that it does not imply an extra effort to complete all the objectives. With This we agree that it is understood by finished product at the end of each iteration, ensuring that the client can test the results of the interaction without problems. To this must be added conditions of satisfaction for each objective for which are made acceptance test cases during the creation of the Product Backlog.
Product owner, is the person who knows the environment of the client and the vision of the product. Is responsible for obtaining the highest possible value for the customer or users; Also responsible for the necessary financing of the project, the completion and return of investment. If the communication with the client is very fluent but the client lacks the necessary skills to be part of the team, it can be a member of our organization that does the role of product owner.
As we have said creates and maintains the Product Backlog. Replans the project before each iteration in function of the value of the requirements. Also collaborates with the team in the planning, revision and detail of the objectives of each iteration. Sometimes it is necessary that the supplier is put in the skin of client and everyone could internalize their necessities besides to maintain at any moment a fluent communication with the final client.
Following the previous image of an iteration is marked by the meeting planning, where the whole team met the work and objectives for that particular iteration. As a result we obtain the Sprint Backlog, List of tasks to perform during the iteration. And the goal of the sprint, functionality to get in that Sprint.
In Scrum the evolution of an iteration is reviewed with daily follow-up meetings, in which the entire development team gathers, comments on the work that has ended, the work that has to end and the impediments that may have arisen. In these meetings we work with the Sprint Backlog, where we update the list.
In Short, an interaction or Sprint involves the revision of the project through another meeting (Sprint revision) with all the people involved and committed in the project. During the meeting there is the oportunity of redirecting the project if something has changed, deadlines, functionalities, current market. As we have commented, in an iteration is delivered the increment, which should be ready to inspect, evaluate and remove the market.
It is worth highlighting the difference between people involved and committed. A person involved is related to the project, as can be the specific user who will make use of the software application. However this does not perform tasks for the development of the software. A committed person relates to and is part of the project’s execution. An example, the pupil and the principal, in front of the people involved, in this court.
Scrum takes instability as a premise. It is not considered that the detailed definition of the product or the software architecture have to be in the first phase of the project. As Methodology Agil, it will not be a phased development. This makes that when applying Scrum for software development the practice of refactoring is of obligatory fulfillment in the tasks of design and codification. In other words, in each iteration the new functionalities are added and it is necessary to modify the result that we already had.
While in a predictive methodology the responsibility of the circumstances will not planned the project manager, in Scrum is part of teams-organized with enough leeway to make the decisions timely.