TQ
dev.com

Blog about software development

Subscribe

Overengineering makes investors happy

18 Sep 2022 - by 'Maurits van der Schee'

Investors want tech startups to use a "latest technology" to gain an "unfair advantage" allowing them to compete in an established market. This "unfair advantage" may be a reason that the investment is going to pay off. Therefor startups may say that they are using (for instance) blockchain, AI and distributed systems and that it brings them a lot. The real reason startups can compete with established players is that they are small and efficient with a clear focus on what to build and no customers that slow them down. These things are also called "second-mover" advantages. But in my experience few startups dare to say they are using second mover advantages and are planning to win with better marketing and sales.

Complexity advantages

Unfortunately both management and development benefit from technological complexity. Developers like to work in an "innovative environment", they like to work on "interesting problems" not yet another CRUD application. It is better for their career as experience with cutting edge technology is a reason for higher pay, due to knowledge scarcity on these new (often hyped) technologies. They won't get pushed so hard to produce and get plenty of time to learn new things. Management will find it easier to hire people and can easier explain the high salaries they need to pay. Also managing more expensive engineers makes managers' jobs more important when evaluated by the board. One could say that the managers and developers are more than happy to fail as they change jobs frequently and the startup success may even be threat to them (real customers, real demands, real deadlines).

So now what?

I think we can all agree that technology choices are strategical. A startup should hire a skeptical software architect as CTO, not a latest tech lover. That architect should be allowed to make technology choices (programming language, database systems, application frameworks) and the company should stick to the choices made. Automated testing (including performance) should be taken into account from the start as those ensure a healthy software system. A centralized monolithic application may not be a popular choice, but nobody can argue it's low complexity and low costs. Don't dive into micro services or other forms of distributed applications if you don't need to. Most software can be build with a team of 3-4 developers. Add some people that focus on testing and documentation and you get a reasonable sized team.

Conclusion

Many startups will say they use "latest" technology as investors and employees want to hear that. If you are a second mover (lots of startups are) then it's my opinion that you shouldn't do this. Choose boring technology, set a clear goal, focus and invest in better sales and marketing.

Links


PS: Liked this article? Please share it on Facebook, Twitter or LinkedIn.