Sat, 26 May 2018
# A hacker and a nerd - the two hats of engineers
Table of Contents
From my experience working in 3 companies which were developing a product, I can say that 80% of code we produced was redundant. I mean it was developed to support services that did not find the “product-market fit”. In other words, founders’ assumptions about what market needs failing after significant investments into development rather than before that.
# Find your market fit before investing in the code
Qualified engineers want to build stable, solid and secure systems. This is what quality software product means. It involves designing proper architecture, network, development and testing processes, deployment process and so on. In other words, we build system which grows, evolves and remains secure. The downside of this is it takes a lot of time. This is counterproductive for a product with no market-fit found.
In general on this stage IT team should not build anything, instead, it should reuse existing services, APIs, code packages to make a product and find the product-market-fit. In many cases, you don’t even need to write any code. For example, make a landing page on wix.com and add google analytics to it, then buy some traffic from Facebook(put your website link in front of your target audience) and see what happens. This is when the engineer must not follow his natural desire to build beautiful systems but instead switch to a "hacker" mode. When the team needs to validate some Idea I try to find the quickest no-coding way which brings the answer as fast as possible. The question was – does this product fit the given market?
# Invest in the code when you are confident in the product
On some stage of testing hypothesises we find something that sticks. A variant of the product that gains traction in terms of visitors, signups, questions, feature requests and so on. This is when we need to start growing the product and this is when we need to throw the prototype away and build on a solid foundation. This is when an engineer must do his best to design and implement a safe and secure system which will grow and be adaptable. Hopefully, next months team will grow, new people will come to work on the codebase and it must be clean and enforced with strict development processes.
Well, now I can be a nerd and invest enough time in building the proper system.