There are no two software development projects that are identical. In the same way, no two coders or project managers are identical. In order to release a successful design, it is important to define goals at multiple levels. First, one has to define what the best outcome for the software will look like. Once that is determined, the team can design the right work approach. Watch this video to learn about one of the many processes that are known for success.
Lean methodology is a waste averse and iterative process.
The concept of lean is to deliver the smallest piece of value that I can and validate that it works, validate risks upfront. It is all about paring things down both process wise and delivery wise.
It has a reasonable amount of crossover with agile, and I’ll come to that soon, and it is iterative. The process and product are incrementally improved by cycles of learning and development. You will have a part of your process that is stop, take stock. What have we learned from the most recent cycle? What can we do to improve for next time? Maybe there is nothing. It really has a focus on retooling before you begin the next piece.
What’s lean good for?
Lean methodology is good for addressing risks quickly and cheaply. You might have a desire to do a product that has integration with a third party API. You need to address that risk very quickly. If you have trouble with that third party API, and third party integrations are the worst part of software development (i.e. integrating with an existing system that requires documentation of how you’re supposed to integrate, sometimes that documentation may not be true to life), you want to find out if that is going to fail as early as possible before you’ve spent all your money. If you find that out later on in the process, you end up with budget overruns etc.
It has a high focus on market validation and making a successful product, and not the ‘right’ product. So in this case the ‘right’ product is your vision. You came into this thinking I’m going to build this exact thing. This is the way it’s going to be, everyone is going to love it. That is not the focus of lean. Lean is about building something that the market actually wants. That’s better than having built the thing that you wanted to build and having no market for it whatsoever.
It empowers the team. It improves engagement. People within the lean process are actively advised to raise their hand and say, I think we could do this better, I think we could make this change or that change.
Downsides of lean
Lean methodology requires a high caliber of people in your system. If you don’t have people who are good at adapting to change and good at working across multiple disciplines, or at least doing the thing that they do really well, it’s not a great fit for you. If you have people who are just going to say, “my job is done, I’m not going to think about it, I’m not going to give my consideration to the full picture”, it’s not a good fit.
It requires buy in from stakeholders and commitment to the concept. If you do lean incorrectly, one of those hard ones of dogmatism, it can break down because there are certain parts of the principles that need to be adhered to in order to get the most out of it. If you think you’re doing lean but you increase the scope until you’re releasing something that is not really lean at all, you think the lean process has failed. What has actually failed is you haven’t done the work to really work out how to pare down your releases and release something small.
It requires flexibility in the team. They need to be quite open minded about the running of the project. I include in the team, the client. You need to all be engaged in what it is you’re trying to do.
If your software project fits the right kind of criteria, you may wish to develop a process that allows for small goals that could require constant revision. If you know how to do this correctly, you can design the outcome of numerous useful software programs or utilities. Each of these can include a monetary value that is the result of intense coding. This requires the discipline and organisational skills to work until all errors are ironed out. But it also lends itself to a certain amount of future creativity and flexibility, where other processes and systems can interplay for functionality and successful releases. Deciding on the process that is right for your project will have a huge impact on the end result.
Are you trying to figure out the approach to software design that is going to work best for you? We can help! Get in touch with us today.