How to build corporate knowledge management from an IT product
Information processes — collection, storage, processing and transmission of data — in general can occur in nature and society on their own, independently of us and our management, chaotically.
By creating an order, a system, business processes, we oppose the management of chaos for the sake of a certain result – the goal of such a system. Information technology in the sense of — a tool for managing information processes for the purpose of the created system, in particular knowledge management as a result and source of continuous development.
Software development and implementation processes are often poorly documented, typical tasks are solved anew every time, the commercial service does not have a good idea of what it is selling, new employees take a long time to understand the company’s products. And the solutions, in fact, lying on the surface with a minimal analysis of corporate experience, are lost from view without an appropriate tool for working with the knowledge base.
That is why it is so important to adopt and regularly use the methodology and tools of knowledge management, the meaning of which is to support the full production cycle of the company’s products with the help of its systematized intellectual resources.
Contents
What is the benefit of a knowledge base management system
Actually, such a task was presented to the product development team, in which I participated as a full-stack analyst. We were engaged in the project of the Warehouse Management System (WMS) using radio frequency identification technologies (Radio Frequency IDentification, RFID). The solution was built on an advanced three-link modular architecture with microservices and intersystem integration. Without revealing the details, I will note that the system combines, among other things, more than 40 modules, a mobile application, a desktop client and a web client, as well as many drivers for connecting different classes of RFID readers. Among our customers were the country’s largest oil and gas production and service companies with budgets of about hundreds of millions of rubles.
Is it worth adding that managing such a large-scale project, and especially documenting the development life cycle, given the shortage of human resources, has become a serious challenge in itself? To this end, I proposed to develop and deploy a knowledge base management system (KMS) on the open source MediaWiki engine – yes, something like a “corporate Wikipedia” for developers. Although the choice of platform is not critical here, any tool for collaborative creation, storage, tracing, and versioning of project artifacts will do.
My arguments are the essence of the approach and the benefit that such a BMS brings. What do they consist of?
For the company as a whole it:
-
knowledge base on products and services, development and implementation, services – a repository of systematized information from the life cycle of products with the possibility of distinguishing access rights;
-
an environment for joint work (collaborations) on documentation;
-
a platform for system analysis, business analysis and design of modular solutions;
-
a tool for the synthesis of new knowledge taking into account previously developed solutions;
-
informational and methodological provision of the process of training company employees with knowledge about developed solutions, products, services, etc.
For product development groups and the technical directorate it:
-
a platform for recording and sharing the results of designing solutions;
-
knowledge base on corporate patterns (templates) of design, data models, characteristics of modules of developed solutions;
-
a source of functional requirements for software code verification.
For release/test groups it:
-
a source of requirements for testing developed solutions, including a library of programs and test methods, test scenarios, etc.;
-
informational and methodological support for the development and updating of user documentation for the software.
For commercial service it:
-
a source of information on the preparation of technical and commercial proposals, applications for tenders, product descriptions, etc.;
-
information for presentation materials, Sales Kit, content for the company’s website, etc.;
-
a data source for ontology analysis of the subject areas of the enterprise.
Thus, instead of the usual document repository, in which the achieved results and experience are displayed most often unsystematically and only partially, a support tool, a system of orderly storage and display of corporate knowledge is being created. It helps to simplify the search for answers when performing not only daily routine, but also non-trivial tasks in new projects, as well as to decompose difficult formalized and poorly structured content into clear sections of the knowledge base. This allows you to clarify the understanding of your achieved results, use them more effectively in current projects, adjust the strategy and tactics of the development of the company and its products.
What the deployed SMB gave to our project
First of all, she helped to understand:
-
End dependencies of modules – parent-child relationship:
-
how to make an assembly of modules without contradictions and redundancy;
-
how the product works (interaction of modules)
-
-
Where the data comes from:
-
all tables (entities, connections, service) are grouped by modules, contain a description of fields, data types, sources of external keys;
-
in the description of the functions and algorithms of each module there are indications of the data model used.
-
-
What each module is responsible for:
-
which configuration of modules will be optimal for the needs of a specific customer or for solving a typical range of tasks in a particular business area.
-
-
For what business tasks is the product (assembly) used and exactly how:
-
set of use scenarios (use-cases).
-
-
How should the system behave with certain incoming flows:
-
a set of test scenarios (test-cases).
-
-
Current development status by modules and products.
-
What are the specifics of each assembly for specific projects (customers).
-
According to which protocols and in which formats the system components exchange data.
-
What are the hardware and software requirements for the products.
What does the approximate structure of a two-dimensional knowledge base look like
The main feature of my proposed approach to the creation of a DBMS was the structure of the content — a hierarchy of catalogs of accompanying documentation (artifacts). For the development life cycle, it was presented in two dimensions: the stage of development and the taxonomy of project documents, including the modular principle of design and development.
-
Initiation
-
Contracts
-
Project 1
-
Product / Assembly 1
-
Release 1
-
Agreement 1
-
Contract / Add. deal…
-
-
Release…
-
-
Product / Assembling …
-
-
The project …
-
-
Tenders
-
Project 1
-
Technical and commercial offers
-
Products / Assembling
-
-
The project …
-
-
Correspondence
-
Customer 1
-
Project 1
-
The project…
-
-
The customer …
-
-
Protocols
-
Internal meetings
-
Project / Product 1
-
Sprint / Date 1
-
Sprint / Date …
-
-
Project / Product …
-
-
External negotiations
-
Counterparty / Project 1
-
Project / Counterparty 1
-
Date 1
-
Date…
-
-
Project / Counterparty…
-
-
Counterparty / Project …
-
-
-
-
Setting
-
Business requirements
-
Project / Product 1
-
Release 1
-
Release…
-
-
Project / Product …
-
-
Business models
-
Project 1
-
Diagrams of business processes
-
Sources of business process diagrams
-
-
The project …
-
-
Infographic models
-
Project 1
-
Entity-Relationship Diagrams
-
Sources of entity-relationship diagrams
-
-
The project …
-
-
Functional requirements
-
Product / Assembly 1
-
Release 1
-
Release…
-
-
Product / Assembling …
-
-
Product Backlogs
-
Product 1
-
Release 1
-
Sprint Backlog 1
-
Sprint Backlog…
-
-
Release…
-
-
The product…
-
-
-
Realization
-
Architecture
-
Product / Assembly 1
-
Release 1
-
Schematic diagram
-
Modules
-
Software interfaces
-
-
Release…
-
-
Product / Assembling …
-
-
Modules
-
Module 1
-
Description of module 1
-
Module 1 data models
-
Products / Assemblies including module 1
-
Product / Assembly 1
-
Release 1
-
Module 1 Functions and Algorithms in Product 1, Release 1
-
In the configuration of modules 1
-
In the configuration of modules …
-
-
Technical implementation of module 1 in product 1, release 1
-
In the configuration of modules 1
-
In the configuration of the modules…
-
-
-
Release…
-
-
Product / Assembling…
-
-
-
The module…
-
-
Products / Assembling
-
Product / Assembly 1
-
Modules
-
Module 1 (reference to relevant 3.2.1)
-
The module …
-
-
Usage scenarios
-
Release Note
-
-
Product / Assembling …
-
-
-
Testing
-
Product / Assembly 1
-
Release 1
-
Test cases
-
-
Release…
-
-
Product / Assembling …
-
-
Implementation
-
Product / Assembly 1
-
Release 1
-
User documentation
-
Educational and methodical documentation
-
-
Release…
-
-
Product / Assembling …
-
-
Development
-
Product / Assembly 1
-
Change requests
-
-
Product / Assembling …
-
-
Document templates
-
Mediawiki page templates
-
Templates of technical tasks
-
Use case template
-
Test case template
-
Sprint Backlog template
-
Product Backlog template
-
Release Note template
-
Templates of technical and commercial proposals
-
Protocol templates
-
This two-dimensional structure helps to orient documentation around modules and their sets for different products instead of making products and releases the center of the document flow. In our case, this made it possible to simplify the updating of documentation as modules and products develop, made the structure of the CMS more flexible and adaptable to different options for assembling the system, and helped to avoid unnecessary duplication of information in the knowledge base.
Effects of using a knowledge base management system
As a result of implementing the approach described above, my colleagues and I managed to achieve the following long-term effects.
Reducing the disadvantages of Agile methodology:
-
introduction of requirements management;
-
product development planning;
-
use of solutions proven by experience, patterns accumulated in the knowledge base.
Improving the quality of processes, process results and management of development processes company decisions at the expense of:
-
increase in the quality of production documentation (according to the criteria of availability, completeness, relevance, integrity, consistency, relevance);
-
growing urgency of projecting solutions;
-
modularity of the knowledge-based documentation structure.
Improvement of the quality of processes and management of testing processes company decisions at the expense of:
-
increasing the speed of searching for requirements for products and modules;
-
standardization and unification of the testing procedure, including using scenarios;
-
decision-making support for testing tasks, including in the absence of other sources of requirements.
Reducing the complexity of developing and updating user documentation by products and solutions, including manuals, instructions, training materials.
Reducing the complexity of developing and updating technical and commercial materials (Corporate websites, Sales Kit, TKP, etc.).