Why is this interview a must-read?
DigitalSuits is a software development company that focuses on E-Commerce and SaaS solutions mostly for startups and small-medium businesses. The company was founded 5 years ago in 2016. We have profound expertise in such domains as e-commerce, real estate, insurance, and fintech. We are experienced in software development, but we also have our own experience with startups. One of our co-founders has founded 2 startups and got investments from accelerators so we know this matter inside out.
- Why is this interview important to share?
This interview is about our own practices that we use in our work and with our clients. These tips help us to achieve the best results and our clients — to get the results they are eager to achieve. Moreover, certainly, I would like to show what’s under the hood and to share my own and the company’s experience — how we work, how we provide our services and how we treat our partners and clients.
- How could it help your clients?
The readers can figure out and choose the most interesting and helpful practices that we use. They will be able to get an upfront understanding of our work, the model of collaboration we follow. It is always good to know a bit more about your future tech partner — our clients are able to learn about us a bit more in this interview.
- What are the reasons to share this information?
I’m eager to share my own tips, pros, and cons of every approach that we are going to discuss. It is a must-read for all business people who are going to be involved in the software development process. Here I want to answer all “Why’s and How’s” of the software product management process. Every startup and every product faces challenges. Thanks to our startup experience and profound knowledge of the industry, we could prevent or minimize their effect on our clients. This information will help you to collaborate in the best way, to achieve the set goals, get investments, deliver projects on time, and avoid any kind of challenges.
- How can custom software development help small and medium-sized companies?
Custom software development can leverage the process of automation within a company, for example, robotic automation or digitalization of the manual work. It is a great tool to reduce employee costs and to speed the processes. For instance, if a company wants to automate some internal processes, business owners will not only achieve cost reduction but also avoid mistakes and failures and be sure that the work will be done no matter what. Sometimes humans are not able to deliver work on time — from now on, everything can be automated and done by special programs and software created for the unique needs of the company.
Clients’ Roadblocks and Pitfalls
- Who are your clients?
We work with SMEs and startups. Some of our clients are tech agencies — they develop services and products for their clients and collaborate with us on partnership terms. Still, the majority of our clients are startups. We share our knowledge in software development with them and consult them on how software or a product feature may affect their future roadmap or future investments. Working with SMEs we help them to digitize and automate processes.
- What do they usually want?
There are three various types of client requests: Firstly, to develop a software solution so all people all over the world could use it, and secondly, to get investments. Just to give an example, the last client that we started to work with in the summer wanted to create an event platform that combines online and offline participants to be a part of their event. It doesn’t matter if you are staying at home or you are at a real event offline. We delivered it in less than 2 months — the 1st deployment was in 45 days from the beginning. Right now we keep improving this system, supporting on-going events and new events. Later on, we have plans to extend the system functionality.
Secondly, other software development companies require to extend their products or teams by software developers. Finding a tech partner to collaborate with is faster and more reasonable than hiring new developers. Companies need to equip office space and environment, provide a complete recruitment process for newcomers. Moreover, there are many corporate responsibilities with them. That is why it is easier and faster to find an agency that will provide experienced software developers when there is a need.
Thirdly, software development companies outsource and build partnerships with us if they don’t have enough in-house resources or domain expertise that we have. Thus, we collaborate with them to complete and deliver any type of project. We have such clients working from Canada and the US.
- What level of expertise in software product development do your clients have?
It varies. When we deal with startups, there are some technical guys in the team, but usually, it is not enough to deliver the project by themselves. They are aware of some technical tasks, but they focus more on doing business, attracting and retaining customers. The right way for startups is to entrust software development to us. We’re responsible for the technical side of the project, they go for business.
On the other hand, our outstaffing partners have teams of developers and profound knowledge in development. They require just to extend their team as soon as possible.
- What do you find most challenging for your clients in software development process?
In the beginning, the most challenging part for every client is to understand what they want to achieve in the shortest period of time. If we consider startups, they usually struggle with focusing on the main features of the project. They are eager to chase two hares at once — to be on track and to continuously add new features to the product. But this approach makes the development stage overcomplicated and doesn’t pay in the long run. That is the most demanding part of our communication.
Certainly, the next thing that our clients take into consideration is time. They are worried about time-wasting and tight deadlines. Every developer tries to avoid hard-coding and poor quality of code. But if you force the development team to work at a high speed and to hasten the development stage in general — it may affect the quality of the code and as a result the product quality. Secondly, being in a rush, startups don’t have enough time to make the product better and to finalize some features. They need to find the right balance between being in a constant rush, making never-ending product improvements, searching for game-changer features and wishing to please all customers.
- How do you feel about it?
Now I’m OK. At the beginning of the road, I didn’t understand that business can be different. Now I do. Sometimes you need to develop hot features and deliver the result fast at the expense of quality. It could pay you off and bring much more than doing everything in a correct way. But now I always remind our clients that it is really important to dedicate some time in the future to improving features that were developed at a high speed.
- What are clients’ pain points and how do you help them?
We put ourselves in their shoes and analyze the situation. Eventually, businesses may not understand all the consequences of different approaches in software development. We are like “referees” between their requirements and their needs. We help our clients to stop, take a breath, and think about every decision.
Here is a recent example: we were developing an online event platform for our client. They took a really fast pace to deliver the project and also tried to make every feature very special and important. It brought them to a point where they were overloaded and the team was demotivated. We highlighted this situation many times, but one day we asked them to join the call and discuss it. Eventually, we drew their attention to all the circumstances that they could face in the upcoming future if they didn’t stop being in a rush. Actually, it was not only about the fact that they may lose the team but also about the business and product as well. They were so inspired to deliver their amazing project through COVID-19 times and provide people with the opportunity to be a part of any event. The point is, delivering a product of poor quality but full of features would not have worked out for their business, product, and team members. This is what we tried to explain and we did it successfully. After our conversation, they agreed with us on many points.
The Definition of “Successful Software Product Management”
- What does the definition of “Successful Software Product Management” include?
It includes proper management at all levels. I mean, not only development management but team communication and management, development management, client expectation management. There are also subpoints — communication, plan of delivery, clear requirements. Software product management consists of many parts. I can’t highlight just a few, because it depends on the situation — when dealing with different businesses, the prioritization may shift and some points will be more crucial than others.
When you have a product idea, there are a lot of steps between the idea and the product that can deliver it. That is why we start from the beginning — gathering the requirements. Basically, software product management is the list of requirements that the client should complete before delivering the product to customers.
The List of 10 Best Practices Of Software Product Management
1. Define a clear scope of work
It’s about the idea. When you have an idea, it seems easy to understand. When you try to explain this idea, it becomes more complicated. It makes you get a new angle on your idea. The key point is that if you have a vision, you can define a scope of work. Write it down — and you will be able to understand the idea better, improve and explain it to others. Our experience shows there are plenty of situations when a client only has a vision of the product. And here is our turn — our mission is to define requirements and help to understand the idea and product better. This is called “Discovery phase”.
Here is the guideline on how to define the product requirements:
- Write documentation where business goals, needs, and the way to achieve the expected result are described;
- If the above is too complicated, then prepare a list of questions to describe the main goals and achievements you are striving for. After that, answer the questions;
- Don’t hesitate to spend time on it. It costs you time in the beginning but will save you much more in the future.
2. Vendor selection
You need to outsource software development in 2 cases:
- you don’t have in-house developers;
- your in-house engineering team don’t have enough expertise in the specific domain.
In this way, it is better to have a reliable partner who matches the requirements. When the vendor has proper expertise in the domain, it will take the client less time and money than if they were investigating everything from scratch. So I think that finding a vendor should be aligned with domain expertise as well.
- How can one find a good outsourcing company?
Start from research. Firstly, pay attention to the domain expertise — it increases the chance to make the product more successful. Secondly, find clients’ references, reviews, and external information about the vendor. You can find useful information about the vendor on external platforms like Clutch and GoodFirms. If you see that clients collaborate with the vendor multiple times, it means that this company did its job well. It is much easier to keep working with a trusted vendor than to find a new one. Moreover, it increases the chances of delivering the project and making the client satisfied.
- What are the criteria of “being a good outsourcing company?”
A good outsourcing company means:
- proper expertise and 2) excellent communication. The latter is one of the most important parts of every collaboration. The effectively managed communication and provided transparency allow the client to stay calm and happy as there are few questions, there is a clear understanding of what is going on, and there is no need for double-checking.
It is crucial with every client, but even more important with clients from a different time zone. For example, we have 7-10 hours difference with clients from the USA. Here communication, team management, client expectation management is crucial.
- How can one get started with offshore software development?
First of all, you can arrange an interview or set an introduction call with C-level managers. Ask them the following: how they do their work, what approaches they use, how they manage clients, ask them to provide client references. You need to talk to people, to see them — it helps you to understand them better. At this stage, you already can decide if you are ready to move forward with them or not. Moreover, you can always google and find everything.
3. Task estimation
Task estimation is essential in software product development. During the estimation phase, it becomes clear what functionality is required to achieve the goals, how to sort it out and how to plan further development.
- Who is responsible for estimation?
The team that is going to deliver the project is responsible for task estimation. One of the fatal mistakes is to rely on an estimation that is not completed by the team that will do it. I am sure that sometimes clients face an under-or-over estimation, which actually is not a good approach. Clients are looking for transparent and fair estimation. Also, there can be some hesitation because clients are not aware of the whole process. On the other hand, it’s necessary sometimes to give a chance to the company or the vendor to explain their estimates. As their expertise was called upon and they know how to deliver the project, it is worth giving them a chance to explain the estimation and the work they are going to do. After that, you can decide.
- How long does it usually take?
It depends on the project size. For small projects, we provide an estimation within one day. If our client requires a large project estimation or if it requires research, we usually provide it within three days.
- What do you do if you can’t predict everything?
In this case, there are two approaches to prevent such a situation:
- We use the range of min and max hours. We analyze how much the task will take according to our experience.
- We provide our confidence level. Depending on the requirements, we rely on the history that we have. Here are examples of confidence level legend:
20-40% — there is the only vision of the project, details and technical information are limited or absent;
40-60% — technical requirements are quite clear, but there is a lack of details;
60-80% — the project scope is defined, but some technical details are needed;
80-95% — the work scope is defined well, technical details are clear;
95-100% — the team has profound expertise in this type of project and delivered the work many times before, no details needed. We also provide comments and assumptions. It may help our clients to understand how confident we are. For example, if there is no design but only a vision, it’s really complicated to provide accurate estimates. However, speaking about typical tasks that we developed before, we make an approximate estimation with a higher or lower confidence level.
What does estimation include?
Simply put, estimation includes time for project management, development, requirements, investigations, testing, delivering, and communication.
Why do we include communication here? Team communication is very important as team members need to communicate to do their work better and faster. Also, there are daily or weekly meetings with clients where team members are involved in communication. All in all, our estimation includes all this work.
Moreover, the estimation should always be agreed upon with the clients, as there they can see the list of all vital steps to deliver the project.
- The clients say that they need it faster and the budget is too high. What do you do?
It happens quite often. For this reason, we schedule a call with the client and explain our estimates. We try to find alternatives to change the cost or a timeline by reducing some features or unnecessary functionality, or even assigning more resources to speed up the process.
- How do you fix software dev cycles that are taking too long?
Firstly, we investigate reasons why it is taking that long. We figure out every issue and discuss it with the team. For that, we do brainstorming and retrospective. Usually, it’s a part of project management. After that, we find ways to make improvements and move forward.
- What tools do people use for product planning?
Here is the list of the tools we use in our work: Gantt Charts, Jira, Confluence, Toggl, Basecamp, or even Trello. Jira is an awesome tool that provides Project Management with almost all features that are needed, like roadmaps, charts, and schedule. It helps us to plan our work, give an approximate project roadmap with timelines and time to deliver. This tool is a good solution for showing the roadmap to clients and delivering the whole picture of the software development. For smaller projects we use Basecamp. There you track all the document changes, task statuses and go through different projects. Sometimes we use Trello for small projects and tasks if there just a few improvements are needed.
- Please, give examples of the metrics that you use
Metrics help to predict future development timelines. A Burndown chart helps to understand if we are on track. At a Retrospective we look back at our achievements and roadblocks and reflect on how to improve.
Basically, we don’t use a lot of metrics, because usually it is not required. We use just the most important metrics that show: that we are on track how much the team is able to deliver during a time period
Here is the list of metrics we mostly use:
- Cost Performance Index (CPI) = Earned Value / Actual Cost. It shows the value of the work actually performed (earned value) by the actual costs it took to accomplish the earned value.
- Schedule Performance Index (SPI) = Earned Value / Planned Value. It shows the difference between work scheduled and completed.
- Customer Satisfaction = (Total Survey Point Score / Total Questions) x 100. It provides a measure of quality for our service.
- Productivity shows the overall capabilities of a team and how well it uses its resources.
- Quality metric shows the number of defects fixed per user acceptance test.
- Scope management shows the number of change requests per project or iteration.
5. Prioritize all features and functionality
Answer the following questions and write down simple answers “What features should I do more of? What features should I get rid of? Where should I innovate?”. It is important to be ready to de-scope some features to save money or to speed up to enter the market sooner.
In the beginning, it’s crucial to make a MVP or prototype of the project. A Minimal Viable Product (MVP) is the easiest way to touch the market without a complex solution. It allows you to be flexible in changing your product and choose a different direction. Building features with a MVP mindset ensures you don’t build wrong things upfront, since it forces you to rely on feedback over making long-term assumptions.
Sometimes, a prototype makes sense as our client can share it with potential clients or investors and get valuable feedback.
- How long will it take to develop an MVP/ PoC? What factors influence this?
It depends on the team size, but it may take from 1 week to 2 months. The factors that influence the time of development are: the size of the product, the scope of work, the final product that clients want to deliver to the world.
6. Product roadmap and strategy
Making a strategy, keep in mind the Now, Next, Later states. Simplifying allows you to focus on Now and Next, and to keep Later out of sight.
- What does the product roadmap look like?
A product roadmap is a shared plan of work that highlights the direction and task prioritization. Looking at the product roadmap you can understand the scope of work, the list of features, and then plan your work accordingly. It’s like a schedule where you can see the ideal way of delivering the project, special features, and some developing steps you are going to complete during a specific period of time. You can clearly see the deadlines and the timeline of the development. We share roadmaps with our clients as it makes it easy to understand the development process and provides transparency.
7. Team performance improvement
To improve team achievements with minimum required actions, we do a retrospective. It is a type of regular meetings, where we collect data, sort out issues, determine actions and make a plan for implementing changes in the future. A team lead or a project manager should be prepared well for the meeting and have a list of points that should be improved. It should boost the process, make the work smoother and enable the team to perform better.
Also, we practice stand-up meetings. They are daily checkups of the progress. To avoid misunderstandings within a team and to provide good communication, at daily meetings all team members understand the responsibilities of others. Thus everyone is aware of the common scope of work.
It is necessary to be on the same page with the team. We try to prevent any critical situations when the team is demotivated, exhausted, and does not perform well enough. That is why we invest resources in their motivation and help to manage their feelings.
8. Communication tools + communication plan with vendor(-s)
It is quite obvious, but well-organized communication saves a ton of time and makes the process smoother.
- What is a communication plan?
In our work, we have a communication plan as we value quality communication. To provide a high level of transparency, we provide constant meetings with clients, sprint or week reports, time reports, product roadmaps. Our client should always be aware of what is going on in the project. We always stay in touch with the client and set up our own schedule of meetings based on the client’s preferences. In this way, they’re able to manage their expectations.
- Tips for organizing communication?
As we care about communication, we use special tools like Slack, proper Task Management Systems for daily and weekly reports, and Confluence to track call summaries, to keep the team posted on the project updates, and to store information in one place. These tips are the minimum that is necessary for good communication.
9. Thoroughly assess the business impact of any architecture enhancements
Any architecture enhancements can have a significant impact on your customer and the future of your product. Answer these questions before you start developing and spending money on new features. This way, you can understand the real necessity of a change:
- How will this modification improve your customers’ lives?
- Will the change impact the total cost of the product?
- Will the change impact performance or usability?
All in all, any product enhancements influence the total cost of the project. Then it’s vital to weigh the pros and cons. The client has to be sure that enhancements are necessary to implement as product users crucially need this functionality. Also, another option can be considered as well, for example, to deliver a feature differently, like an extension or even a separate solution.
If it does affect the final price, then the feature can be delivered for beta testing or presented to investors and clients to collect their reviews and feedback. A good way to check the necessity of a change is to deliver the feature in a simple way to understand whether there is a real need for functionality extension.
Developing a product, we should always think about the end users. All decisions should be made in accordance with customer-centricity and added value. If changes make the product easier to use, improve the usability and performance, they should be implemented without a doubt. If opposite, they don’t bring any value.
10. Engaging with customers and partners & Analyzing other products and competitors
Thanks to our profound expertise in working with startups, we know the importance of the interaction with customers, partners, and the market. Their insights are critical and invaluable for understanding the real product value.
Moreover, having analyzed the chosen market niche and products, make a short survey and collect analytics to learn how customers interact with your product. Keep in mind what you liked the most in the products you used and move forward with this knowledge. Try to understand if this functionality is required in your product, and if so, how to make it better.
- How many small businesses do all this and how many are successful?
Actually, not everyone follows these tips. More than that, it doesn’t mean that those companies are not going to be successful! In most common cases, businesses just use the most suitable tip in the specific situation. As for DigitalSuits, once we work with clients and partners, we make the process easier — communication, collaboration, the scope of work. We always try to find a balance between features and real requirements. After that, we move forward.
Recommendation: Books to Read
- What books do you recommend for entrepreneurs who are going to work on software product development?
- Deadline by Tom DeMarco
A novel shows the Project Manager’s day-to-day realities. This book teaches us the art of keeping everything under control, not going astray despite all the events, people, and obstacles.
- 45 Tattoos of a Manager by Maxim Batyrev
This book tells about 45 mistakes and lessons learned from them. These are vivid stories that show you the simple truth. But it's always interesting to dig deeper and find causal links.
- The Goal by Eliyahu Goldratt
This book is about the manufacturing process. Looking from a different angle, we can see that the main idea behind the plot is to learn how to get rid of everything that bothers and to improve everything that boosts you. It teaches you to think systematically and consistently, find bottlenecks and reduce costs.
- The Art of War by Sun Tzu
The best reading for choleric people who experience difficulties managing themselves and for those who want to learn how to think strategically. It shows how tactics, thoughtfulness, prudence, and foresight of daily actions affect not only the result but the process itself.
- Waltzing with the Bears by Tom DeMarco and Timothy Lister
This book will help you to "love" the risks and realize the fact that black is not always black and white is not always white. It teaches you how to find benefits and opportunities where, at first glance, everything seems to be a failure.
- No Compromise by Chris Voss
Win-win negotiations with extremely high stakes by the top FBI negotiator. It will be useful to managers and everyone who faces negotiations with clients and the team.
There is already hype around some of these books, and some are not about project management at all. None of the books are textbooks, tutorials, or guides to action. These books help to broaden your horizons as well as imaginative, critical, and strategic thinking. These extracts will probably help you someday to turn knowledge into action and bring these ideas to life on your projects.
I hope you found answers to your questions in this article and I revealed the software product development process. If you are interested in product development and you need our help — contact us by filling the online form or chat with our representative on a chatbot.