Following up on our recent post about blockchain ROI, I’d like to explore how to estimate the time for a blockchain software development project. This is one of the many questions our clients want to know when they’re looking for blockchain solution providers. Of course, the answer depends on several factors. As with all software development projects — blockchain or otherwise — the time it takes from idea to finished product depends on what you want it to do. You’ll likely get a ballpark figure. This is something our clients don’t really like to hear. So let’s take a look at why it’s such a challenge to estimate blockchain software development: and how can this challenge be tackled.
Though the process is similar to standard projects, blockchain software development presents new challenges. Balancing speed and accuracy is something blockchain solution providers have to do. Fixing mistakes in the code is not an option — so having a solid team of developers working on a project is vital. Aside from skill, however, the team you work with shouldn’t just write code, but also actively deliver business value through proactive work.
Outline what you’d like your product to do
Blockchain software development is a fairly new frontier for many companies — Espeo included. But that’s something we’re transparent about. Be wary of blockchain solution providers that give an exact deadline without grilling you on every tiny detail of the project. This is one of blockchain consulting director Dominik Zyskowski’s tasks.
Zyskowski collects as many details as possible and finds a close equivalent from our portfolio. “In the estimation phase,” he says, “you always break down this application into tasks.” As in any other development project, he splits the time into modules and functionalities to work on in two-week sprints. “But the most unpredictable elements in blockchain development are integrations,” he says.
In our experience, linking two blockchains together, or using several blockchain protocols in an application increases the time. He wants to do it right and deliver a solid product so he’s open and honest about the things that will take longer to figure out.
Treat it like R&D
Project manager Sylwia Rogowicz echoes Zyskowski saying we treat many of our blockchain software development projects as R&D. She’s also open about the difficulties in giving a timeline. For standard development, she can estimate how long the project will take because there are plenty of similar solutions. For blockchain, however, every project is a bit different. Some require pioneering innovations.
Take derivatives trading platform CloseCross, one of our recent projects, as an example. Espeo developers designed the blockchain backend and used some innovative technologies to address long transaction times the Ethereum blockchain is infamous for. Our team of blockchain solution providers implemented state channels vastly improving the UX of the app. Of course, we didn’t set out to use state channels to solve this pain point. After testing several other options, we found this was the best solution for the client and we decided to pursue it together. With blockchain, even well-defined functionalities from clients bring up new challenges to address.
“When you work with blockchain,” says Rogowicz, “you need to be very careful. You have to think about what can happen. When we put a project on the mainnet, there is not much possibility to fix it. We can’t change the code that’s already on the blockchain — it can be very problematic. In many cases, it’s impossible to fix.”
This means that developers have to be focused on accuracy while also keeping the big picture in mind. Blockchain solution providers need a keen eye as well as an understanding of how end-users will interact with an app. They also have to be careful and write clean code. “It’s not only about the knowledge but also the ability to predict what can happen. Blockchain developers have to obsess over user behavior,” says Rogowicz.
Developers work in tight-knit teams where they feel empowered to propose good solutions. This exposes the drawbacks, but also the real benefits of agile development. On one hand, it’s more difficult to estimate development time, but on the other, it helps ensure that the finished product delivers the best business value.
Trust your developers
Our head of blockchain Marcin Zduniak says agile development is ideal. “No client can give us all the exact requirements up front. We developers also aren’t able to collect them all. For projects that no one has done in the past, it’s a guessing game. A healthy relationship is when a client trusts our expertise, we simply charge for any time spent on the project weekly. Clients see the project’s progress every second week and they can stop it at any time.”
Zduniak encourages most clients to attend a blockchain workshop so he and the team can fully tackle the technology challenges. The workshops give clients a glimpse of how we work and allows the team to make more precise estimates. The workshops really help us come up with a plan to divide the work and a clear plan of attack.
Let a project unfold
Blockchain developer Tomasz Cichowicz explains that the technical solution in his mind often changes as blockchain software development unfolds. Understanding client expectations is a key part of his process. Once he has all the materials from a client, he wants to sit down and really hash out what they need.
“Some mid-level detailed functionality scope is really helpful to us. These include what users will actually do with the application — it doesn’t have to be thirty pages of specifications, but if it’s only ten points, it doesn’t give us that much. We need a little more context. Diagrams, where you see the user flow, mockups, wireframes, and designs, give us a visual that we can rely on.”
Clients often know exactly what they want, but lack the technical language. Having a team of experts not only write code, but also deliver the best product is perhaps the most valuable line item.
“We want to be agile — alter stuff as we go. It’s not a waterfall project where we try to meet a specification but forget about delivering actual value to the client. The thing is that we start with only so much detail and learn the domain as we go,” says Cichowicz. “What we end up with is often not what we agreed on initially. We want to work with the client week-by-week. So they can decide, ‘alright, this is the top priority now.’ With each sprint hey can get a feel of the product or change something and see that this is what they really meant. These constant alterations obviously can’t be estimated upfront but in the end, the clients receive what they actually want instead of what they roughly specified months before.”
Our clients want to get their products to market as quickly as possible. However, rushing it through without expert input could mean you’re not launching your best product. Of course, some blockchain solution providers will give you a set deadline for a blockchain software development project, but an expert team that’s transparent about effective solutions is far more valuable.
Working with blockchain solution providers that not only design but also deliver a sound product is what makes estimating development time so challenging. Releasing shoddy code onto the market could be disastrous. Balancing a reasonable development time and a stable, secure blockchain product will be worth it in the long run.