Agile Development has already become a standard for IT companies specialized in the software development. It provides an environment either for development of corporate software or for provision of specific user settings. Quick and easy creation of system prototype, step-by-step introduction of functional changes, possibility of performing modifications in terms of changing business environment, short intervals between introduction of system releases, productive give-and-take between buyers and providers make the basis for agile development. One of the basic ideas of agile development means that business requirements, tasks and priorities may change within the development process. This principle allows for allocating the development of key software functions, resolving specific tasks stage by stage and receiving immediate result from system development before the project is completely finished. One of the key methods applied within agile development is dividing the project into minor stages. Each of these stages represents realization of specific part of functionality. Budget and timeframe are defined separately for each of these stages, and this is the project owner who sets priorities among the set of stages. This flexible approach of allocating targets allows changing priorities during the development process without shifting key focuses and changing the development patterns. One of major advantages provided by this method is treating possible changes, made by the project owner, as a positive factor, rather than a restriction. Judging from the experience of those companies that successfully keep to this methodology, active collaboration between the buyer and service provider helps the project owner to better understand his requirements and use the information obtained during successful communication for managing the system development for successful realization and implementation into practice. The Agile Development Methodolgy is based upon a set of principles and a manifesto, which were formulated in the early 2000-s. Principles of agile methodology represent the alternatives, thus giving priority to certain aspects in comparison to others. From the viewpoint of manifesto authors, this form of comparative statements helps the software developers better understand the choice they make in project realization and better understand the primary rules they should abide by if they choose agile development methodology. The first alternative states the priority of individuals and interactions over processes and tools. It does not downgrade the importance of agile development tools and processes, but points out the priority of human interaction and effective communication in successful project realization. The second alternative states the primary importance of working software over comprehensive documentation. This, in turn, does not mean that detailed documentation does not influence the success of the project. However, specific result represented in properly working software should be a more important target, once it demonstrates the progress of the development process. Besides, documentation makes an importance as one of the factors serving for achieving the desired goals, rather than a documented material itself. The third alternative gives a priority to customer collaboration over contract negotiation. It highlights an idea that building trust between the team and the project owner as long as constant communication and collaboration make more successful strategy than an attempt to rely upon formal agreements. Of course, contract and agreement are important, but these documents should not be a cornerstone in project development. The forth alternative states that responding to change prevails over following a plan. As flexibility and high level of responsiveness are the key principles of agile methodology in general, the importance of quick and adequate responding to change is one of key factors leading to successful project deployment. It does not mean that planning is unnecessary and should be ignored, it rather shifts focus from strict following the scheme to better performance and effective development. The aim of any project is to increase business effectiveness and performance. This goal can be reached even if the resulting project does not fully correspond to initial budget and timeframe. At the same time, the project, which has been done in full correspondence with budget and schedule does not necessarily fit the initial goal – if, for instance, the market or business environment have changed. The same as other alternative statements, the fourth principle does not reject those factors that are given lower priority; it just recognizes objective restrictions that high environment ambiguity and changing terms put on the planning. The key principles and mission of agile development methodology consist of high-level ideas of software development structure, advantaging successful implementation of the project and creating a friendly environment for a team, working on the specific projects. Customer satisfaction and reaching the business goals of the project are key elements of agile development philosophy. Thus, the notion of success in agile development is difficult from the concept of success accepted in more traditional approaches, which stick to meeting three project criteria, namely, budget, timeframe and range of requirements. In addition to focusing on importance of human factor and productive cooperation, this methodology has become an effective successful solution for a large amount of companies, striving for high performance, flexibility and increasing performance in terms of ever-changing market requirements. The author is interested in the role that agile development plays in successful software collaboration. She believes that integrating agile development into the process of software development will help expedite the design process.
Related Articles -
agile development, agile software, software development,
|