Our approach to a new agile development project involves phases which are not that distinct from those of any other project. The project will be defined and planned, executed per plan, and the project manager monitors and controls the results. For example, from the outset of the project, the agile team works closely with the customer to understand the vision for the project, how the project supports business goals, and how new or updated systems will be used. In the agile approach, reliance on processes and tools is downplayed in favor of communication, collaboration, and delivering high quality software or systems.
Specifically related to collaboration, SCRUM offers methods to coordinate, collaborate and organize work between various roles on the project - the Product Owner, the Scrum Master, and the Team.
Our project plans reflect the agile way of working, working in sprints, supported by user stories, wiki publishing /communication etc.
From the programming perspectives depending upon the type and nature of the project our emphasis is on extreme programming, adaptive software development, and dynamic system development methods.The focus is on agile techniques such as Test-Driven Design (TDD), database refactoring, and agile change management. As scope of life cycles on the projects change -some life cycles address just the construction life cycle, some address the full development life cycle, and some even address the full IT life cycle - depending on the scope, and how disciplined our approach to agile software development is, we are cognizant that we will get different life cycle diagrams - something that we explicitly address in the Disciplined Agile Delivery (DAD) process decision framework:
Disciplined Agile Delivery > Agile Modeling > Agile Data > Enterprise Unified Process > Agile Unified Process > IPCS® Agile Delivery
The agile project planning model assumes that project time and cost are fixed, with scope being flexible. The team outlines the sequence of project iterations and releases that will be delivered at specified times in the future, creating a roadmap of capabilities. Identifying what each capability will provide is also a necessary part of the release planning process.
The agile team schedules the development of requirements (user stories, features, use cases) into time- boxed iterations, often called sprints, which are usually no more than a month long. In planning an agile project, the higher priority items are planned into earlier iterations. However, change is welcome and an expected consequence as the team collaborates with the business to frequently reprioritize based on emerging requirements and better product understanding. Releases can have multiple iterations and are typically planned at 3 months intervals. Finally, the people doing the work must be actively involved in scheduling as they have the skills to understand the true nature of the work, can identify dependencies, and need to accept the schedule.
A Project manager can use agile principles and practices to reduce organizational risk and successfully manage change, improve communication, reduce cost, increase efficiency and demonstrate value to customers and stakeholders.
The types of projects best suited for agile are those with aggressive deadlines, a high degree of complexity, and a high degree of "newness" (or uniqueness). Complex projects benefit from agile as certainty is increased through collaboration and agreement. Additionally, with short timeframes between feedback loops and deliverables, the agile project team validates assumptions more quickly and can identify and deal with risks and issues sooner. If the project is one where the team has delivered a known solution over and over then the team probably doesn't need an agile approach.
Benefits of agile process improvement:
IPCS's agile consulting approach has shortened the lead time in the projects, given clients a better understanding of what their customers needed, and increased their commitment for the changes that were needed in the organization. A set of golden rules help teams to stay aware of the way to collaborate, contribute value, develop their knowledge and skills, and work in a disciplined and effective way.
WorkFinity® BPRM is service oriented architecture (SOA) based innovative software technology framework delivering next generation, smart and intelligent industry-specific enterprise applications.