Agile process has an important role to play in the software development and management cycle. Agile has a set of principles that put a direct focus on customer value, iterative and incremental delivery. Agile methods put a focus on two different aspects, one is agile practices that are extreme programming and pair programming, others focus on managing the projects which are through the scrum approach. Agile process is used when the company or organization has the clarity about its goal but the path to get to the solution is unclear, the agile process management is used.
The agile practice extreme programming is considered as the best practice to take benefits out of the programming cycle. Extreme programming came into existence after the problems arose in the traditional software development cycle model. Its introduction was done just to focus on ‘simply get the job done’ and it was found effective for the development. extreme programming is tried and tested agile development practice; it puts maximum focus on customer interaction to know the exact requirement then only get into the development of the product.
The Functioning of Agile Programming
It divides the whole cycle processing into smaller or short cycles. During the development phase or we can say stage before delivery (can be the last stage also), the customer can make changes based on his requirement. It works in five phases-
- Exploration – Extreme programming initiate product development cycle by collecting the requirements from the user. The user denotes his ideas or requirements on the story card that they want to see in the releasing time. Story card slots define the attribute to be added into the product. At the same phase the team document record of practice, tools, and technology needed for the product development based on the user’s requirement. The technology needed for creating the new product is tested and new possibilities are explored by creating a prototype of the system. It may take one week or a few months to complete the exploration phase, it totally depends on the programmer how familiar the program is to the technology.
- Planning – The collected data is then divided into small cycles to understand every bit of the user’s requirement. The data is prioritized for the first release of the product then development takes place. The estimation and schedule of efforts for the first release are calculated and then agreed on the release. The first release span is under two months.
- Iterations – During this stage, several iterations of the systems takes place before the first product release. The iterations are divided into a number of small iterations and given two to four weeks to implement. Now the iteration planning phase is active which means the decision regarding cycle division, priority requirement, and workforces needed for the development is taken care. The iterations create the outline of the system then the system is achieved by selecting the cards from story cards made by the user. The decision is made by the user for which to select first. The customer run iteration at the end of every slot which he has decided for each iteration part.
- Productionizing – This phase is considered important because the final testing is done to this phase before delivering the product to the customer, performance is tested. New changes are likely to be found during this time and which has to be correct in the product before the first release of the product. A Team is prepared to accept changes at any phase of the development because new requirements can pop in during any phase. For corrections, iteration time needs to be decreased from three to one week. Other ideas and suggestions are stored for later implementation. The production is kept running after the first release of the product for the same product or for it can be for new iterations. The maintenance team is asked for corrections in defects during this phase, this is done after the first release of the product. The communication with the customer can also ask through the customer support desk. The addition of new team members and change in the team, a structure may be required during maintenance.
- Death phase – This is the phase when the customer agrees on no more story card for implementation. This is the phase where final documentation regarding the product can be done, believed that no more changes in the architecture, design or code are made. It is to make sure that the product has delivered the desired product else the system will be considered death. It should keep the expenses in the limit for further development.
The Team (Role and Responsibility)
Agile cycles have several members (team) for creating the new product. Every task is divided among the team and assembled after all done well.
- Programmer – Programmer is one of the main bodies, he creates the code for the product and, keeps the code simple and definite to possibility. The best way to code correctly is to communicate throughout with other programmers and teammates. It can be for knowing the exact requirements for the product.
- Customer – Customer is the main body to write story cards for his requirements and decides which requirement will satisfy his needs. The implementation priority is set by the customer.
- Tester – Tester is responsible for running functional tests, he helps the customer to write functional tests. Testing is carried throughout (regularly) and testing tools are maintained.
- Tracker – Tracker provides feedback and keeps track of estimate made by the team also provide suggestions to improve.
- Coach – Coach is the guide to the team members throughout the development process. He is the experienced one who has been into processing for many years.
- Consultant – Consultant is the external member who guides the team with specific technical knowledge which may be needed for the development of the project.
- Manager – He is the deciding body. The Manager keeps the team on track to get the work done. He is open to communication to team members regarding issues team facing during development. He makes sure the work is progressing smoothly until the project is delivered.
This has been a guide to Agile programming. Here we discuss the Functioning and the team role and responsibility of Agile programming. You may also have a look at the following articles to learn more –