I have a boss friend who doesn't know anything about programming technology, but decided to develop software by himself. He made many detours. He told me that his company's research and development has changed several times, and he dare not use the code left by each wave of research and development. After he recruited new research and development, he will throw away the code developed previously and develop again! I frowned at what he said. You know, I have known the boss of this software company for more than a year. According to what he said, he has at least thrown away several versions of code. What's the matter?
The boss of this company is not a software developer himself. He specializes in e-commerce ERP. Before that, he inspected many e-commerce ERP software and found it inappropriate, including the e-commerce ERP software he is using now. Finally, he decided to develop a set of e-commerce ERP software by himself, and follow his own ideas. If the developed software works well, It will be commercialized in the future.
Throw code
He doesn't throw code without confidence. According to his words, whether he develops or not does not affect the company's operation, but he just doesn't want to be controlled by others. Therefore, software development is not in a hurry. If the R&D personnel are unstable or unreliable, they would rather throw away the code written by previous R&D,
His company has come to several waves of research and development, so several sets of code have been thrown away.
The reason why the code should be discarded is that the previous R&D recruitment is not reliable. Of course, this is just a one-sided statement. I don't make comments here, only know that the previous R&D was voluntary resignation.
The boss doesn't know programming. He thinks that the things developed by the former people may not be suitable for the people recruited behind him. So in order to let the people recruited behind him develop software according to their own ideas, he threw away the code written by the former people. Of course, this also requires the consent of the latter recruiters. As far as I know about programmers, most programmers are very happy to redevelop!
Although it's wasteful, I like this practice, but I don't like it blindly. There are reasons.
Because the previous R&D jobs are not long, basically in a month or two.
In fact, the development cycle of e-commerce ERP software is very long, and it is estimated that one or two months is not enough even to develop the basic framework. Because the boss does not understand programming, it is unknown how well the framework is built and whether the recruited people can adapt to the framework developed by the previous people. Therefore, starting from scratch is relatively friendly to the R&D recruited later.
Now, the R&D team he recruited has been in office for more than half a year, and has finally stabilized, and his heart has also eased.
However, while chatting, I found that he actually stepped into a lot of holes in the matter of self-developed software, especially when I looked at the half developed software framework, I found a big hole!
No expansion of software
The boss told me that at present, the software they developed is only for their own use, so they have no requirements for page layout, but in the future, they will make commercial versions, and he is ready to let the following R&D personnel take a good look at the front page of the software. The implication is that he thinks the current front-end page is too ugly!
I have seen the source code of their company, and I can't help worrying after hearing his words.
So I asked him whether he wanted to change the page or the front-end framework for the future commercial version.
He didn't understand what I meant, so I told him that the front end is actually just the display part of the software, which can be changed at will, and even the front end pages written in C # can be changed to those written in Java and Vue.
He nodded, saying that was what he meant!
As a result, I took a deep breath and said to him, "The software developed by your company now will not have much expansibility in the future!"
The boss frowned and asked me what I meant!
In fact, the e-commerce ERP software developed by their company at present is certainly usable, but there is no problem for internal use, but they want to change the front end in the future, such as changing the desktop end to the Web end. For example, the front end is written in C # WinForm now, and will be changed to the Web end in the future. The front end is written by Vue, so the whole system may need to be re developed!
When I said this, the boss immediately became nervous. Because he didn't understand the technology, he asked me to explain it to him.
To put it simply, the software of their company has not been built into the model of front end separation or client end plus service. All functions are written together, and the only one that can be separated is actually the database!
Almost all commercial software will be made into C/S or B/S mode, that is, the design of client plus server. At present, the popular software design method is to unify the WebApi interface in the background. No matter what the front end is written in, it only needs to connect to the WebApi interface. Traditionally, it may be made into a service, but in no case can it be separated from the Client+Service model.
But the software of the boss company is at most stand-alone software! Because it has no server at all!
After talking for a long time, the boss didn't understand, but also told me that he bought a server for the R&D department!
I told him that a server does not mean a server. At present, servers are used to store databases.
I talked for a long time, but the boss didn't understand what I said. Finally, I gave up!
However, I know that this boss will surely step into the pit left by their research and development in the future in software commercialization!
What I can think of is that everything has to be done over and over again. Except that the database does not need to be redesigned, others may need to be developed again according to the client server model!
epilogue
The last thing I said to him was to let him recruit a person who both knows technology and trusts to manage the R&D team. At present, the people in his company's R&D team must be unqualified!
However, because the boss does not know the technology, even if he is unqualified, he will not know. He only knows that the software can be used, which means that the ability of developers is no problem. In fact, this cognition is very problematic!
In fact, many bosses who set up their own R&D teams will step into many holes because they do not understand technology. For example, the R&D salary is set too high, there is no R&D manager, and they master the R&D progress themselves. The words here are limited, so let's not say more. It is typical for such bosses to step into holes!