Introduction to Agile Programming
The 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 focus on two different aspects; one is agile practices that are extreme programming and pair programming, others focus on managing the projects through the scrum approach. The 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 of 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.
Functioning of Agile Programming
It divides the whole cycle processing into smaller or short cycles. During the development phase, or we can say the stage before delivery (can be the last stage also), the customer can make changes based on his requirement.
It works in five phases:
Extreme programming initiates the product development cycle by collecting the requirements from the user. The user denotes his ideas or requirements on the story card they want to see in the release time. Story card slots define the attribute to be added to 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. Finally, 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.
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.
During this stage, several iterations of the systems take 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 of. 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.
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 have to be correct in the product before the product’s first release. 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 product’s first release. Communication with the customer can also ask through the customer support desk. With the addition of new team members and change in the team, a structure may be required during maintenance.
5. Death Phase
This is the phase when the customer agrees on no more story cards 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. To make sure that the product has delivered the desired product, the system will be considered dead. It should keep the expenses within the limit for further development.
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, it is done well.
- Programmer: The 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: The customer is the main body to write story cards for his requirements and decides which requirement will satisfy his needs. The customer sets the implementation priority.
- Tester: The 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 estimates made by the team, and provides suggestions to improve.
- Coach: The coach is the guide to the team members throughout the development process. He is the experienced one who has been in processing for many years.
- Consultant: The consultant is the external member who guides the team with specific technical knowledge that may be needed to develop 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 the 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 –