In the age of the Internet, product manager and programmer are undoubtedly two of the most visible professions in this era, and the mutual hatred, bickering and conflict between these two professions are the most common workplace topics and jokes circulating in various communities. Such as
In a fight between a programmer and a product manager, the company’s policy was to either resign or hold hands all afternoon. So… .
“We promise not to change the demand!” “You write it down!”
It’s normal for stories to come up between two jobs that communicate so much.
The intersection of two job stories and disputes: whether a requirement can be met, whether it can be delivered on time, and whether the requirement cannot change.
Product manager and programmer
For programmers, their skills seem too easy to define, as long as “can write code” is OK, of course, programmers can be divided into novice and expert depending on the level of the programmer, but really only “can write code”.
For product manager, ready to skills seem to be more simple, because “everyone is the product manager”, so seems skill barriers for the product manager is almost not, of course, in the recruitment of job description, we also tend to complement the good communication ability and “has a deep thinking” on the Internet products and so on.
For both product managers and programmers, it seems that when it comes to collaborating on software projects, everything depends on common sense and basic education, except what the job Posting might say: “Good communication skills and collaborative spirit.”
“Demand” production line
If you think about the daily life of a product manager and a programmer, you’ll see that everyone pushes things around “requirements.” The product manager gives the “requirements” to the programmer, and the programmer writes the “requirements” and then submits them to testing. Product managers and programmers are the two core parts of the production line that turns requirements into products.
Software industry is a very young field. With the prosperity and popularity of the Internet, this field is facing a flood of demands and problems before it grows up. In the face of software projects, mature and efficient industrial production is the most appropriate reference when we are at a loss what to do. We naturally compare the process of industrial production to the process of software development. Of course, the common impression of industrial production line in our mind becomes the cognition of software development process.
The analogy of the assembly line is our basic understanding of software development. When promoting software development, today’s enterprises are trying to streamline the whole process from original requirements to online products by dividing departments, defining responsibilities and assigning tasks to each role. Then the actual work is to disassemble the whole project into different processes along the direction of the assembly line and assign different roles. Of course, since everyone is doing software, except for the differences in the business itself, other processes and roles are basically similar. These similar roles are reduced to the simplest version, product manager and programmer.
In the assembly line mentality, we think we can split the work of the product manager and the programmer, pass the product manager’s work to the programmer, and the programmer’s work to the product manager, and so forth, and so forth, to produce the final deliverable.
In a production line that can run efficiently, coupling between each link should be minimized. In other words, the things obtained from the previous link should be very reliable, and there is no need to return to rework or even reprocessing. Some defective products in the assembly line are generally filtered out through special links. The way the assembly line works is far less realistic when it comes to software development.
Attack each other and throw the blame behind
Neither product manager nor programmer considers anything handed to them “reliable,” whether it’s a prototype or design that a product manager hands to a programmer or a test version that a programmer deploys to a product manager. But both the product manager and the programmer expected to be on a smooth, reliable production line, and with deadlines looming, the sniping and blame game between the two roles began.
The biggest difference between the development of software projects and industrial production is that even similar application scenarios are very different in actual development, even without considering the difference of developers. The brilliant assembly line of the industrial age solved the problem of large-scale standardized production, while the core problem of the software age is a variety of non-customization and personalized problems. In the production line, it is easy to calculate the production capacity and delivery time according to the efficiency and time of the assembly line, while in the software project, what is the right delivery or even delivery of things, has become a metaphysical problem. When we are used to working on software projects with the expectation of an assembly line, reality throws people off course.
conclusion
It should be said that in the face of rolling in the flood of information and science and technology, industrialization is the starting point of a big transition of thinking, in the process of moving reflection, can let us from the mismatch of the thinking mode of industrialization of the solution gradually tied out, let your product managers and programmers from involute spiral, will no longer be the leading role of the workplace jokes, move on to a new chapter.