Agile development can help reduce the chances of risk during the project by understanding what the problem is from the get go as well as what the intended solution to that problem will be. Structured processes could end up causing regression testing, whereas agile testing breaks the process up into smaller chunks called sprints. Agile testing allows for changes to be made mid-stream during the testing cycle if customer demands change after the project has started. The time between release cycles can be sped up and customers will be able to give you feedback quicker, which allows you to re-prioritize development on upgrades over less critical projects relating to the next release. Agile development can help strengthen the business-customer relationship.
Make sure you’re ready to proceed with the agile development plan before you start. Identify roadblocks and figure out ways to either eliminate them or work around them. Compare the agile development process with your existing in house development process and identify the pros and the cons. Analyze your team’s total hours available, known as velocity, to work on the project.
Planning the project
Agile project planning is based on features, whereas traditional project planning is task based. Phases are completed based on units of time known as sprints. Typical sprints last anywhere from 2 to 4 weeks.
Plan should include an overview of release phases, such as total number of iterations planned, iteration release schedules, review dates, and deployment dates. The release plan should be updated on a regular basis to reflect the velocity of the phases so adjustments to the plan can be made if necessary (ex: if the velocity is higher, additional requirements can be added in). We have done overhauls in planning for many companies- retail, ecomm, banking even a limousine company here in Worcester- Worcester VIP Limo.
Scheduling helps to assess whether or not resources for the project will be available before the project starts. Holidays, vacations, training sessions, the experience of the agile member, and team members who are on multiple projects should be taken into account during the scheduling phase. Reduce the time it takes to complete sprints. Example, if your current sprint time is 2 weeks, reduce that time frame to 1 week. Schedule tasks to be completed by the individual, not by the group. Testing should be scheduled to take place at the end of each sprint cycle. The scheduling process should be done by the people who are actually doing the work since they have a better idea of how long it will take. Scheduling should also reflect a range of completion targets to accommodate the phase finishing early or unforeseen problems arising.
Track your metrics
Conduct a baseline survey before the project begins in order to gauge how the project is being perceived at the start of the project. Follow up with additional surveys at regular intervals in order to address problems that arise before the next phase of the project begins. Measure how much time, money, and resources are being devoted to this project (burn rate). Measure and track defect rates, including how frequently defects happen, the severity of the defect to help determine how close or if you are ready for putting the product out in the marketplace.
Training and education
Educating various people in the organization about what agile development is and answer questions about what it isn’t in order to separate the myths from the facts about the process. Training courses can help project leaders better understand what agile development in order to help increase buy in of the process. Additionally, interaction with senior management, customers, and vendors can help build additional buy in of the process. Clients should be aware of the flexibility of the project and your ability to prioritize based on their needs.
UML and other modeling techniques
UML is just one out of a wide array of modeling techniques. UML may not be adequate for all types of development and may be confusing for customers who don’t understand it. Other modeling techniques include Acceptance Testing, constraint modeling, free form diagrams, flow charts, object role model (ORM) diagrams, and physical data model (PDM). Each modeling technique has pros and cons when using it. Multiple modeling techniques should be used in order to apply the right artifacts at the right point in the development cycle. Progress should be tracked at every phase of the cycle using project management software. A Wiki, or similar system, should be set up in order to log customer experiences.