Author: small Fu Ge blog: bugstack. Cn series: mp.weixin.qq.com/s/PhR8HvGC4…

Precipitation, share, grow, let yourself and others can gain something! 😄

R&d already hates me!

Fu Ge, I just came to the company’s product, is also some technical products, because I used to learn software engineering major, but I don’t like to write code to think about making products, command others to write code. The dream idea finally came true

I finally got involved with the developers through king support, snack feeding, and dating, but lately they’ve kind of hated me. Because I received a business owners need to launch the demand of the impulse, but because the pace of online too anxious from BRP review to the PRD output has accounted for most of the time, to develop and test the completed online scheduling can only be inverted, and this period is always in need of a change of demand, research and development said his code has become excrement, mountains and I like the stirring stick, Here comes the next test!

That, I don’t want to be this bar any more, I want to know what is the situation to make the yard brick brother head big, I try my best to bypass later, I am a good product with conscience!


The above is a fiction, but also just read the ID card, basically as long as writing code research and development, will encounter a variety of products, but not all products understand how r and D write code will encounter so many problems, so I want to combine this paragraph to talk about those pits on the road, our research and development is how to go.

All those years in the hole

New size, hurry up

When a new requirement to let the thinking of research and development, design, review, reserving online time card died, how fast is the manner in which people only how to write function, there will be no document, there will be no comments, there will be no single measure, especially there are many at this stage is the product not confirm clearly the function of revising, more to the realization of the code is a mess.

Maybe the product, the business, or even the boss who asked for it didn’t know what to do. Is it so hard to write code? Yes, this is just like the original you gave a pile of bricks picked up, buckle to the sand, hand drawing drawings, the need is to build a toilet, now the toilet pit dug up the shelf, can not change, we do not want the toilet, to pigsty. Like pigs have to shit, digging pit is sufficient, in need of change, expansion, expand the area pigsty seem to also go, but this time is buried under a lot of hidden trouble, sometime the pig comes into play, will give you the arch collapsed, but just in the plasters type slot pipe, repair the pigsty products communicate boss’s latest intention, the site now let’s decide to live, We need to revamp the UI and give it a makeover. You know how to build houses and dig foundations, but you don’t know how to write code

For example, how does code die

  • Demand without planning, want what to add what, add add accident. This is what most r&d faces day in and day out.
  • From the proposal of a requirement to research and development, test verification and online deployment, these processes need reasonable evaluation time to execute, otherwise there will be no experience products as good as Apple IOS.

2. Handover, mountain of shit

What do you think you development projects are starting from scratch, actually not yes, especially the Internet companies often quickly adjust to market changes, also will cause you took over the code may be written by others, and even many individuals has written, and the same code written before you want to treasure, will also be take into excrement mountain.

Shit mountain code is what, also vo2Dto has more than 12 ways to write, Json2Object also has a common 3, 4, generate a number ID is also N variety of ways. So now anyone who takes over someone else’s code can’t find documentation, can’t read comments, can’t read method names in random English and pinyin, and it’s not unusual to write queryBatch as queryBitch. So, how can you iterate faster with so many different ways of implementing the same function? I don’t know what I want to change, but I dare not delete others add

Maybe I don’t understand the product again. Isn’t it ok to delete it? It will be difficult. Have, this want to what, such as your home is a 3 r pattern, bathroom, kitchen, living room, bedroom, the first guest is the attention to install the toilet, bought a sofa, with the bed of the bedroom, then rent to intermediary, intermediary said it’s not wasting it, didn’t install what such a big kitchen, demolition, dismantling a bed, in a toilet, independent bathroom, more to rent a room. The sitting room also makes a partition to it, receive conduit on and conduit, also come to it independent wei yu, advocate lie, second lie outfit independent wei yu. Good, later the house handed over to you, you rent the whole, found this room is everywhere toilet, disassemble which time, all began to spray water to go out, do not know how their water pipe is linked, with the cost of looking for the master to repair, it is better to disassemble and redecorate. Like, code can’t be refactored, it can only be rewritten!

3. Reusable, ill-fitting

