⬆️ ⬇️

Your company has a debt of knowledge

When your company lacks experience in tools or technologies that can make it more productive, it has a “knowledge debt” (knowledge debt).



At the same time, companies themselves often work in such a way that they only increase the problem of knowledge debt. Look at this rather typical example of a job:

Initech is looking for an experienced Developer who is ready to join our team.



Tasks

- Development of the system core and backend components

- Analysis and improvement of efficiency, scalability and stability of various system resources

')

Requirements

- MSc in Computer Science or related field

- 2+ years of Java experience

- Expert in relational databases and query optimization in MySQL



Most likely, this company uses Java for most of its products, and MySQL for backend. Naturally, the company wants to hire people who have the same set of skills and will be able to immediately enter into projects and start working.



But this approach has a fundamental flaw. The company must hire people who can solve problems, program and who will fit into the team, and not having a specific set of knowledge.



Other things being equal, the company should prefer candidates who have experience in different technologies . Any truly intelligent programmer will be able to choose the appropriate technologies needed to work with the existing code base. Hiring people with different skills and knowledge will give you instant experience in new technologies to solve your problems.



Recognition of the duty of knowledge



Every time a new language, database, tool or technology is invented, the company accumulates a debt of knowledge. Unless the company is trying to actively deal with it, it will continue to use all the same old tools and technologies with which it is “comfortable”, will start to fall behind and, as a result, will turn into something like companies using Enterprise Java today .



Just as technical debt involves the payment of interest in the form of manual work and the cost of support, knowledge of the debt also has to be paid with lower productivity.



But you must recognize the debt of knowledge before you begin to fight it. Each company in which I had to work suffered from it one way or another, especially large companies. People usually find it difficult to get out of their comfort zone in order to solve problems in different ways and with different tools.



Fight the duty of knowledge by experimenting



You must begin to make a permanent effort to fight the debt of knowledge, or you are guaranteed to fall behind. And one of the ways to deal with it is to sacrifice productivity in the short term, experimenting with different technologies in the hope of improving productivity in the future.



Experimentation can be difficult on large systems with a lot of legacy code. Small, fairly independent projects will be the best candidates for experimentation.



For example, I first tried Clojure to implement a Thrift service that collects records on a distributed file system. The project was independent of the rest of the codebase, which made it a great candidate to try Clojure. The project taught me a lot about Clojure, which eventually became a great success for my company .



The tools you use for your own productivity are some of the best candidates for experimentation. Try a new editor for code like Netbeans or Emacs . If you're used to Subversion for version control, try Git for new projects or for your open-source projects.



In the end, your company must develop a culture of experimentation and encourage people to move out of their comfort zone.



At the same time, paying debt knowledge through experimentation, you can increase your technical debt. . Using various technologies, you can diversify your infrastructure and make it more complex. At some point, you may have to pay for it when you decide to combine technology.



Fight the debt of knowledge hiring people



As I mentioned above, another good way to combat the debt of knowledge is to hire people with a different set of knowledge and skills. This path will give you knowledge of the pros and cons of various technologies without having to go through it all on your own experience.



Of course, the fact that you have people with some kind of knowledge does not mean that your company will be able to effectively use this knowledge. You need mechanisms to let other people in the company know about it. There is no single answer to how to do this, but one of the solutions is to have regular internal presentations in the company, telling about the tools or techniques to the rest of the team. Or, for a larger company, have an internal database linking people and technology.



Conclusion



In addition to long-term benefits, maintaining debt knowledge at a low level has more subtle benefits. Low knowledge can help with the recruitment of people, since good programmers often want to work with the latest and most advanced tools and technologies. Dealing with the debt of knowledge also opens up several different ways for you to look at problems, which makes you more efficient even with old technologies. As an example of the last statement, Eric Raymond has a famous Lisp quote : "[learning Lisp] will make you a better programmer for the rest of your life, even if you never actively use Lisp"



So get out of your comfort zone and pay your debt of knowledge. You will not regret.

Source: https://habr.com/ru/post/298330/



All Articles