How to prepare for development without knowledge

Investigation period/responsibility

Survey period: November 2020
Person in charge: HI

the purpose

In system development, we conducted a survey to find out what kind of mental attitude is required when performing development without knowledge (development using a technology stack such as a language with which we have no knowledge).

investigation

Whether or not to perform development without knowledge

When developing a system, you may be forced to develop using technology that you have no knowledge of.
At that time, it is necessary to decide whether or not to proceed with the development. We believe that the criteria for judgment are as follows.

  • Conditions for system development
    ◦This is a technology that will be necessary for the system development team in the future.
    ◦It is assumed that system development will lead to continuous development and acquisition of projects.
    ◦It is assumed that system development will have a synergistic effect on the technology possessed by the team.
    ◦If it can be implemented at a cost including risks
  • Conditions under which system development should be postponed
    ◦Technology that will be unnecessary for the system development team in the future
    ◦This is one-off development and there is no expectation of continuing development or acquiring projects.
    ◦It is assumed that the risk is high and the cost is not worth it.

However, it is also true that there are many situations in which system development must be carried out even for projects that meet the conditions for being postponed.

Anxiety about development without knowledge

The following are concerns when developing a system using technology with which you have no knowledge.

  • In the first place, since the group does not have the know-how, is it possible to design, code, etc.?
  • Unable to estimate work hours (no know-how, no track record of productivity)
  • Can quality be ensured?

Efforts to resolve the above concerns and risk hedging are required.

Tackling anxiety

The following measures can be considered to alleviate anxiety.

  • Anxiety about know-how
    ◦Injection of knowledgeable members (input of external partners)
    ◦Acquire knowledge through technical learning in advance
  • Anxiety about man-hour estimation
    ◦Investigate productivity with new technology and calculate man-hours by comparing it with productivity of technology with which you have know-how
    ◦Considering risks, etc., and assuming buffer man-hours
  • Anxiety about quality assurance
    ◦Understand the importance of test design

In addition, since there is a lot of know-how that can only be gained through actual battles after system development has begun, the team's technical capabilities improve by collecting know-how, then repeating improvements and learning along the way.

Risk & cost

Developing a system without prior knowledge requires efforts to resolve concerns and hedge risks, which requires more man-hours than developing a system using technology for which one has the know-how.
Therefore, it should be recognized that the lack of knowledge incurs costs. Furthermore, even if efforts are made to alleviate concerns in advance, as the process progresses, unexpected obstacles may appear, so it is important to always consider ways to deal with risks.

summary

Ideally speaking, system development using technology with which one has no knowledge should be carried out only when there is merit, but in reality there are cases where it is forced to be carried out due to political constraints, etc.
If the project meets the above-mentioned "conditions for system development", it will be possible to maintain the motivation of the members, but if the project meets the "conditions for system development" but has no choice but to proceed with development, , it is necessary to motivate members by explaining the necessity of this development.
When developing systems without prior knowledge, the key is how to eliminate uncertainties and hedge risks, so we believe that we should take steps to reduce risks as much as possible.