Strategies for custom and product development

Software development is hard and expensive. It has always been difficult and expensive. Especially in modern systems, with a bunch of microservices, integrations, and interconnections. And if there is a chance not to write code, but to take a ready-made solution or a constructor, take a constructor.

We are no longer in the sandbox. There are dozens and hundreds of artifacts in the picture of the world of digital projects that need to be monitored to release and maintain a worthy product. And yet, at some point, the designer will not be enough. Yes, and competition, mainly goes to the field of manufacturability. And you'll have to deal with it.

When your tasks have outgrown boxed solutions, by and large, there are three options: turnkey custom development, outsourcing, and in-house team.

Custom development

You write to the agency. Discuss the issue. Dedicated development company conducts analytics, and collects requirements. Draws prototypes, and designs. Writes code. Starts a project. Engaged in technical support. The agency takes on many technical and organizational issues and risks.

Such teams are best suited for launching a product from scratch because they have experience and competencies, and they do not need to be assembled. The fastest way to release and develop an MVP is in custom development.

Minimum Viable Product - The minimum viable product is the concept of launching software products in stages: first, the most important, albeit small, but of value to the consumer; then - running in the market, collecting feedback, and releasing the next versions.


  • Fixed or flexible cost of the contract/stage of work. Depending on the task and stage of the project, you can use either a fixed contract price or switch to a flexible model, paying for the actual time spent. Many clients prefer fixed-cost work because of its predictability. And it really works well at the start of a large project. However, after the launch, when new tasks and Wishlist are flying into the project from all sides, there is no time not only to formalize tasks and estimates but also just to delve into the essence - the only way to maintain high speed is Time & Material. You can combine these models.
  • Do not worry about team downtime. Load balancing is one of the toughest headaches in an agency. On the one hand, you can’t allow the team to be idle: it’s damn expensive, it relaxes and leads to unnecessary thoughts. On the other hand, you need to have a reserve of capacity to be ready to quickly join the client's tasks. If the boss wants all his subordinates to always have work from here to retirement, with maximum intensity, the universe will give such a boss work without days off and insomnia to boot. However, now it is a headache for the agency.
  • No need to think about hiring, training, or motivation. Which takes a lot of energy.
  • You can DEMAND, and not graze cats. Kittens are smart, well-fed, independent IT people, with a good sense of self-importance. It is sometimes difficult for them. And here - you can demand. It is, after all, an honor!
  • All sorts of interesting things with payments. Well, you know these games. The seal was lost, the accountant forgot the account on the table, or “we have a payment day - every even Wednesday of the month, from 11:00 to 11:30.”


  • The main disadvantage of the agency is the lack of focus. Most likely, the manager during the day switches several times from project to project. Developers can also be refocused. This week - one thing, the next - another (which, by the way, is not bad for their growth as specialists and maintaining interest in work if the tasks are interesting). Lack of focus is a consequence of the ragged workflow that is characteristic of custom development.

Own team (in-house)

Your own team is justified if you have from 1000 hours per month of stable download. And it is clear that such a load is not a temporary phenomenon, but it will be so for a long time.


  • Speed ​​and flexibility - until you get lazy and fat. It's not so clear here. According to my observations, many programmers who have worked on the client side have a halo. Especially for those who felt their indispensability (“I am the ruler of 1C, and what the hell are you going to do with me”). The sense of self-importance skyrockets. And they really don’t do anything to do (they only whine infantile, grumble, confuse everything, and run away from responsibility). Agencies don't like that. But in client teams - a common occurrence.


  • Downtime, hiring, training, motivation, jambs have to be paid. There are risks and a lot of work that has to be done every day to build a team and keep it in shape. There are many good practices for the formation of such teams, about them - below.
  • In agencies, however, there are more different competencies. And if you need something specific that your team has not dealt with (for example, setting up analytics in a mobile application), you can spend a lot of time growing this competency internally.
  • The leader is unfocused.

Post a Comment

Previous Post Next Post