Ideally, before performing the Sprint Planning session as a team, the Product Backlog Items those will be potentially included in the next Sprint are supposed to be estimated in Story Points. The higher the priority of any Product Backlog Item, the higher is the expected maturity level of that particular PBI. Then, based on the average velocity data i.e. the average completed story points in the past, together with the expected capacity of the team for the next Sprint, the development team decides which PBIs should be included into the scope of the following Sprint. We, as the product owners are supposed to provide the right level of priorization and the overall direction to achieve a Sprint Goal before the planning session. This is basically how Sprint Planning works.
Nevertheless, Scrum teams may face scenarios where there may be strict deadline for a new feature or a solution. In other words, teams could face circumstances where the typical release planning could be not be applicable. To make it more concrete, let’s assume that the total amount of Story Points for a new to-be-developed solution is 100 SPs. Moreover, assuming that based on the proper planning done by PO according to the velocity of the team while preserving the projected capacity , it seems feasible that the team would require 4 Sprints in order to ship the solution. There are chances that, due to a certain reason ( Top Management expectation, natural deadlines such as Christmas, back-to-school season etc.) it may not be feasible to run 4 Sprints as the strict deadline does not allow such a period of time. Let’s imagine that for this example the deadline is just 3 Sprints away. Than the big question is how should a PO react if she/he encounters such a case ?
Okumaya devam et “How does it work in Scrum if there is a strict deadline ?”
Scrum framework doesn’t mention about how the software is developed i.e. which development techniques have been used. It lets the team to decide which techniques and practices will be used. I think it’s a good idea to share the practices we benefit as a Scrum team thanks to the leadership of the Scrum Master. (A tailor-made adaptation of XP practices)
Pair Programming: All production code is written by two people at one screen/keyboard/mouse. This helps us to ship software with superior quality, less bugs, less iteration and as a result greater efficiency.
Test Driven Development: TDD is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved to pass the new tests. Chances are the test coverage percentage of our software stack decreases due to other priorities. In any case, we focus to keep it above a certain threshold.
Unit testing: It's a level of software testing where individual units/ components of a software are tested. The purpose is to validate that each unit of the software performs as designed. Unit testing is key for the team to level less buggy software.
Continuous Integration: New code is integrated with the current system after no more than a few hours. When integrating, the system is built from scratch and all tests must pass or changes are discarded. This eliminates manual work and saves time and efforts.
Refactoring: The design of the system is evolved through transformations of the existing design that keep all the tests running. In the lack of refactoring, the quality of software decreases and the probability of major bugs increases.
One of key definitions of the Scrum framework is “Definition of Done”(DoD). In order to be able to decide when an activity from the Sprint Backlog is completed, the Definition of Done (DoD) is used. This bring all the team members to the same level of understanding about the conditions when a task is completed. The definition of done for our team is as follows:
Any issue in the Sprint Backlog is considered to be “Done” if the analysis, development and validation stages have been completed successfully and the acceptance criteria has been met. The deployment is not a prerequisite for the issue to be considered as “Done”.
Okumaya devam et “From Continous Delivery to Continous Deployment”
One of key metrics of a Scrum team is Velocity. Even though it’s not mentioned in the Scrum guide, it is still very useful for the Product Owner while planning the Scope of the next Sprint and defining a concrete Sprint Goal.
As the name implies Velocity (consider the team as a vehicle) is a metric calculated by averaging the total amount of Story Points completed over the number of Sprints within the same period. In practice, the velocity of the teams gets stabilized after a certain number Sprints are left behind. As the number of Sprints increases, the velocity starts oscillating in a regular rhythm.
Okumaya devam et “Velocity : Key metric to secure an effective Sprint Planning”
To recall, the fundamental purpose of this blog is to share openly the best practices we had as the Scrum team from a Product Owner Perspective. That’s why it makes sense to share a typical approach we follow while developing new features by cooperating with client development teams with a strict deadline or time pressure. It’s Contract-First REST API Design. A recent example of this was a back-end development of a new Payment channel to sell recurring TV packages to end users through the TV Web portal.
To launch this commercially, the in-house Web portal development team was relying on us to progress further and actively developing the brand-new web pages. Besides, the launch date was fixed and committed to the top-management.
Even though the deadline was approaching, since the earlier Sprint has failed, as the PO, I had to prioritize the relatively small work that was left over at the Sprint Planning event. My perspective was as the whole team had focused to ship the Sprint goal of the previous Sprint and we are pretty close to bring it to Done state, I set a Sprint Goal that dictates to continue to work on the earlier goal and only to take small baby steps regarding the payment solution. My rationale was freezing the work we already had started and progressed a lot and focusing on something totally new wouldn’t be an effective way of utilizing team’s efforts.
Okumaya devam et “How did we benefit from Contract-First REST API Design Approach?”
As a best practice, I organize Refinement meetings every second week of our 2 weeks long Sprints. This is really key in order to run an effective Sprint Planning event.
I prefer to use Refinement but not Grooming as the latter has a recent negative meaning.
At the invitation I send to the team for Refinement event, I briefly mention about the PBI that we will talk about. These are mostly the items those have the highest priority and have not been yet estimated. Refinement sessions could potentially get postponed if the team is working intensely to accomplish the Sprint Goal and short in time. That’s why it’s a good practise to schedule it to the very beginning of the second week in order not to jeopardize achieving the Sprint Goal.
Okumaya devam et “Why is Refinement key for effective Sprint Planning ?”
I don’t if you’ve heart Mike Cohn before. He is one of the contributors to the invention of the Scrum software development methodology. He is one of the founders of the Scrum Alliance and the owner of Mountain Goat Software, a company that provides training on Scrum and Agile software development techniques. If you sign up for weekly email tips on his website https://www.mountaingoatsoftware.com/ you’ll receive a link to the book “101 Inspring Quotes about Agile“.
In this book, there are a total of 101 inspring quotes about Agile from mostly renowned people. I really recommend you first to sign up to weeklu email tips and then donwload the mentioned book. I’ve really enjoyed to go through this valuable consolidated study. Here below you can find my top 10 selection.
Okumaya devam et “10 Selection from the book “101 Inspring Quotes about Agile””
This week, 6th of February Tuesday was World Retrospective Day. I’m quoting from the website:
World Retrospective Day is a volunteer-based, globally coordinated effort to share in the power of retrospectives.
People from different countries around the globe organized and participacted in order to celebrate it.
That’s why I thought that it would be a good idea to write a down a blog post about how our team performs it, perhaps the most fruitful event of Scrum framework.
First of all, this is an entirely internal event lead by the Scrum Master closed to any stakeholders . Typically, we organize it just after the Sprint review scheduled for 2 hours (we run 2 weeks long Sprints). At the very beginning, we have a quick chat about the past Sprint followed by the D.A.K.I. session. DAKI is the abbreviation for:
Here below you can see the output of our last Retro session.
Okumaya devam et “My favourite Scrum event: Sprint Retrospective”