This is a slightly different type of blog post, focusing not so much on technology rather on a way of doing things, and in this case, the best way at developing a complex and large solution. First off, let’s give you a little background. The reason of this post is because my own company is currently finishing off our first release of our Zync Wallet digital wallet product, which in old school IT terms, is a complex project to say the least…So, when undertaking this “project” it was highly important to me to ensure we use the right methodology for delivery, and delivery is the key word here. Actually, “methodology” probably isn’t the right word, what we needed was a “framework” for delivery, and that’s where SCRUM comes in.
We have been very lucky in being able to aquire the right talent for our project, and when I say the right talent, sure I mean the right developers, people with the right skills, but also people who understand SCRUM, people who work well in a team, people who communicate well and at the end of the day, people that know how to deliver product.
As a stakeholder, it’s important that the product that is delivered by our development teams is exactly what our vision of that product is (vision as a company), that the features, functions etc are just as how we see them to be. SCRUM gives us a framework to ensure that the product delivered is as we expect it and want it to be…
I’m not going to say it’s been plain sailing or simple, especially as my own role as CTO has been split across other requirements, meaning that my own input into the vision of our product has sometimes not been available to the development team.
What is SCRUM
Most of my readers I’m sure know of SCRUM, but if you are new to it, essentially SCRUM is an iterative and incremental agile framework, typically, used for Software Development, but I would never limit it just to software development. I would argue that SCRUM can be used for anything as long as it has an objective that is a measurable deliverable. SCRUM is ideal for solutions that are complex, where it’s hard to know up front your actual requirements or implementation. In such cases, feedback loops make up the core management technique, and that’s ideal in ensuring you deliver actual products. In SCRUM your deliverable is not a project rather project is a dirty word, everything is about delivering product. As a stakeholder, that’s perfect as you get to see your “product” grow, provide feedback and ensure at the end of the day that the product you have in front of you is actually what you want.
Not only do we use SCRUM for our development efforts, but we are now starting to apply SCRUM to other areas of our business, areas that include things like marketing campaigns, sales, even customer management!
Sprint to success
We are using the SCRUM framework for all our software development here at CloudZync. SCRUM puts emphasis back on the professionals who do the actual work, who actually deliver the end product, in this case our software solutions. Splitting up the whole solution into smaller manageable chunks (known as Sprints) ensures that all work carried out is actually usable and contributes to the overall final product. At the end of each sprint the stakeholder (me in our case) gets to review the product results of that sprint. What’s great here is that I get to see our product grow and “play” with the deliverables. By actually having something to use it makes it much easier to identify anything that’s missing, new requirements etc. These can be feedback and taken on board.
Mocking things out
One of the reasons why SCRUM is so viable to development work, like our own, is that development technology has moved on. “Mocking” allows us to effectively pretend that components that are key to another function actually exist and are available for use. By “Mocking” these components it allows multiple development teams to move forward without waiting on another team to complete their own work. In terms of our sprints it means a sprint can consist of multiple development teams, none of which will be held up by components that are to be delivered in a later sprint.
If you are about to embark on a complex solution, to deliver an IT product or something else, then SCRUM is an ideal framework to ensure you actually deliver what you set out to do. There are numerous examples on-line that illustrate the power of SCRUM, the most obvious being an old one, and that’s a case study with the FBI.
From my own experience, SCRUM allows you to deliver usable products that can be reviewed at the end of each sprint, it allows us as stakeholders to guide the product correctly and to actually ensure product is delivered at the end of the day. All too often IT projects fail because of lack of information up front, or because change management becomes too complex in complex solutions. When in this state, IT projects spend so much time in documentation, change management, requirement re-focussing etc again that actual tangible product simply never gets delivered. If you want to deliver product, then SCRUM is the way to go…