In any area of human activity, the managerial position stands out as a key one. Especially if the person who holds it is not thrust into the leadership position by his\her superiors with no regard to what the rest of staff think about it (as in the case of the s.c. artificial promotion), but his\her rise to career highs has been secured by an intensive personal and professional growth, and his "authority" status and professionalism been recognized on both sides - by the project participants and the clients.
In each area of human activity there are, of course, some specific conditions for acquiring the status /position/ of a Project Manager. In construction, for instance, the only person who can qualify to be a construction superintendent is the one who knows the exact number of bricks required for this or that piece of brickwork. These skills can only be acquired in the course of extended practice. As for the IT sphere (and web - development in particular), it is quite the same. And originally I was sure that a to-be a PM should primarily be a well-experienced programmer.
At this point, I can formulate the following definition of this term:
Project manager is a skillful "architect" who, not being directly involved in writing codes himself, distributes tasks among all parties, and makes sure that the agreed deadlines are kept and volumes attended. He also sees to that all resources necessary for the project completion be supplied in due course. Such a person is also qualified enough to run the team’s motivation and stimulation programs, and acts as a connecting link between the client (customer) and the team, at that.
The above definition implies that a PM is, first and foremost, the person who has got high organizational skills. A good PM who is engaged in the IT-sphere can achieve similar results in various, not very specific (technologically) spheres, too. Incidentally, understanding and proper planning of the relevant business processes is a key requirement hereby. And it is in response to his\her psychological motivation effort and personal energy that performers are "encouraged" to show their useful activity.
I have essentially changed my viewpoint at the professional qualities needed in and requirements being in demand in the Web development project management only after I’d gotten the full scope of experience working as a PM in the InternetDevels website development company (never being a programmer myself, neither by profession nor by calling).
At this stage I personally am governed by the five basic principles that help me assume and bear full responsibility for the project running and completion.
1) Understanding customer’s needs and reporting this incoming information (with its sense intact)to the executors
If one has failed to understand what the customer wants exactly, how come they can properly set a target to performers? It needs to be clear, whatever the cost may be, at the very stage of project budgeting or when you are setting assignments. And to communicate with the client efficiently, one should ask all sorts of clarifying questions. A good presentation of the future site’s functionality as supplied to the customer can well be of great help here to make sure we understand his/her needs correctly. Another reason (for working this presentation out) being it might be used to help highlight the project tasks to the programmers. The Blogs' section should by all means contain the content creation and content display pages for they, in first place, expose the actual content type. "Programmers-will-somehow-cope-with-it-without-me" attitude will not work in this case for web-developers are a creative sort, they perceive of things in their own way, which doesn’t always respond to an ordinary way of thinking. The programmers need the tasks to be set forth in both the most clear and definitive way. That is why, the phrase "do it as it’s done in Twitter" (or VKontakte) should be split into logical points and the client would better attach a most detailed specification to each of them.
2) Clarifying project objectives, planning the stages of project implementation and allocating available resources among the performers
It is a common practice that right at the launching stage the project gets divided into "releases" in that, when sliced thinly, the interrelated functional are more likely to result in less error, and that will reduce the risk of being improperly deadline. This, by itself, prevents the occurrence of possible conflicts due to mismatch of customer’s expectations and reality.
3) Taking an active position
It is a two-way process: the customer needs to be well-informed of what’s going on and how the project tasks progress, and executors need to be encouraged, via your offices, to keep in touch with the client for a better task specification. This having been performed, your customer is going to feel himself in good hands and your team all the more. Having contacted (not only formally, but in an informal situation) the project participants, you can both get better informed and be in a position to act as a catalyst for team’s interaction (especially when it is the first time in such complement), that for sure will positively affect its working experience in general.
4) Be sensitive to the whims of the customer, but also avoid starting the development of what is actually unnecessary
In this regard, one should not forget that we should not be like "Hindus" (stereotype that is familiar to workers of our sphere). If the customer requests to do something meaningless, illogical and totally unnecessary (based on the originally defined project objectives (check principle 1) we can form such affirmations), it is better to send him to the right track. Asking the questions "Why do you think this functionality is necessary for you?," "What is the purpose of this feature?" you should get a statement that will not conflict with the originally defined project objectives (aims, targets). It will help to avoid possible accusations towards performers (executors) such as: "Why have you spent my money on something that I do not need?"
5) In case the client insists on his claim, take a position of dispassionate and objective arbitrator
If a customer owing to the force of circumstances tries to hold the team liable for something like: "nothing works", "the whole thing’s down", "your site is slow", etc., it is necessary to once again go into the task’s particulars so as to get to the roots of the problem. Normally, when a few clarifying questions have been asked, and the customer been instructed once again on the use of the Site, the problem itself loses its essence and allegations are found void.
However, if the actual problem still persists, it should be emphasized that this is the usual workflow and such situations are possible, and we are solely responsible for its removal in the shortest time. Giving in to the customer’s "hysteria" appears inadmissible primarily because it is irrational in that both sides of the conflict spend that precious energy potential (similar to gasoline, which fills the car), which might be spent on efficient and effective work of the team.
To summarize what’s been discussed, we should admit that it is not the programming experience itself that only matters when you are into the effective project management in the web- development sphere. Personal qualities, that’s what matters most of all here. The specialized skills' kit described above will undoubtedly be right at hand for any professional in the project management field.
The current article may well seem to be totally out of line in this type of resource. Although it is filled mainly with highly specialized blog-posts that cover Drupal’s working characteristics, we should still stick to the simple truth: a customer (client) is a human being, in first place. And codes are being written by humans, too. In the end of the day, any complaint or claim (or conflict) gets adjusted due to moral qualities that both sides have in their possession. It is due to ideas and principles and not programmer skills that the disputes in web-development business are being solved.