Boost: mem_fn and STD: mem_fun performance on msvc6.0

Source: Internet
Author: User
Initial Project Manager

Original: Karl E. wiegers

Translation rewrite: haow

This day has finally arrived: You have been promoted from a front-line developer to a project manager. Maybe you have been looking forward to it, maybe you are still uneasy, maybe this is your career development choice, maybe you just reluctantly agree to the boss "Give It A Try ". In either case, you may not have any background or training experience in project and personnel management or leadership.

Leader and Management (the two are different) are far from simple and dilbert
The boss runs the opposite way (Translator's note: Dilbert is a cartoon character and is famous for "having" an "idiot boss ). When you plan to do a good job in project management, consider taking the actions listed below. Maybe you want to do a lot of things, but the following suggestions will help you focus on things that can improve efficiency (your own efficiency and team efficiency.

Set priority

The first major task you need to start with is probably to consciously set your priority as a project manager. Although you may need to participate in software development for various reasons, you have some new responsibilities. Many new project managers cannot get rid of the temptation of technology, so they ignore the help that project members seek from themselves.

Efficient project managers know that their top priority is to provide services to project members. These services include guidance and education, conflict management, resource provision, project objectives and priorities, and technical guidance as appropriate. I found that it is very valuable to regard myself as a member rather than an invigilator. No matter what you are doing or want to do more important, the Project Members who are here for help should have "unshielded interruptions" (Note: unshielded interruptions are a hardware term, this indicates the highest priority.

Your second priority is to satisfy the customers in your organization. As a project manager, if you are no longer involved in the first-line development of products, you may have very few direct opportunities to satisfy your customers. However, you must create an environment for your project members so that they can work in this environment to meet the customer's needs most effectively. This is an important function of the Project Manager.

Your third priority is your own business. It may be a project-related technical issue (or of course you are interested in), or something your boss wants you to do. However, when these tasks conflict with the above two high priorities, you need to prepare for delayed processing.

Your lowest priority is those that are purely pleasing to your boss. In a normal organization (a non-Dilbet organization), if you do the three more important things mentioned above, your boss is already very surprised. Although not everyone is so lucky to be able to work in a "normal" organization, they are still trying to do the three most important things well. Focus on helping subordinates to be productive as much as possible --
And be happy, rather than pleasing those who are "above.

Analyze your skill gaps

When you are a project manager, you will often realize the gap between your leadership and management skills, unless you have fully prepared for this new position. You have a strong technical background, which may be one of the reasons for promoting your leadership in the technical team, but you still need some other skills. You need to objectively evaluate your strengths and weaknesses and narrow your gaps.

Software developers are often considered to lack excellent communication skills. You need to strengthen your interpersonal skills, such as mediation, persuasion, and sales promotion. You need to deal with scenes that you don't want to deal with, such as dismissing your subordinates, "bargaining" on the progress, and "quarreling" for subordinate performance ".

When I started my manager role, I offered a Listening skill course, which I thought was very valuable. During the first-line development, we often have extraordinary efforts to express our technical points of view. However, as a manager, an inclusive and listening style and communication are needed. Then, from the "listening" location to the "speaking" location, you need to improve your Presentation skills. If you are uncomfortable with speaking in public, you need to receive some special speech training. This is very good for your future work.

As a project manager, it is your responsibility to coordinate others' work, plan and track projects, perform project backtracking and take corrective actions when necessary. If possible, they will receive training on project management, learn how to set priorities, host efficient meetings, and learn how to communicate without mistakes; read more books and magazines about Project Management and risk Management, such as the PM Network published by the Project Management Institute: you can also get a lot of valuable software project knowledge from the PMT comments ). You can also find many useful suggestions on software project management from SWCMM (Software Capability Maturity Model.

Define "quality"

Although most people take quality seriously and want to produce quality products, the definition of software quality remains controversial, for example, whether high quality is "good enough" or a more classic quality viewpoint-"no defect ". In order to lead your team to the other side of success, you need to spend some time clarifying with your subordinates and customers what quality means for them.

Your subordinates and customers are two different groups of people. They may not have consistent views on quality, so they may have different purposes. If the customer emphasizes the delivery date, he may not be patient enough to explain why the programmer needs additional time to check every line of code. If the customer focuses on software reliability, most of the time he chooses the latter between adding features and reducing bugs. If the customer is used to keyboard operations of the old version, he will rarely be interested in the new graphic operation interface.

In a project I was once in charge of, in order to better understand the customer's quality requirements, I held an Open Forum (Open Forum), in addition to the participation of project members and customers, I also attended the discussion with our customer's superiors. This discussion is very valuable because we found that many original ideas are contrary to the real quality requirements of customers. By understanding the differences between these ideas, we can focus on customer satisfaction rather than on Development satisfaction.

Software quality is often understood as conforming to specifications, meeting customer needs, and as few defects as possible in documents and code (Defect). These are more classic definitions. Six-sigma Quality) and/or Frequency of Failure sets a high standard, but it does not involve other aspects of quality, such as delivery time, availability, feature set, and performance-to-price ratio. Whether we are producers or consumers, we all hope that the quality of our products will be as high as possible in all these aspects, but in fact, we always have to make trade-offs and choices.

In the demand stage, we consider which quality features are important to customers and list them (for example, interactivity, correctness, and ease of study ). Then, we will find some key customer representatives asking them to rate these quality features. In this way, we can master which quality features are the most important and which are secondary, so that we can be targeted and optimize the design for these quality features.

One of the more interesting Software Quality definitions I 've heard is that "the customer came back, but the product didn't" (the customer comes back, but the product does not ). Work with your subordinates and customers to define appropriate quality objectives. Once defined, we will spare no effort to achieve these goals. We also need to set an example and demand ourselves with high standards. Remember this sentence: "Not perfect, not satisfied with excellence" (Strive for perfection; settle for excellence ).

Recognize progress

It is an important incentive to praise and reward project members. You need to set up a reward Program Recognition Program) as a top priority unless you have an appropriate reward Program. Rewards can be symbolic prizes, certificates, or real prizes and cash. When sending the prize, remember to say "Thank you for your help" or "Congratulations on your completion ...". Remember that the scope of rewards should not be limited to your project team. Customer representatives and some external personnel of the project team who provide you with special help should also consider.