Can not repeat the wheel, there is already a ready-made why don’t you use, you write this what innovation, why not find a certain department under the investigation, you this is not technology from hi. Listened to return afraid you don’t, don’t scary, you could be obviously in order to better, faster, skilled I’ll finish the project, but now you to work on a project, need what they have searched all the departments research component can support your demand, then start to document, docking, alignment, the good, you can demand the original is not large, What would have taken you even three days now takes you two weeks. Increase your workload, and the year-end bonus is yours again!

Generally in the debriefing, defense, report, we all put their own things packaged very cowhide, even as long as you use this component, the company can be listed three years earlier. But after the report, when I went to ask you whether this thing could be connected, it was over. This part was not supported and that part could not be done. Why? Because a demand function design is a lot of time to the demands of their business, rather than a unified standard solution, can’t solve other business personality, even to support the small part of the function from the beginning to the end of carding and development, plus tables, and fields, write, write method, single, a full set down is not so easy to support, It is possible that poor support will place a very heavy burden on your system.

The product may not understand again, reuse is not to reduce the development? What it’s like, a master, first wife and a few be in the home, 1st position steady dangdang judges, so common component cake, great love to express themselves, and first wife walked nearly, nothing to master and report the latest work, 1st young aunt too just no achievement that take the door, told Sir Want to have a shorts to wear, The master said that the aunt reported last time that she did not have pants, you still waste that construction period to do, to reuse a wear. Young aunt too find a sister too, ask underpants can be borrowed to wear to wear, sister said too difficult ah, I this pant is too small, your body wear is not enough, I will change according to your size, are to be found on the neck, you see why don’t we find master say, you say your underpants is custom, also need some special function, For example, unfolded is a skirt, folded up is pants, summer is shorts, winter is cotton pants, so give you approval, you are innovative.

Climbing up is the past

1. Improve your skills

After working for so long, I deeply feel that even a very technical project without too much experience in research and development can be written by CRUD+ the whole ifelse. What is the PRD process of the product, what is the direction of branch judgment in the code, and there is no model abstraction or some general abstraction. It has nothing to do with the product, nothing to do with the schedule, nothing to do with their own technical ability and project experience, maybe just because you write, so it will be like this.

After these experiences, I will compare each time I develop new functions with the last time, reuse those better implementation methods, and then optimize the implementation of the not so good, so as to accumulate my experience in the process of technical implementation. Gradually, I became conditioned to know which projects would motivate me to create better designs, which projects could reuse my previous logic, so that requirements could be met quickly and with high quality, and product functionality could be iterated. Each growth, is their own harvest

2. Comply with norms and standards

Do you want to know what people actually is not stable output of the machine, as long as it is in writing code will certainly have no specification, the lack of process, the abnormal situation, so they need to have a set of standards, we unified the implementation is a way, so that even when a problem, also can quickly locate and processing, or you develop in a way, He used another standard code, and eventually a team had to maintain two sets of content, which was labor-intensive and potentially problematic.

Especially when we development project is not small workshops is particularly important, BD from the market, business operations proposed PRD BRD, product reviews, architecture to do detail design, research and development, code review, finish to test, on-line to control and delivery to verify, every link needs to have standards, if the whole group, the department, the whole company, There are standard process specifications, even in the transfer of code, coordination of resources, joint development, there are not so many obstacles in the barrier of our deep code brick friendship.

3. Communicate with production, research and testing

There is no guarantee that the product will not change its requirements, even when it is almost ready to go live, because of the market, because of risk control, because of the process, because of finance, etc., and maybe not even for some special reasons that r&d can know, it will not get you to go live without changing the requirements. The developer might ask, why not mention it earlier, because these special cases come from uncertainty, like our running code, which no one knows is caused by a sudden surge in network, IO, load, or celebrity official announcement traffic.

In order to better carry on product demand, the best way is communication, communication, especially in the early part of the product demand design, view their PRD document ahead of time, there may be a lot of content here is that you can provide service, there are also some products in hesitate to use which kinds of means to realize the function, after discussing with you, and decided to reuse your existing system. So communication can really bring great benefits to your late development, reduce a lot of unnecessary things pop out!


  • Business, don’t do productA man who cheats on a woman's affections
  • Product, don’t do research and developmentA man who cheats on a woman's affections
  • R&d, don’t do testingA man who cheats on a woman's affections
  • Test, don’t do businessA man who cheats on a woman's affections

Do one thing, do one thing well, we do not do the next ring of cheating and playing with women’s feelings of men, is also responsible for their own growth!