Around a year ago we decided to adopt Scrum as our methodology for development management.
We were agile even before this process, by knowing to adjust our work plan according to business needs or customer demands often, however, we missed the ability to manage development teams efficiently. After certain consultation, we decided to adopt Scrum as a methodology. The process was gradual. Firstly, only one team moved to use scrum, then after doing a retrospective and understanding the pros and cons, we added an additional team and then moved all teams to scrum. When we started, the decision was taken to adopt “vanilla scrum” as the most correct way. However, the reality differs from “sterile” environment that is usually described by the book or Agile coach. In this article, I would like to share my thoughts on “scrum flavors” i.e. cases when the standard scrum is not enough and variation to the procedures should take place. Application of correct flavor will assist you to create a winning combination for your needs
Scrum is not applicable to the initial phase of the project such as discovery
When starting the project and requirements are still gathered, it may be counterproductive to enforce scrum methodology on the team members. In case that you would like to develop something that will fit existing ecosystem, the requirements are still are not finalized, the technology for the project may need validation and due diligence, it makes sense to approach such objectives as a traditional project. Once things are clarified you may build the backlog and apply scrum methodology.
Let’s take as an example e-commerce platform for small businesses, that allows to the online merchant offer e-commerce site for selling goods, back office for managing orders, shipping, payments, and inventory. The business stakeholders raised the requirement to redesign the platform by adopting a new user model, introduce new functionality and scale out the platform to support online merchant who has multiple brands, warehouses, and shipping facilities. Let’s say that you have even the development team ready for the task. There is a very high chance that during the regular sprint preparation that takes week or two there will not be enough time to understand the solution and define implications on the systems that are impacted and needs modification. In order to use time and resources in an efficient manner, it’s worth to assign sprint or two for discovery and design phase during which the architecture of the system will be defined, user stories will be written, and new technology will be explored. During this period product owner will have enough time to prepare the backlog. The development team may still implement scrum procedures, but most tasks will be research of the new technology or existing state of the system, the definition of the architecture and building infrastructure components
Scrum is hardly applicable when new technology is expected to be introduced
As part of the new project, it may be a good idea to add the new technology of stack of the company such as queue platform, new database engine or framework for certain programming language. Usually, the new project serves as legitimation for such technology upgrade. Such a procedure usually requires effort from multiple teams:
Developers to write the working code using the new technology, DevOps team to deploy the solution to environments that are being used and updating CI/CD procedures, IT team to add the technology to maintenance cycle, NOC for monitoring purposes. Scrum process usually does not cover the activities mentioned above as its major focus to deliver the software that answers business needs.
You may wish to add team members from departments that are responsible to services such as DevOps or IT to scrum procedures such as sprint planning and daily scrum in order to get their commitment to the tasks, however, it’s neither not natural for the scrum process, nor for that team members. During the introduction of the technology, multiple impediments may arise and according to scrum it’s product owner responsibility to solve them, however, the introduction of such technology is rarely agenda of the product owner who wants to deliver functionality to his stakeholder. Introduction of a project manager who will be responsible for this activity and it will be his primary objective may deliver better results
An additional aspect that is worth considering is the timeframe that is required for technology introduction, it usually longer than one or two week period that sprint takes and it doesn’t necessarily make sense to connect technology introduction process with scrum delivery. It’s usually preferable to set up new technology before adding tasks related to the implementation of business delivery as a part of the scrum process
Scrum should handle dependencies on different services that are provided by additional providers in the organization or outside it
For large companies that have more than one scrum team coordination between scrum teams is required. Usually, this process is called SOS (scrum of scrums). It allows synchronization of the scrum teams. In practice when a certain project requires the collaboration of a few teams, planning and monitoring activities that are common for them is required. It’s worth to define dependencies between teams and order of the execution in order to minimize the possible effect on the lack of delivery of one team to another. If we take an example e-commerce solution described above the infrastructure team that handles user management infrastructure will need to deliver their part prior than application team which develops back office and uses infrastructure to implement business logic
In case that dependency exists that is related to an external provider that you don’t have the ability to influence the situation becomes even more complicated, scrum considers such dependency as an impediment and need to manage it is outside of the standard scrum framework
Implementation of the scrum in the organization may have its benefits such as agile approach, better customer satisfaction, transparency for management and team members. However, it’s important to take into consideration that scrum is not a solution for all processes and it doesn’t cover all additional activities that exist during the development of the projects such as planning and design of the project or introduction of the new technologies. It’s also crucial to understand that complex projects that have multiple teams involved will still need a dedicated project manager that will perform activities such as building Gannt, reviewing dependencies, maintaining collaboration between different teams
I would like to wish you to enjoy the correct proportion of each scrum flavor that will form perfect “scrum sundae”