TMC frontrunner in Agile and Scrum software development
“Companies often struggle with managing software development projects. It’s simply not as visual as, say, building a house. As a result, they don’t know what timeframes to expect, and where current or potential problems are. Developing software using an Agile method like Scrum or Kanban addresses these issues, making the process more visual and effective, and increasing customer satisfaction,” says Jos de Bel, consultant at TMC software.
Jos de Bel and Arnold Houwing are both consultants at TMC Software and are experts in Agile Software development. Arnold explains how software is designed through a ‘waterfall’-process: “In waterfall, software is developed in the same way that a house is built. An architect is responsible for the design, and then somebody else follows the design to make the house in a linear process. So in the design phase you have to take into account all the small details. But the reality of building software is always different from the way it looks on the drawing board. Reality catches up on you, and suddenly the details you came up with simply aren’t realistic anymore, while the designing of those details took a lot of time. That’s a huge waste of time and money.”
An empirical process
“Agile proposes an empirical, often iterative development process. The most common Agile method in the Netherlands right now is Scrum, and Kanban is gaining a foothold,” says Jos. “The idea of Agile is that within a short period of time you develop something that is already more or less useable and ask feedback from the customer. Starting with the most important feature of the software. After this first delivery, Agile software development teams go back to the drawing board and directly use the customer feedback on the next feature. This brings focus to the task at hand and you are immediately able to use all the new insights you have gained.”
Arnold adds: “A first version of the software is released with basic features and the majority of the consumers are already helped. After that you get updates that often increase the functionality. So using Agile, you are able to help your customers much faster. For example, if a customer wants to cross a river, maybe he would specify a full-featured ferry. But if he just needs to cross the river himself, a simple raft would already solve his needs. If he needs to help other people crossing the river, the raft may be a starting point and it can be upgraded further with an engine, multiple seats and evolve gently into a ferry. But using the raft, the customer has already something he can use for his business and he has a good basis to decide if the next upgrade should be the engine or multiple seats (whatever brings him the most value). Eventually a full-featured ferry may not be the solution after all, but the customer may find out he needs a bridge or a tunnel instead. Or maybe the customer finds out that a raft with multiple seats solves all his needs and saves him a lot of development costs."
Change of mindset
To change the development process requires a change of mindset. Arnold: “The great thing is that you can let go of trying to control and manage the whole design, which is something new. Design and documentation stays focussed and grows with the product, in line with the overall product vision. It may be difficult at first, but it feels liberating. Everybody can work with focus on the feature that is being developed, so that as a result, productivity increases. Development teams become more engaged as well – within the team everybody gets more to say about the process itself and people get more power over what they work on. When you give teams that kind of autonomy and trust, it’s great to see what they are capable of.”
Jos: “It truly is an agile, flexible way of working. You are able to focus with a whole team on one task and at the same time keep a lot of options open. The whole process becomes more fun and easier for everyone.”