Software is eating the world
Software is everywhere: in your watch, your coffee machine and your television. The digital transformation disrupts all industries. Software has become a critical asset in every company.
Increasing complexity of source code
New technologies such as encryption, artificial intelligence, block chain,.. add a whole new level of complexity to the code. Even daily items, such as cars contain an incredible amount of code. For example, the Ford F150 has 150 million lines of code.
Business pushes for innovation and shorter time-to-market
More features and faster release cycles result in a faster pace of changes in software projects. This flow of modifications makes it difficult to get a clear picture of the code.
Mobility of programmers
Working from home has become the norm. Programmers are no longer tied to a physical office and can choose from more job offers than ever before. There are less reasons to stay long term with a single company. The higher mobility of programmers creates a cross pollination of ideas.
The software industry is creative enough to deal with these trends.
- The no code approach hides the complexity and provides a faster way to develop (simple) solutions.
- New project management framework, such as scrum and kanban, try to react to the client's need in a shorter time frame.
- Agile processes, such as pair programming or TDD help to manage the complex environment.
Yet, there is one field with no innovation: knowledge management for software.
Loss of Technical knowledge
Why programmers don't write documentation
There are a couple of reasons why programmers don't write documentation.
- Writing is hard. Organizing your thoughts and expressing them clearly is a demanding task. Having the talent to write code does not mean that one is able to express the underlying concepts.
- Depreciation. As software evolves, the relevance of some documentation diminishes .
- No business value.The product works fine without documentation. Since there is no direct value, writing documentation has no priority.
- Lack of tools.The tools for writing documentation are inadequate. The tools are not part of the daily work flow of programmers. The context switch from writing software to writing documentation is a blocking factor. More importantly, the tools can only capture a linear writing process. But software and the document is about connecting concepts. New documentation tools must reflect this "interconnected" thinking. A new wave of "second brain" are better adapted.
Long onboarding process
It is common that a software engineer needs 6 to 12 month before being productive. Specific techniques, such as coding assignments or pair programming can shorten this period. But these techniques are expensive and need a cultural fit.
Decrease of software quality
Engineers who are new to a system lack a detailed understanding of its design and evolution. So they are more likely to introduce defects.
Frustration and Imposter syndrome
It is easy to get completely lost in front of millions of lines of code. This feeling is typically associated with the imposter syndrome. This affects the programmers' productivity and can lead to stress, depression or anxiety.
The core of Code Comprehension is a collaborative knowledge management system, specialized for software systems. The roadmap contains 3 phases
- Manual Knowledge ManagementThis phase addresses most issues related to writing documentation. The tools integrate seamlessly in the daily work flow of software engineers. The engineer create and share knowledge maps in a non-linear process. And all from within their normal development environment.
- Assisted Knowledge ManagementCode Comprehension continuously analyses the source code and builds a semantic database. This information assists the programmer in exploring and understanding the code. The tools recognizes and highlights predefined common practices.
- Automated Knowledge ManagementOften, the business logic is buried in million lines of code. In the long term C28N will use artificial intelligence to separate technical code from business logic.