The rewards program requires you not only to invest a small amount of money, but also to think about how to reward. Communicate with your subordinates and learn what rewards they care about. Reward activities should be part of the team culture. In addition, try the "invisible" reward to make your subordinates understand that you are truly aware of their contributions and are grateful for this.

Lessons learned and lessons learned

The project you are in charge of is likely to take over halfway, and your predecessor did not do well. Or, although it was a new project, it was previously completed by similar projects, of course there are successes and failures. In either case, as the project owner, you should spend some time analyzing previous successes and failures. You need to know what problems have occurred in these projects to avoid repeating the same mistakes. Failure is the mother of success, but you do not have many opportunities to fail. Therefore, you must learn from others' failures.

Don't wear colored glasses to look at previous projects. Maybe a guy you don't like has accomplished his project well. Of course you can think of it as luck or luck, however, objective analysis may be more helpful to your success.

You also need to objectively evaluate your projects (if any) and find out where your team is strong and where it is. In fact, a project Review (Post-project
Review), sometimes this type of Summative project Review is also called the "opening an autopsy" (Postmortem ). Note that the project review is not to investigate who is responsible, but to discover and analyze problems, it is to do better in the future. You can brainstorm to encourage project team members to express their opinions. In addition, such project reviews can be extended to the project in progress and reviewed at the end of each major stage.

In addition, you need to understand Best practice, which is widely recognized by the software industry ). In SteveMcConnell's Rapid Development (Microsoft Press, 1996), we introduced 27 best practices and 36 "classic" Issues in software Development. This book has won Jolt Award and is a good learning start point. When you want to introduce some good methods, tools, and processes into your project, others may reject, oppose, or even resist them. This is exactly what you are responsible, you need to make sure that the project members understand why they want to do this and make sure they do it without compromise. Some best practices will also be generated within your team, so you should take some measures to facilitate communication and adoption among project members.

Set Improvement Objectives

When you review previous projects and determine the meaning of "quality", you need to set up some short-term and long-term improvement goals. As long as possible, these goals should be quantifiable, so that you can use some simple indicators to determine whether you are moving towards these goals.

For example, if you find that projects in the past are often delayed due to changing requirements, you can set a half-year goal to increase the stability of your needs by 50%. Such a goal requires you to do the actual work every month every week: count the number of changes in demand, identify the source of the demand and the reasons for the change, and take measures to control the change. This may change the way you interact with those who need to change.

Your goals and metrics constitute part of software process improvement. Although process improvements are often accused of being "bureaucratic", every team can find some improvements. If you are stuck in the same way of doing things, you 'd better not expect better results than before.

There are usually two reasons for improving the process: Correct Errors and prevent errors. You need to focus on the factors that threaten or may threaten the success of the project; lead your team to analyze the strengths and weaknesses of your current practice and the threats you face.

My own team organized a two-phase brainstorm exercise to identify obstacles to improving our production and quality. In the first phase, participants wrote their own barrier on the instant post, and each instant Post wrote an idea. Then, the Coordinator collected these instant posts and classified them; so we got a number of big categories, and we wrote them on a large white paper.

In the second stage, these participants also wrote the methods to overcome the preceding obstacles and pasted them to the corresponding categories. After further discussion and analysis, we were able to refine these obstacles and obtain a series of feasible countermeasures.

Setting measurable and competitive goals will focus on your efforts to improve the process. You should check the improvement results with your team members on a regular basis. Remember that the purpose of process improvement is to ensure project and company success, rather than to satisfy the rules in books. Process improvement is implemented as a project with its own progress, input, and output. Otherwise, process improvement will not be paid as much attention as possible, and will eventually be overwhelmed by trivial daily work.

Don't rush for success

Some of the practices recommended in this article will help you a newbie in project management and your team to achieve greater success. With the daily work pressure, you may be a different person, but you must always understand one of your tasks (or chances of success ), it is a long-term task to form your team culture and a set of ways to do things. You can't do everything you want at once. You can choose your own situation and go on the road with ease.

Good luck!

Trackback: http://tb.blog.csdn.net/TrackBack.aspx? Postid = 12696

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.