IT product development – scaling up
Grzegorz Papaj, 10 September 2019
I was motivated to write this article by our last clients’ situations, who had a lot in common despite being from different sectors of the market.
Here are some aspects that these clients have in common:
- They offer B2B IT products.
- They were founded by developers who were the first coders in the company.
- They have developed excellent digital products which are successfully implemented in Poland.
- They are successfully expanding to foreign markets.
- They are medium-sized companies, with IT departments making up less than half of the team (the others are business and administration departments).
- They have great dev teams who know the product inside out.
- Their own IT resources are not sufficient enough to fully meet the new needs arising from scaling, new markets, etc.
The success of their products puts them in a difficult situation. Someone could say “these are the problems we wish we had”. However, it is necessary to know that the management of a dynamically growing company faces many challenges. Paradoxically, business success can be a cause of huge problems if infrastructure and production can’t keep up. Besides the need to improve production efficiency, departments like administration, human resources or management, all have to bear new burdens. The company has to grow, recruit, and rent larger office space. Meanwhile, someone still has to plan and conduct marketing and sales campaigns, make key decisions. The management board must delegate the processes which were, until now, carried out personally (or at least closely supervised) to someone else. In the best-case scenario, delegate them to professionals. But searching for a professional takes time and management attention. Thus, creating a vicious cycle.
Using a military metaphor, the CEO becomes a general, fighting on the front lines of new business challenges and discovers big problems at the army’s rear lines. The quartermaster signals that the logistics efficiency is decreasing, and it is becoming increasingly difficult to call for reinforcements. Besides this, recruits not only have never smelled gunpowder but are also becoming younger, less skillful, and come not knowing the realities of the battlefield. The situation is not tragic yet, but an experienced general knows that he must take action now to prevent a tragedy. There are plenty of options, including withholding the offensive. But this would mean failure. Instead, it is better to use the help of an allied power. This is where we enter. Our landing operation provides fresh blood and raises the troop’s morale. Reinforcements arrive at the front, bringing not only vigorous and excellently trained privates but also officers and commandos. What is more, our staff officer is ready to support the general with his experience.
Perhaps I went a little overboard with this analogy. But it essentially reflects the situation described in this article. The situation of a software development company that is gradually (or rapidly) transitioning from a start-up to a mature company. Only until recently, the company had the management that supervised every detail of the product, employed every new developer, read every line of the code. But now it must focus on strategic business efforts. Even at the cost of executives forcing themselves to ignore details of micro-management level processes. They should be ready to accept the costs of employing someone to delegate day-to-day tasks to, someone to take off their shoulders, not only the burden of recruitment but also the introduction of new members to the team, managing new employees, developing or debugging the product. In this situation, the best solution is good outsourced programming. But only as long as it is well handled.
And that's the role we feel most comfortable in. Every case is a separate challenge, each with its own character. But they all have something in common. In each case, we have to enter into an existing project. Not only at the technical level but also at the organizational and even (or rather “especially”) business level. The whole process includes a couple of steps, which can be summarized as follows:
- recognizing the current situation and business goals of the client,
- getting to know the project infrastructure (code repositories, project management tools),
- analyzing the system architecture,
- gaining a qualitative insight into the codebase, configuration files
In this particular order!
At the operational level, we usually start the project in the same way – we ask the company to define a fairly self-contained, independent task (a new functionality, some additional module). When we face the assigned task, we go through all the steps mentioned above. Then, we ask for another task, and another, and another, until finally the client’s team doesn’t see us as just a supplier and we become a full-fledged business partner. After all, nothing builds a bond like a brotherhood in arms.
We solve a very specific problem. It took us a while before we realized that we do not only ensure high-quality developers and guarantee a predictable work pace in the project. Above all, we are taking a huge administration problem from the client. Thanks to this, the management department can channel its valuable time to business development, without worrying about the issues of recruitment, dev team management, and quality assurance. That's the way it is, sometimes it’s hard to realize what the greatest strength of your own business is.
If you want to know more about how we work and how we can help you in your situation, write to us via the contact form below. We will get back to you shortly.