The successful completion of any project is related to the the project management activities or the quality of how the resources of the project are used. In the software industry, AGILE, SCRUM and variations are popular project management approaches used worldwide. The reasons for these choices are about their efficiency in the software development life-cycle management.
Being Agile means being flexible to adapt to changing scenarios, while being able to deliver high-quality software solutions.
This is why Agile methodologies are in most of the software projects. It is the customer and partner who ask us to use Agile methodologies (Scrum, Kanban) from the inception of the project. When the choice is left to our engineers, we carefully analyze the project specifics, and we propose a project management methodology based on Scrum or Kanban which best fits the specific project needs and context.
For the projects the Scrum methodology is following these general rules:
- The Product Owner is a client representative;
- The Scrum master role is usually fulfilled by the team technical lead role;
- Each Sprint duration is usually two weeks long;
- Daily Scrum stand-up meetings are set to max. 2 min. per team member;
- Within each Sprint there is:
- A Grooming meeting, which is organized during the last week of the Sprint, in preparation to the Planning meeting.
- A Planning meeting, usually taking place in the first day of the Sprint. The immediate result of this meeting is the Sprint backlog.
- A Retrospective meeting, usually taking place in the last Thursday or Friday of the Sprint. The result is an action plan to improve, with clear responsibilities assigned.
- In the last day of the Sprint, we prepare the Sprint status report, which is sent to every party with interest in the project lifecycle.
- The Product backlog will be maintained in an online tool (such as Target Process or Jira Atlassian)
- Weekly (or whenever needed) Sprint statuses are shared via e-mails and/or via direct communication (live meetings) with the project stakeholders.
During the project lifecycle the usage of those methods and techniques which best fit the Agile methodology/concepts:
- Prototyping and frequent customer validation;
- Continuous integration;
- Pair programming;
- Code review;
- Test Driven Development;
- Code refactoring.
Sometimes Scrum is not the best fit project management approach. The usual reasons for this are:
- Work cannot be properly planned in advance;
- The Scrum basic principles cannot be followed due to various objective reasons;
- There are too many incoming changes to deal with in the Sprint scope;
- Estimations are hard to be done correctly;
In such situations, Kanban may be the most effective approach. Kanban is set to support continuous delivery with maximum flexibility. For Kanban the following best statuses are used:
Tasks currently under development
Rasks marked as completed by the team
Tasks accepted by the client
The the project activities into four type of categories. Daily team meetings, similar with Scrum stand-up meetings, where team members report statuses and issues. While Scrum drives productivity by limiting the work time available in a Sprint, Kanban drives productivity and velocity by limiting the number of active, concurrent issues. Time estimation is no longer part of the project management process.