How do programmers get involved in the development of a product? What are the development processes?

thumbnail

The outside world's impression of programmers is to sit in front of a computer and write programs. Someone even asked me things like "Is there really that many programs to write". In general, most programmers help companies develop a product. According to the platform, this product can be a website, a mobile APP, a traditional desktop program, or a software part of an embedded system, etc. But whatever it is, all product development goes through the following main processes:

Product Design -> Technical Architecture -> Schedule -> Product Development -> Product Testing -> Operation and Maintenance

And programmers, especially experienced programmers, are involved in almost every step. Therefore, many programmers need to be able to write documents and draw flowcharts, and also be able to deal with customers.

1. Product design

Determine which requirements the product should meet based on the market or specific customers, and then translate it into a clear requirements document. With this document, programmers know what to develop, how to count as development completed, and have a basis for delivery testing.

While writing requirements documentation is not a programmer's job, experienced programmers have a lot to offer in the process, especially when it comes to development complexity. Some features and requirements that are too difficult to develop and take a long time to use will be removed. There is no doubt that accurate estimates of development complexity are critical to delivering a product with the best user experience in the shortest time possible, and these require extensive experience.

So the programmer's income includes this part of the experience value.

2. Technical Architecture

The next step is to design the entire system according to the requirements document. Simply put, it is to choose the appropriate technical solution according to the characteristics of the product. This is another task that requires extensive development experience to complete.

Often even a simple front-end plus back-end application consists of more than a dozen subsystems. And each subsystem has several or even more than a dozen technologies to choose from, there are many choices for data transfer modes between systems, and there are many choices for development tools.

For example, what is the front-end framework, what is the load balancer, what is the server, what is the database, what is the development language, what is the repository, what is the API access process, and so on. These random things are actually very basic things. In fact, many more practical and complex issues also need to be considered, such as security, such as the impact of system upgrades, and so on.

In this process, it is necessary to write a lot of documents, record the advantages and disadvantages of each technology stack, draw a lot of system diagrams and flow charts, and communicate with managers and designers who do not understand technology.

Therefore, the programmer's income includes the value of this part of the knowledge.

3. Progress plan

This part is generally also in charge of a special project manager, but similar to product design, programmers have to give a lot of advice. At this time, the general technical framework has been completed, and a more accurate development cycle estimate can be given. But after all, it is an estimate, and it still requires a wealth of experience to be as accurate as possible. It is not necessary to go into details on whether this progress plan is reliable and how important it is.

4. Product development

This step is what most people think of programmers. But even development is not a simple matter of sitting in front of a screen typing code. In the current mainstream Agile development, a morning meeting is held every day to report the progress, and a meeting is held every two weeks (or other cycles) to determine the specific development tasks for the next cycle, evaluate the workload of the development tasks, and assign development tasks.

During development, we often encounter technical problems that need to be discussed with other developers, and we need to maintain communication with designers, managers, and project schedulers. It is generally necessary to make a presentation of the results every month to let the management know the progress. Then new technologies are often used in the development process, so it is often necessary to spend time learning and supplementing.

5. Product testing

Traditional software development often has dedicated testers, but now more and more DevOps in Internet companies are doing the previous work of three people: development, testing and operation and maintenance (well, it is actually a kind of disguised exploitation, Because although the salary is high, it is not as high as the combined salary of three people).

Testing also requires writing a lot of code, because now they are all automated tests. Then the test also needs to write a lot of documents. The so-called test cases basically correspond to the requirements document. It is a checklist to see if the requirements are developed and meet the standards. So you see, in addition to being able to write computer languages, programmers often have to write human words.

6. Operation and maintenance

Again, what used to be done by full-time staff, many programmers have to do now. This part includes writing some scripts or using software to collect system data, various system logs, and then generating a control panel with various charts to facilitate viewing of the system running status, and setting various alarms that are triggered by values ​​that exceed a reasonable range. This kind of alarm is often connected to a mobile phone or even a BP machine. Even at night, it will wake people up, and then they have to get up and solve the problem.

Therefore, the income of programmers also includes this part of the hard-earned money.

In such a geometrically rapid development of the IT industry, talents cannot keep up at all, and the relationship between supply and demand determines that the wages of the IT industry will only get higher and higher. Of course, this is for people who can keep up with the pace of IT development.

IT is an industry that must constantly learn new technologies because it is developing too fast. Now the most mainstream development frameworks, various cloud technologies, new programming languages, new features of old programming languages, various tools for auxiliary development and deployment, various operation and maintenance tools, etc. None of them were 10 years ago Many of them have only been around for five years, but have already replaced older technologies.

Therefore, those who have been working in the IT industry for eight years and ten years have not been eliminated, at least they are very hard-working people, and they are similar to many old-fashioned people who have spent decades in the traditional industry eating the little things they learned in college. Well, they deserve the salary.

Related Posts