Most of the time I’ve heard people talking about how sales and other things are much more important than technical aspect of a company. That can is true in most cases. But for the companies in software and technology sector is it different. This might be true at the startup phase but it does not going to stay this way if the startup phase is finished. But there is a problem with thinking about technology and code quality in this way. The problem is that it does not consider the effect of technology on company culture.
I think the culture of the company is very important. Partly because if a company does not have a good culture, then attracting good talent becomes much more difficult. Also creating a good product requires good people in every aspect of the company. In this post I raise couple of points and arguments about why the technological aspect of a company maybe much more important then you might think. I also want to add that I’m strictly talking about the companies in software industry.
Importance of Company Culture
Company culture is one of the most important thing for fast growth and moving the business forward.
So the most important thing to have a good culture is its people as Gary Vaynerchuk mention in this video. Not only company culture determines what type of people the company is consists of, but it can also effect what kind of people the company can attract.
Good Developers Don’t Want To Work On Low Quality/Old Solutions
Companies normally want people who are very motivated and energetic about what they do. But in the field of technology, normally this type of people are the ones with the most update to date and deep knowledge. This type of individuals normally receive a lot of job offers and they don’t have a hard time find jobs in general. What this leads to is that these individuals choose the jobs that are not a technological dead-end and shows a promising future.
Now think about a company that does not care about the technology aspect. Do you think they can hire this type of people in the company? The answer is no, most of the time this type of developers don’t want to work for such a company. Well, because they don’t have to. We might argue that maybe a company is open to change in how it approaches technology and allow people to improved things. But if the technical culture became so weak already, it’s safe to assume that any attempt to improve things will get entangled in politics. I think a lot of developers know this and that’s why they choose not to be a permanent part of such a company.
That means the company closes the opportunity to hire good technical people. What a lot of companies fail to realize is that down playing the technological aspect is only makes sense when we are in the startup phase. That partially because people are not sure yet that their business ideas will work. So any extra effort to have a solid technological foundation might get wasted if the startup fails. But a lot of people say that rewriting a solution is not a good ideas and rightly so. So even in the startup phase enough care should be taken to make sure technical debt can be paid down the road.
Code Quality Contribute to Job Satisfaction
Solution that is built by old technologies and has a low quality standards normally bring lower amount of job satisfaction. That means the developer does not feel motivated and this lack of motivation leads to boredom. This lack of motivation means less investment on the part of developer and that means less work done. So there is value in keeping the technical people happy. One way of achieve this is through more care about the technical aspect. Both in terms of quality and the choice of technology. By doing that the company gains people who are willing to work harder because they love what they are doing.
High Code Quality Code Is Easier To Read And that Leads To More Work Done
High quality code normally is very intuitive and easier to read and understand. That means developers can spend more time writing a new feature than reading an entangled mess to understand it. That can bring a lot of business value to the company. Also increase the speed of development and delivery.
High Quality Code Reduce The Amount Of Training Needed For On-boarding
The more messy and entangled a solution is, the harder it is to read. But also more training on the solution is needed to onboard people. That means it takes time for people to become as effective as the people with more experience with the solution. But one can say that this expense is temporary, but I think it is not. If a solution is very transparent and clear we can better employ junior developers and that means less expenditure of employee salary.
In this post I raised some points regarding the importance of technology in a software company. I also discussed how it can drive other aspect of the company. Please feel free to share what you think about the points that raised here.