Why Daily-Scrum
Quote from a VP of a large financial company.
"When you have one project on a whiteboard with Post-its it's fine, but when you have five or six projects, the whiteboard approach just does'nt cut it. We simply haven't got enough whiteboards!!"
Automation with a tool is required!
Other reason why you need Daily-Scrum can be;
- Your existing project tool / way of working do not appear to support your different needs in a proper way.
- You lack the holistic and in-depth overview of the progress of your projects.
- You want to increase the ability to keep and predict project timelines.
- You want to have in-depth knowledge of the progress and it's value in a project.
- You want to improve development processes with teams working on different locations.
- You seek a tool that will guide you in how to run the development process according to Scrum in a better and easier way.
What is Daily-Scrum?
Daily-Scrum is the brand name of the system built to plan, track and manage Agile projects through a web-based application. The initial development started in 2008, and was during 2009 used by several pilot projects to ensure the system delivered the necessary functionality for iterative and incremental project. Daily-Scrum is still undergoing extensive development to add more functionality as customer requirements emerge.
Daily-Scrum has been developed by Scrum Masters and Project Managers, and has been heavily influenced by agile team members such as developers and people working in infrastructure environments.
It is expected that anyone involved in a project will be using the system, i.e. Product Owners, Scrum Masters, Team members and other stakeholders.
The system uses a non-nonsense, straightforward, non-bureaucratic approach for planning and tracking Agile projects. When designing the system, our goal was to build a system where the users spend as little time as possible, allowing focus to be on working on the project goals, i.e. the solution, rather than managing the project.
Daily-Scrum supports traditional agile frameworks such as Scrum, DSDM, Extreme Programming, Adaptive Software Development, Crystal Methodologies and Lean. It is not required that any of these practices be followed, but a project must practice an incremental project approach with short timeboxed milestones.
Daily-Scrum – some key features
Product planning
Once a product idea has started to take shape, planning what the product will do is essential. Before development will start in a project, the normal approach is to initiate product planning.
You plan the project by first collecting requirements. These requirements are placed in a Product backlog for the project. Sometimes the product backlog is called Prioritized Requirement List. Normally requirements are expressed in User Stories, which express a role wanting the feature, what the feature is, and which value the feature delivers.
To assist prioritizing the product backlog, you will assign a business value and an estimate to each requirement. This is a collaborative process where relevant resources contribute. Business values are normally assigned in a workshop where representatives from the user community participate. Estimates, expressed in story points, are normally assigned in a workshop where developers, which will work in the project, participate. MoSCoW is an option you may activate for your project. If using MoSCoW, it may aid as a holistic approach for prioritizing the product backlog.
Once prioritization factors has been assigned the requirements, Daily-Scrum can automatically prioritize the backlog based on the highest business value requiring least effort to be complete. If you have applied MoSCoW priorities to the backlog, these will take precedence. Prioritization can always be done manually, by prioritizing requirements individually. The automatic prioritization is only done on demand.
As product planning is a holistic project approach, it may be that the scope of requirements is considered huge. Daily-Scrum supports large requirements through Epics, which is expressed as a longer user story containing several smaller user stories. You may break down a requirement, by turning it into an epic, and create user stories descending from the epic, or you may start off planning with epics from the start.
Acceptance / Quality criteria may be assigned to the requirements for acceptance later.
Release planning and project forecasting
Once product planning has been done, shaping the product release timeline is the next step.
Depending on your project characteristics, you may want to forecast a timeline for the project. Daily-Scrum can assist in this process in two perspectives. If time is crucial, you will want to see how much resources are needed to accomplish a dead-line. If resources are limited, you may want to see when you can launch the system with a minimum usable subset of requirements. When MoSCoW is active for a project, the release forecast can tell you when the Musts are expected to be complete, i.e. when the first official release can take place.
Release forecasting is a continuous process. Daily-Scrum will automatically adjust the forecast based on the velocity of the team(s) working in project. Since the forecast is based on team velocity, it will depend on the teams experience how predictable the forecast will be.
You plan your project by defining releases/milestones and distributing the product backlog items into those releases. The releases can be defined by sprints (timeboxes) or by longer timescales. Daily-Scrum will tell how many sprints are needed to complete the release, and will also forecast when the releases will complete outlined in the project schedule. During sprint planning these milestones will be visible when selecting items from the product backlog.
Planning releases is fully optional in Daily-Scrum. If you just like to keep track on what was released at a certain time, you may do so by associating requirements with a release at any time you like.
Sprint planning
An agile project is focused on frequent delivery of requirements. An iterative and incremental approach is necessary to converge an accurate business solution. Frequent planning and execution of sprints is the agile approach. A sprint is normally timeboxed to 2-4 weeks.
Depending on the project size there may be one or more teams working on the project. Daily-Scrum supports multiple teams working on a project. Teams can do sprint planning individually or together. When there are multiple teams the first session of sprint planning is normally done with the teams, selecting items from the backlog, together. When planning tasks in the second session, the teams normally split out.
During Sprint planning one, the teams will select the item of highest priority, and if the product backlog has been planned in releases, it will allow the team to select items from those releases. Daily-Scrum keeps track on whether a team is under- or over allocated, taking into consideration team velocity, public holidays and planned absence. Items selected will be placed on a backlog for the sprint – the Selected Product Backlog. The selected product backlog can be re-prioritized together with the Product Owner independently of the Product backlog.
During sprint planning two, the team plans tasks for each requirement and estimates time to be spent on each task. Optionally, the team may assign resources on each task. During this process, Daily-Scrum will keep track on whether the team is under/over allocated, and allow the team to revoke or add requirements as deemed necessary. Adding or revoking requirements should of course be consolidated with the Product Owner.
Project control - status tracking
In agile projects the team is in control of their work. The Product Owner controls the prioritization of the backlog, and the Scrum Master facilitates the teams approach on the process. Stakeholders provide input to the requirements and accept the solution.
At any time any member of the project can consolidate project status, viewing the status of the entire project, current sprint, teams status and even down on team members status. It is possible to view burndown/burnup of hours, earned value as well as velocity of teams working in a project. Daily-Scrum also monitors blocked tasks (needs attention) and escalates such status throughout the project so it is easy to observe and handle obstacles. Daily-Scrum also supports defects and impediments, and both these entities can be assigned tasks, just as you would do for other requirements on the product backlog.
Incomplete tasks are automatically transferred to next sprint.
System integration
Daily-Scrum has a RESTful (REpresentational State Transfer) HTTP architecture, which simplifies integration. REST-style architectures consist of clients and servers. Clients initiate requests to servers; servers process requests and return appropriate responses. Requests and responses are built around the transfer of "representations" of "resources". A resource can be essentially any coherent and meaningful concept that may be addressed. A representation of a resource is typically a document that captures the current or intended state of a resource. Daily-Scrum represents such a server in this context.
A RESTful API is simpler and more open than SOAP, which requires an API to be declared for each function. In the RESTful API, a url will determine which resource to address, and together with the well-defined methods – GET, POST, PUT and DELETE, constitute the necessary functions for read, create, update and delete a resource.
In order to integrate with other systems a RESTful client can be implemented to facilitate the needs for the integration.
Why would I want to use Daily-Scrum?
Daily-Scrum is a non-bureaucratic system built to support common Agile frameworks expressing its interface in Scrum terms. It can be easily understood by anyone, which has some experience with iterative and incremental development. Even though it has been designed with software development in mind, it can be used for a variety of IT related projects, such as infrastructure deployment.
Your existing project management approach or methodology does not appear to successfully deliver according to your expectations. You may not have an approach or methodology or may have an ad hoc approach, which your company has outgrown. Research says that many of projects fail, so why would you continue doing what you are doing not very well?
Your existing project management tools do not appear to support your needs in terms of holistic and in-depth insight. You may be using MS Project, and try your best to make either the project following the GANTT chart or you may try to adjust the GANTT chart to match the project process. You may find it difficult to manage resource allocation, such as sharing resources between several projects.
You want to improve your competitiveness using an agile approach such as Scrum, but do not have a tool to support the process.
You have experience with Scrum - today’s practice is post-its on the wall. You would want to:
- be able to share information between teams at multiple locations
- increase traceability and visibility on project requirements
- keep information transparency to all team members and stakeholders
- keep and predict your project timelines, and increase your disposition of project resources
- spend less time on discovering and follow up obstacles in your project
- have in-dept knowledge of progress and earned value in a project
- have better control on the changes that continuously emerge during the project.
What if I already have a methodology – and it is not Scrum?
If you run DSDM, XP or another agile approach, you will most probably gain from using Daily-Scrum, as it will support the top-down and frequent planning approaches these methodologies uses.
You may already have implemented or are practicing waterfall approach. If you are running software development projects, you will benefit from changing towards an agile approach. If you are running infrastructure deployment projects or other processes, which has a waterfall approach, you will still benefit from using the incremental approach that Daily-Scrum is offering.
Scrum offers visibility and frequent reviews. Without frequent reviews and transparency on project progress, management will become frustrated and will want more details. Daily-scrum will provide these details, and still gives insight on a holistic level.
Collaboration and team working is the key ingredient in any successful project. Daily-Scrum supports the different needs that a project has in terms of holistic and detailed planning, focus on prioritizing the most important requirements at all times, tracking down and following up issues that needs attention.