An Interview With Dmitry Zhlobo the CTO of datarockets
datarockets is a software development partner of Your Software Supplier. They develop digital products in different business fields for their clients. Last week, our founder Renaldo Melkert has interviewed Dmitry Zhlobo from datarockets.
You’ll discover in this interview datarockets approach to giving more realistic estimates to their clients, and how they can help you with your software development needs.
Have a good read!
Who is Dmitry Zhlobo?
As the CTO of datarockets, I’m involved at the beginning of new software development projects and I help with the terms, processes, team introductions, and evaluations.
Besides, I consult our clients on the technical implementation of their ideas and making the right technology choice.
What does your onboarding process for new clients look like?
We start by having a meeting with the clients to figure out what software they want/need us to develop.
Our goal is to understand what their company is about and how they operate. We try to get as much information as we can to get a good grasp of our client’s business. We also ask them about their business goals, and the strategy they’re implementing to achieve them.
How do you collect the requirements for a software development project?
Usually, the sales team goes through them during the meeting with the client. Then, they agree on the process, because the processes at datarockets require constant collaboration with the client's team. If it matches, then we proceed to the next stage which is to collect the requirements.
So, at the next meeting, a project manager joins. There we discuss requirements, functionality, use cases, and prioritize the features.
Sometimes clients already have documents, mockups, or a description. Our project manager collects the requirements together with the sales team to make the Work Breakdown Structure (WBS)/ user stories. So later on, the software development team or the CTO can make the estimates.
On what points do you agree before collaborating?
We look at a couple of things. But the most important collaboration rule for us is the willingness to work with datarockets as a single team. Meaning that clients are ready to collaborate and have conversations on a regular basis.
It’s difficult to build great products based solely on specifications/requirements. Because, when you are developing the product, a wave of new ideas may come to mind which makes you want to change or improve things, or the business priorities may change which influences the development process. So, effective communication between us and the client is a very crucial point for the success of the project.
So, effective communication between us and the client is a very crucial point for the success of the project.
How does datarockets price a software project? (fixed / hourly rate)
We work on an hourly-based approach. However, when a client wants to know how much the project will cost, we discuss the requirements and prepare an estimate with possible min and max cost ranges.
We always ask if a client has an allocated or approximate budget for a project. Knowing the budget, especially when it’s limited, we can offer solutions on how to make some functionality simpler but still achieve the business goal and build the right product for the client.
Why hourly-based approach? Many conditions may change during the development phase and we don’t need to stick to the initial scope of work to make changes that may positively affect the client’s business.
On the contrary, we try to make crucial changes immediately and we are fine to deal with unexpected tweaks. It’s impossible to operate like this on fixed-price projects.
Our approach is based on building trust and bringing as much value as possible. If there are any doubts, a client can try to work with us for 1 month just to see how things are going. During this test period, both parties can establish trust and understand if they fit each other.
The Triple ‘F’ Approach
Another approach is FFF: fix time, fix budget, flex scope taken from the book “Getting Real” by Basecamp.
- Set up a deadline when a client wants to launch a project (by setting this deadline we know how many developers will work on the project).
- Break down the scope of work into User Stories and sort them based on their priorities
- Work on the User Stories iteratively based on their priority.
- Release new functionality as soon as it’s ready, sometimes we make multiple releases per week.
Ideally, clients want everything, but that doesn’t always happen. There are a lot of risks involved with software development. That’s the reality.
Working by the FFF approach we have a working version of the product at any time. When we get closer to the deadline, we can just stop and skip some minor features, but deliver the most crucial functionality under the budget.
What pessimistic estimate does datarockets give?
When preparing the Work Breakdown Structure (WBS) for the estimates, we create two columns: minimum and maximum estimate.
This stems from the fact that estimates are always a guess and no one knows the exact time a feature will take.
Thus we imagine the most positive and the most negative scenarios for every work unit. If everything goes well it goes to the “minimum”. But there is also a scenario where something goes wrong or takes more time than expected. Here you get the “maximum” number.
In our estimates, we consider risks and include them into the final estimate. It makes us certain that we do not create too positive expectations and won’t disappoint clients.
On top of that, projects rarely go exactly as planned: we may have unexpected technical challenges, or additional tweaks are requested by clients in the middle of the development process. To cover this in our estimate, we add a percentage for communication and stabilization.
What would you advise software clients for the pricing/costs of a project?
Product’s success rarely depends on how quickly you can build the software or how many features it includes. The product’s success depends on the team working on it. Find a team you feel comfortable working with. A team that you would love to work with.