In the last seven years, I have been doing Internet products, including the first five years in the start-up companies and listed companies, to do other people's products; nearly two years in the business, to do their own products.
My experience is: Product managers need to understand technology, entrepreneurs in particular need. But the premise is that you always feel a share of the desire to do something, if you plan to mix security days, especially in large companies, you do not need to understand, but to be careful not to "know too much", silly person life peace.
To do the product these years, and development engineers to deal with most, and their communication usually have two major taboo:
A. Bogey does not understand the technology
More precisely, is not a lack of design, the development of an Internet product basic technical knowledge, such as at least to understand that a website never exist to be able to be accessed by users, what needs to be the link, but also understand how an app from your mind to the user's mobile phone, need to go through what kind of process.
Have common sense, of course, not necessarily can make good products, but no common sense, it is like in the village for half the rest of the people to the city, every move even careful, can not appear abrupt and disharmony.
In the industry I've contacted, a few in the early 70 is quite typical, probably when the internet appeared, they have been full of curiosity and longing for the unknown age, do not want to lower the body to learn new things, like only by imagination and their own life experience on the spray, or some recent hot keyword as embellishment, To show that they are squatting in the forefront of the trend.
Such people may be able to fool some of the leadership, but must not recruit engineers to see, they may not say anything, but the heart has started waiting to see jokes, to their development needs, nature can be dragged and dragged, can Montzemon.
Two. Avoid understand the technology
I met many engineers like to say: "As long as the product demand is clear, technical everything can be achieved." "
This sentence sounds quite heroic, but also let the product manager greatly relieved, feel the technology is really a strong backing of the product. But it actually sends a particularly bad signal.
When the engineer said so, the subtext was: "You can do your own thing, leave me alone!" And it implies an optimistic but apparently unrealistic assumption that technology is omnipotent, and that he (who has the technology), like the lamp God, can fulfill any of your desires as long as you can clearly describe it.
I do not know that after Aladdin said his wish, if he dared to continue to ask what the light God will be specific to implement the technology to achieve, will not be stuffed into the lamp, but I know many engineers in the discovery of your attention to the technical level too deep, there will be a territory violated feeling.
This is the engineer to maintain their own professional groove instincts, compared with other roles in the industry, the engineer status is not the highest, the treatment is not the best, but also often overtime plus desperate, the only unique advantage is that the professional groove than any role are deep. About the product, about the UI, and even about the business model every practitioner can spray a few words, if the user experience, it is even outside the industry are willing to spray special spray without any psychological burden: Anyway, I am the user, the more silly the more glorious. And when it comes to code, most people just get dizzy. Think of the hard work of the UI designers, who do not have the distraction of the sprays when they are working.
So when they think that outsiders are trying to cross this trough, they will naturally be wary and even show resistance and hostility. When a product manager discovers that engineers are starting to use terminology more intensively or trying to complicate simple issues, you should know that they are starting to shoot at you at the edge of the groove.
From the perspective of the whole product and even the company, the professional slots between the professional roles should be filled up. Product manager should not play with the Emperor to make princes, not always pretend to be the user's three representatives, and take the imagination of the "user needs" when the "Carrier Day" to use; engineers also do not have to assemble lights God, Pretending to be omnipotent and tired, engineers will have the ability to compete, in fact, sometimes the function can not be done or not, purely because of the ability of engineers. If you are honest with each other, can effectively communicate in advance, as far as possible to avoid those parts of the input-output ratio is too low, there are many engineers are not willing to come up to discuss the details of the implementation of the technology, are worthy of the participation of product managers, in these details how to choose and choose Performance and even the function of the great impact, if the communication in place, often can let development engineers do a lot less work hard. After I started writing the code myself, I got a deeper understanding of this.
Let's say why I started to learn to write code, is the answer to the second half of the question.
During my first five years as an Internet product, my knowledge of technology was only maintained in common sense, and only HTML and CSS were available for handwritten code, not even JS, let alone any programming language for Web development. I always thought that I could not write a single, even the simplest dynamic Web site, as an Internet product personnel, a great flaw and disgrace.
Engineers generally do not think so, and they chat, sometimes shunzui spray some of the technical framework or some technical issues of opinion, immediately praised: "You are very understanding of technology!" Then immediately hit haha said: "Know a P ah, I even hello world can not write, is entirely armchair." So the laughter, a group of people put the arrows in their hands.
But I just don't want to talk about it. In 2009, I ignored the age of 32 years, brazenly decided to learn Ruby, bought a book, installed the environment to start reading, knock code, persisted for a few days, and then failed, considering perhaps Ruby is too difficult for me, and tried Python, the result is still failed. Depression days after not give up, and bought an iphone development book, also took the opportunity to decide to buy a 27-inch imac, but the tragedy is only turned over the book, even Xcode did not dare to give up directly, this book does not say anything! Up is a big section of code Ah! And objective's code is huge, Completely ignorant.
Then I thought, this thing has two harvests: one. Found the boundaries of their IQ. Two. I have an imac.
More than a year later, the feeling of wanting to do an iphone app on your own is getting more and more intense and depressing. So one day, I have a good scar forget the pain like the almost no creases in the iphone Development Foundation tutorial again, waiting for the Xcode download process, dark determined: Don't understand I also put it back down.
Later found that the stupid method at least for me, it is very useful: according to the book knocking code, can function normally, closed the letter, and then knocked again. Usually repeat four or five times can remember very firmly. With the book, spluttering skillfully knocking on their own do not know what the meaning of the code, plus Xcode's automatic complement is very strong, a few minutes can toss out a large screen of colorful code, but also can run on the iphone, this time will produce a will already write the iphone app illusion, very wonderful.
The human brain is also very wonderful, if you have already memorized, originally did not understand will slowly automatically understand, so back after a paragraph of code, suddenly found: I understand what is going on. Then began to give himself a variety of small can not be small functional needs, try to use the code to achieve, each implementation of one, are ecstatic: I can show the button! I can pop up the dialog box! I can write a scrolling list! I can send a message!??
These things in the skilled, perhaps as plain as drinking saliva, but can bring great happiness to beginners, I have always felt, can always maintain the enthusiasm of the same as the scholar, focus, decided to do something when can go far, can do much better.
Because of the Xcode version of the book and the differences I used and some typographical errors, the code on the book will not always be able to run, sometimes the error, only the Internet exhausted all methods of search, the process of searching, will slowly see some special technical forum, Blog, the inevitable will eventually find stack Overflow this magical website, most of the problems you encounter can be found in the above answers.
When the fulfillment of the book's function has not brought ecstasy, will be tempted to bind themselves for a long time a variety of idea put out, and finally can personally to do it, rather than limited to drawing prototype map, write the need to explain the final and sincere to wipe the magic lamp, call the lights God such nowhere products.
The development process for me is full of fun, because when writing code, the world is simple and beautiful, a practice is right or wrong, you do not need to repeatedly guess, do not need to argue with anyone, the compiler is the divine referee. Each of your actions can receive timely, unambiguous feedback and a near-extravagant trial-and-error opportunity, and from this point of view, programming fun is a bit like playing games.
Of course, you will encounter countless problems, Stack Overflow, Github, bitbucket, mailing list will slowly become your friend.
After being able to write an iphone app on his own and put it in the App Store, I found that I needed to learn a language to develop the website and the restful web Service that I needed to call in the app, so despite the age of 35, Once again, the idea of Python, with the experience of learning objective, know the key is to be able to ruthless heart and static to see what books, in fact, the difference is not particularly big, so I used the free learn Python the Hard Way, with the method mentioned above, and then do it again ( The first half is simpler, you can do more than 10 exercise a day, the back speed may be a little bit slower, understand how Python writes, immediately start looking at Django Book 2.0, see only the Nineth chapter, can't wait to use the same method to do the Django tutorial two times , and then the surprise discovery has been able to write a simple but complete site. And then quickly try to write a special small with Django for a vertical field of tool-type Web site, the line ran for a period of time last night, the end of free trial, began to charge, now see a few paid users, I am very pleased.
As to the extent to which technology needs to be understood, I think that if you spend a few months studying things for a lifetime, this business is too good, especially in the technical field, will need to continue to learn, but for me, has not been eligible for the more than 10 20 years old as a young man with only a wide range of interests to learn, My current principle of this matter is very utilitarian: immediately to use, can significantly improve efficiency or recognized as the best practice of schooling, otherwise do not learn, try not to toss, strictly control the investment time and energy.
For example, write good code on the server, although as long as the deployment is successful, but the best practice is generally accepted to use virtualenv to isolate the Python environment, which can reduce a lot of trouble later, it is worthwhile to spend more time to understand, to apply; Using fabric to automate deployment with GIT can be much more efficient, and it's worth taking the time to learn how to use it.
I also know that you can use memcached or Redis to do caching, improve the performance of the application, or use rabbit mq and celery to do asynchronous queues, can improve the synchronization of the time-consuming task of the user caused by the discomfort; And Node.js seems to be more suitable for restful APIs than traditional Web development languages?? But these are not the most pressing issues at the moment, so although I am not and sure will be useful, I am not going to learn.
A not careful, sprayed thousands of words, or stop it, it seems that the middle-aged man's long-winded is hopeless.
Finally, to sum up, just one sentence AH:
Product Manager understands technology = Rogue can martial Arts. If you think the gang is big enough, his brain and good to be able to be a touts, that can not do martial arts; it is just like me no team spirit, and the old like a lone rogue, but also want to rely on the brain can not even a bit of self-defense surgery, I am afraid it is easy to be beaten into reptiles.
A more serious summary is: Product managers understand technology, when there is no resources can use the lowest cost to do things, resources can be used more efficient resources.