Posted on May 19, 2018 at 10:32 PM
Last couple of years scrum has become almost the only standard when it comes to IT development. Clients and even IT companies are forcing use of scrum in all kinds of IT projects even when they agree it is not “true” scrum, but a variation of something that assembles to scrum.
IT sectors in automotive, medical devices industry or government, that have a need for a lot of testing and their product is life and security dependent, don’t use scrum. Why is that? For the answer to that question we need to go to the basics of any software methodology, you choose the methodology based on the product and not the other way around.
But most of today’s software industry people know only about waterfall or agile and advantages or disadvantages of them. If you type software methodologies in Google I bet you will get more that just waterfall or agile. You will get something like lean model, incremental model, RAD model, iterative model, spiral model, prototype model, extreme model...
Let’s go back to the main theme, CMS maintenance is a specific part of any web development. You already have a product and you need to maintain it. In most cases project manager is the connection between the business and the development team. The business with help of the project manager creates the tasks for the development team. The tasks are divided by priority (1 to 5) and type (question, incident, bug, task, request for change…). The developers based on the priority and the type, with agreement of the project manager, resolve the issues. In ninety present of cases the issues are small like change the color, add the button, functionality is not working as expected, fix the bug etc. Basically, if the request for change is too big (for example site redesign) it should be a new project independent from CMS maintenance with its own methodology and rules.
Any insightful reader would say this situation is clear let’s use scrum it is better than waterfall (all kind of reasons stated in scrum.org and scrum alliance booklets), the project manager will be product owner, one of the senior developers can be the scrum master, we will have different people skills in the development team (frontend developers, backend developers, testers, designers, system administrator…). And of course, the biggest reason of them all, everybody is using it, scrum is the most popular methodology on the market and the management wants it.
Scrum master says, in most of the tasks one or two people are working all the time and rest are waiting for them, we are using only small percent of available resources! Testers need to wait for developers to finish the task and then work with pressure. Designer and system administrators are not needed all the time…
The development team creates weekly sprint releases. The business reports a small bug or simple texture change on the page. In normal circumcises developer needs two hours to finish the task, but all resolved tasks of one sprint must be released at the end of the sprint. The business people are frustrated, why does a simple task need that long to finish?
So as a solution project manager introduces exceptions. Testers, designers and system administrators should be in separate teams and be asked to participate in maintenance when needed, this solves the utilization problem. Sometimes we don’t wait for completion of all tasks in the release, we push them by priority. Then the questions pop up, why complicate and have weekly releases when everything can be done as first come first goes, with high priorities in front? What value does the scrum gives us in this particular case?
“Scrum (n): A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value “
This said, scrum provides minimal boundaries for the team to self-organize in order to solve the complex problems. The emphasis in every scrum definition is complex adaptive problems. As I mentioned before, you choose the methodology based on the product and not the other way around. In CMS maintenances we already have a complete product, which probably needed an agile methodology during creation, but during maintains the complexity part has despaired, we are in most cases introducing simple fast changes to existing system. If the problem is too complex than it should be a new project with its own lifecycle. To be absolutely clear it is not the question if scrum can manage this situation, maybe some other methodology is more fit for the product.
Kanban is a lean software development methodology, originating from Toyota Production System in automotive industry. The main principals of lean software development are:
Kanban uses kanban boards to organize development. Kanban board show how work moves from left to right, with each column having limited number of tasks. All these principles are exactly what is needed in CMS maintenance, meaning less stand by hours in development, high learning curve, deliver fast and in time, just like the client wants.
The main question is do you want to do the CMS maintenance right, or do you want to complicate things in order to satisfy popular thinking.