Oct 25, 2007

How to Win at Office Politics

Like it or not, every workplace is a political environment. But operating effectively within it doesn’t have to mean sucking up, lying, or slinging dirt. In its purest form, office politics is simply about getting from here to there: securing a promotion, seeing an idea come to fruition, or gaining support to make an organizational change. Playing the game well is about defending your position, earning respect, exchanging favors, and keeping your sanity amid the chaos. To get started, you need to know what you really want from work, then orient your political moves toward those goals. It all starts with strong relationships and helping others; those people in return make up the support system that helps you realize your goals. Here’s how it’s done.

Things you will need:

  • Thirty bucks every few weeks for the occasional lunch with a colleague to build and maintain relationships.
  • An hour a week, give or take, for coffee breaks, lunches, and impromptu chats in the hallway — time for you to offer help, ask for it, or socialize with people whose relationships you value.
  • Game Plan: Know what you want to accomplish now and down the road, so you can tie the work you do — and the alliances you forge — to those goals.
  • Allies: Find the people who will listen to your ideas and support your ambitions. Remember: those with the power to help you may be peers or support staff.
  • Chits: Before you can ask your allies for favors, you first need to give them genuine support. What skills, insights, or information can you offer that will have real value to them?
  • Thick Skin: People may try to block your goals to advance their own. Don't take it personally. They're probably not out to get you — they're just out to save themselves.

Figure Out Why (and If) You Want to Play

Goal: Let what’s most important to you guide your actions.

Office politics gets a bad rap because the most obvious practitioners often do it for the wrong reasons: They enjoy the ego trip, or they like to compete for the sake of competition. But the people who quietly succeed at work are also political operators — they just do it better. Those who play the game well map out their career or workplace priorities and align their politicking to those goals. “Political moves are the navigation through your career — not the driver,” says Susan DePhillips, former vice president of human resources for Ross Stores.

Start by writing down your top five career goals and priorities. These could include switching departments, making more money, unloading some of your responsibilities, or becoming the go-to person for your area of expertise. Then write down the five things you’ve spent the most time and worry on during the last six months. Do they match up? If not, you may be caught up in your colleagues’ goals instead of your own.

Next, prioritize your goals. Maybe you’re seeking a promotion, but you recently had a child and want to start leaving the office earlier. It’s not that you can’t have both, but you’re not likely to get them at the same time since new positions usually entail more responsibility and a learning curve. Decide which matters most to you right now, and start thinking about who you’ll need to persuade or influence in order to get it.

Big Idea

Getting What You Want

It’s tempting to think that the best way to get ahead is to buckle down and work extra hard. You’ll be recognized and rewarded for the effort, right? Don’t count on it. You can’t expect other people to magically know what you want in return. Be clear on your goals, and don’t feel shy about going after them.

  • If: You want a promotion...
  • Then: Find out how to get one.
  • Ask your boss what she wants from you and what skills you need to demonstrate to get promoted. Document the conversation in a follow-up email, then master those tasks and skills. This puts you in a better spot to open the conversation again — and get the promotion.
  • If: You want buy-in from another department when you propose an idea...
  • Then: Ask for support.
  • Ask your counterpart in that department when and how he would first like to hear about new ideas: Over coffee? In an email? As soon as they come up? Once they’ve gained approval in your department? See if he wants to be included in related meetings. Involving him earlier will increase your chances of gaining support.
  • If: Someone’s blocking you from your goal...
  • Then: Stand up to them — nicely.
  • Dan Coughlin, a management consultant whose clients have included Toyota, McDonald’s, and Coca-Cola, remembers a regional operations head who was frustrated because her boss finished all her sentences in group settings. “He was stepping in to make sure she succeeded,” Coughlin says, “but in doing so he wasn’t giving her enough room to operate.” The woman confronted her boss privately, and he backed off. With her increased autonomy, she gained the support of the managers in her region, and her boss recommended her for a promotion shortly thereafter.

Create Strong Relationships

Goal: Build the personal network you will need to reach your goals.

Successful politics starts with relationships: You’ll need your coworkers’ support — or at minimum their respect — to accomplish anything. Your colleagues all have their own information and allegiances that they can put to work for you — if, and only if, they’re so inclined. “Relationships are built on reciprocity,” says management psychologist Karissa Thacker. “If you do someone a favor, 90 percent of people return the favor.” Likewise, if you exclude someone or block their progress, you’ll get similar treatment in response.

In seeking allies, don’t just look upward. Coworkers below and equal to your position often have the power to support — or thwart — your goals. Admins may know tricks about how and when to approach the boss with a request. And your direct report in marketing could move to the accounting department and nix your spending budget next year.

The political payoff for forging these relationships may take months or years, but the effort doesn’t need to take much time from your day. Here are a few alliance-building techniques:

Listen without interrupting. Hear your coworker out, particularly when the topic is important to him. It shows respect for his beliefs and opinions. And it gives you time to formulate a clear response if he’s asking you an important question or disagreeing with you.

Acknowledge a colleague’s point of view, even if you disagree. Again, you’re showing respect, and by doing so you can be more persuasive of your differing point of view. If you dismiss her position outright, she might interpret that as you dismissing her, which builds animosity and makes you look arrogant.

Offer a favor when you have expertise to share. When offering favors, look for opportunities where you truly have value to add — rather than focusing on what you’ll get in return. For example, if you’ve been at your company for a few years, help a new hire by clueing them in on how much the CEO hates long emails.

Ask questions. It will spark conversation and help you connect, says Glenn Renner, chief operating officer of HomeSphere, which makes construction-management software. Visit a coworker’s office and ask what he’s working on or why the company does something a certain way. “By seeking to understand, you’ll develop a friend,” says Renner, who spent 17 years moving up the ranks at Sherwin-Williams. Plus, you may learn something that benefits your own goals.

Don’t overdo it. The line between a strong professional relationship and a friendship is a blurry one. “Employee” is your primary role, Thacker notes, so keep relationships “business personal.” Share only the personal information you’re willing to accept as part of your professional reputation. For example: “My kid has to have surgery” is OK to share, but “I’m on medication for depression” is risky.

Beware flying solo. If you never collaborate or delegate, coworkers may see you as a ball hog. Your chances of scoring are better with teammates. More importantly, excluding people may get you excluded from opportunities down the road.

Hot Tip

Reconciling Venus and Mars

Though it’s considered politically incorrect to acknowledge gender differences, it’s true that women and men generally handle conflict and leadership differently. Susan DePhillips, author of “Corporate Confidential: What It Really Takes to Get to the Top,” shares some ways to bridge the divide:

Arguments:

Two men can get into a heated argument during a meeting, then be reliving highlights of last night’s hockey game at lunch an hour later. A woman in the same argument might be too upset to eat lunch at all.

If you’re the guy: Tell an upset female coworker you understand her point of view and acknowledge what’s good about it. For many women, it’s as important to be understood and respected as it is to win a debate. “A woman is only going to get pissed if she’s getting dismissed or shut down,” DePhillips says.

If you’re the gal: Remind yourself this guy is probably not attacking you personally. Even if you’re exploding on the inside, focus the conversation on the facts of the work problem and make your points as succinctly as possible.

Teamwork:

Women tend to be more willing to collaborate than men. They can also stretch a meeting or a project by straying from the subject and discussing things in minute detail. Men tend to be more process-oriented, looking to take the fewest steps to reach an outcome.

If you’re the guy: You may not like to collaborate, but in some cases you’ll have to get over that. Women derive a lot of satisfaction from sharing ideas and relating with colleagues — in part because they want to make sure what they’re doing is right. “Allow other people their own thought process until it becomes counterproductive,” DePhillips suggests. At that point you might say: “I hear what you’re saying and I think that’s important, but let’s move on to the other items we need to accomplish.”

If you’re the gal: When you’re asked to recommend a course of action on a project, don’t come into a meeting with several possible approaches for everyone’s review. Step up and make a decision. If you’re not confident in one recommendation, run your ideas by a coworker ahead of time. If you need participation on a team project from a guy who prefers to work alone, give him actionable steps or break the project into pieces, so he can do his part on his own, his way.

Observe and Listen

Goal: Gain the insight to predict and avoid roadblocks, and take advantage of scoring opportunities.

The most important tools for negotiating workplace politics are your own skills of observation. “Watch who gets promoted, ignored, patted on the back,” Thacker says. “Who holds the power? Who do people listen to and not listen to?” Understanding who is influential and how they do it can teach you what works, what’s inappropriate, what’s rewarded, and what’s punished.

You’re watching for style, Thacker says, which on a broader level can translate to company culture. If the blunt people get promoted or rewarded and you’re timid, work on being more direct. Obviously, you can vary your style only so much, but with a critical eye and ear, you’ll learn what to work on and what to avoid. For example, if you notice that the CEO seems irritated with long presentations but you have a complex issue to present, mention that your update may raise questions and give her the chance to decide whether it’s worth discussing at length. Likewise, if you notice that an influential colleague is shy and prefers to communicate via email, don’t barge into his office when you need help — send a polite message instead.

Danger! Danger! Danger!

Hear No Evil, Speak No Evil

In the course of learning more about the people and dynamics in your workplace, you may end up hearing things you wish you hadn’t. Here are three situations to watch out for, and what to do in each one.

  • Situation: A coworker starts venting about other people in the office.
  • Danger: You get sucked in and contribute to the trash talk, which may be passed along or overheard.
  • Your Response: Say as little as possible and frame your responses around the coworker’s needs, not the people he’s talking about. For example: “I can see why you’re frustrated” or “If you feel like Mike is stepping on your toes, maybe you should talk to him about it.”
  • Situation: A colleague tells you something you feel you should not know about, like an affair between coworkers or a rumor that someone may get fired.
  • Danger: Irrelevant or false information could prejudice your attitude toward coworkers and compromise your working relationships.
  • Your Response: Pretend you’ve got something crucial to attend to, politely excuse yourself from the conversation, and walk away.
  • Situation: You hear news you need to act on, such as a claim that one coworker is harassing another.
  • Danger: “It can adversely impact you and the organization if you’re perceived as someone who didn’t do anything about [harassment],” DePhillips says. “It looks like the company condones the behavior.” If you’re a manager or supervisor, you may also have a fiduciary responsibility to report harassment allegations.
  • Your Response: Pass it up through proper channels immediately. Tell the person who reported the harassment that she needs to tell human resources — or you will. If your company doesn’t have a dedicated HR function, report it to your supervisor, says DePhillips, and if you run the show, talk to your attorney.

Promote Yourself, Tactfully

Goal: Make yourself visible and indispensable.

Even if you don’t consider yourself a player, the workplace is competitive: you have to get into the ring in order to succeed, sometimes even just to keep your job. As in most things, the best defense is a strong offense. Don’t dwell on your shortcomings or others will, too. Look for ways to do your job better by focusing on what you do best, handing off work that someone else does better, and asking to work on projects that incorporate several departments or where you can apply your expertise on projects that tie into company strategy. You’ll be able to demonstrate your ideas and capabilities and make contact with a broader cross-section of decision makers.

Most important, remember: just because you’re doing a good job doesn’t mean other people realize it. To some extent, you need to get comfortable with tooting your own horn. That doesn’t mean you have to brag in the break room. The key is to show, not tell. Here’s how:

The Replay: You’ve done something well. Offer to do it again for a different department, client, or product. Your prior success sells your idea.

The Handoff: Credit “we” instead of “me,” says Renner of HomeSphere. Colleagues will still see your accomplishment, and you earn respect from your team by praising them publicly.

The Fast Break: When a colleague bumps into you in the hallway and asks how things are, don’t hesitate to tell them work is going really well. Often they’ll ask why and spread good news for you.

Plan B

Build a Solid Defense

Even the most seasoned competitors have their off days. Here’s how to defend yourself against bad plays — and recover when you’ve fouled:

  • Use sportsman-like conduct. Don’t argue, discuss. When you’re mad, explain firmly but calmly what upset you and why. If the other person wants to argue, let him vent and yell. Once the blood drains from his face, return to your point or address their concerns.
  • Know when to call your fouls, and when to keep quiet. When everyone in a meeting goes silent after you speak, don’t apologize or backpedal: you’ll only draw more attention to the mistake. Leave it alone, come up with a new plan, or support someone else’s. People quickly forget small missteps. If, however, the mistake is personal — you’ve insulted someone or hurt her feelings — she won’t forget. Apologize promptly.
  • Beware the “good sport” label. There’s a fine line between working extra hard to get ahead and becoming the company doormat. Unless you know what your goal is (i.e., you’re an associate attorney trying to make partner), don’t say yes to an unmanageable workload or give 110 percent to get noticed. Chances are your only reward will be the expectation that you continue to work that hard.
  • Don’t talk to the kicker. Thacker, the management psychologist, cautions against hanging around a colleague whom senior leadership doesn’t like. “You can get painted with the same brush,” she says. “A lot of people miss that one.” If it’s more important to you to make a stand, fine, but be sure that the friendship means that much before you compromise your own position.
  • Get back in the game. Your boss passed you over for a recent assignment or a colleague forgot to invite you to a meeting. Don’t complain about missing out. Make yourself more visible by offering to take on a project that will demonstrate your knowledge or skills.

Help Your Colleagues

Goal: Gain respect and leverage, and get help in return.

You’re bound to need advice, an extra hand, or someone to bail you out of a jam now and again throughout your career. Do for others, and they’re more likely to return the gesture. Helping is probably built in to your job description; the political benefit comes with offering help before someone requests it. There are several supportive roles you can play:

The Ally: DePhillips says she made an important work ally when she intervened to help a colleague who had bombed during a presentation. DePhillips approached him after the meeting, hoping to help without deflating his ego. “The key was to depersonalize it,” she says. Because he was going to start presenting regularly, DePhillips suggested he hire a consultant she knew to help him prepare. His presentations improved measurably, and he became one of DePhillips’ best workplace allies. “The moment you show someone you can be trusted, you end up forming a close relationship,” DePhillips says.

The Fixer: Business and career columnist Penelope Trunk recalls how she made the move from online marketing manager to vice president at a California software company. To prove herself worthy of the promotion, she offered to overhaul operations in the technology-services department, knowing that the person in charge didn’t want to deal with it. Concerned that the staff might resist interference from an outsider, Trunk asked each employee how she could make his or her job better, then asked, “If I help you reach your goals, will you support mine?” One woman wanted to manage, so Trunk trained her on management techniques. Another staffer wanted to spend more time with his daughter. Trunk took some work off his plate and showed him ways he could be more productive. In return, they rallied behind her; the overhaul succeeded, and Trunk was named VP. “The smartest person does not get promoted,” she says. “The person who helps the most relevant people gets promoted.”

The Mentor: Helping your staff is critical not only in gaining support for your goals but in impressing those above you. Company leaders want managers who are well-liked and can motivate people to action. Jon Nordmark, founder and chief of eBags, an online luggage retailer, says this approach paid off for one of his marketing executives. She often sat with employees at their desks, helping them on projects and crediting them for successes. When her boss quit, Nordmark had to pick between promoting her or another staffer, a man with an MBA from Harvard. “We chose the one we felt the team would rally around,” Nordmark says. “The woman who had helped her employees.”

The Customer’s Friend: Particularly in large organizations, people get caught up in doing their small piece of a larger process, says Emmett Murphy, business consultant and author of the soon-to-be-released “Talent IQ: Make or Break Strategies for Winning the Talent Wars.” Departments can lose sight of the big picture and disagree about how things should be done. Murphy’s response in such situations is “serve the customer.” If you must mediate when two teams or employees disagree, base your decision on what’s best for the customer, and explain your reasoning to both parties. It’ll gently remind them why you’re all there in the first place.

Nitty Gritty

Gossip for Good

We all know trash talk is a dirty business. Aside from the ethical questions it raises, spreading gossip can threaten your job and your reputation. But not all gossip is negative — especially if you act on what you hear rather than spreading it. Use information to do someone a favor, and the good will come back to you later. This is called strategic gossip, and here are two examples of how it’s done:

  • What you hear: In a meeting tomorrow morning your boss will assign an IT staffer to a highly desirable new project.
  • What you do: When a respected coworker from IT tells you at lunch that she’s skipping tomorrow’s meeting because she’s too busy, you tell her “just be there.”
  • What you hear: A prized employee is looking for a new job.
  • What you do: Don’t mention the rumor, but meet with him and ask what he’s looking for at your company in terms of opportunities, responsibilities, or compensation. Tell him what he needs to do to earn a raise or a promotion, for instance, and that you’ll help him in that process.

Jun 5, 2007

What Your Boss expects from You ?And what you should expect in return.

It’s well understood that the relationships between a boss and his or her direct reports are important ones and figure strongly in the success of a team. Yet while much has been written about character traits and issues of openness and trust, the leadership literature has had strikingly little to say about what a leader should be able to expect from his people. Over the years, I’ve observed that certain behaviors, on the part of both the subordinate and the boss, are conducive to productive and rewarding relationships. Indeed, I’ll favor someone who exhibits the behaviors I expect over someone who doesn’t, even if the latter’s numbers are slightly better, because I know the former has the potential to contribute more to the organization over time.

In sharing the lists below—what I’ve come to think of as the CEO compact, a set of expectations both from and for a leader—I hope that I can help other leaders and teams improve their relationships and, as a consequence, their performance.

What I Expect from My Direct Reports

The following behaviors are powerful individually, but taken together they drive performance and growth in a way that has a significant effect on long-term results.

Get involved.

Good executives know how to delegate. But more important, they know when a situation calls for their immediate involvement, whether it’s in redirecting resources to a product that’s suddenly taking off in the market, helping to resolve a breakdown in quality, or visiting a plant to discover why its productivity has faltered. There’s no excuse for not taking responsibility when you see a problem growing. I count on my reports to take the blame for things that go wrong and give credit for positive developments to their employees. And I expect them to have the courage to deliver bad news. If you’ve got to close a plant, go to the plant and tell those employees yourself.

While there are no hard-and-fast rules about when your involvement will have the most impact on the business (that’s a judgment call), I’ve found that good managers generally step in under three types of circumstances: when somebody is falling behind in her commitments; when important personnel matters arise, particularly if there is conflict; and in a crisis. Just because you’re an executive vice president doesn’t mean you don’t have to work anymore.

Generate ideas.

A common frustration in corporate America is a lack of ideas. A person who is innovative and creative is a pearl to be treasured. Unfortunately, idea people are not generally applauded in organizations. They’re frequently at the periphery, because people think they’re off the wall. But I want to hear what they have to say; it’s my job to sift through ideas and decide which ones have merit. Often the best ideas sound crazy at first. For instance, when I got to AlliedSignal, people were very dispirited by the company’s lagging performance, and I was looking for a way to raise morale. Somebody suggested that we hire a band, put out hamburgers and hot dogs at midday, and make lots of noise, so the employees would feel there was a reason for optimism. A lot of people said it was corny and wouldn’t work—but it did, and it became an annual event. Another example: When sales of a particular liquid we offered declined, one manager proposed we paint the canisters bright colors instead of the industrial gray we had been using. The idea was met with derision, but we tried it, and it made a difference. Sales recovered.

As for more mainstream executives, they can come up with good ideas too, but often they are reluctant to speak out. I’m willing to give them a little push. If I’m in a meeting and people aren’t volunteering anything on a controversial subject, I tell them we’re going to be there for a while. The subsequent silence gets uncomfortable—eventually enough so that people start to talk. In one case, I came to a meeting to discuss a management problem we’d noticed in a customer organization. I listed three or four reasons why it was important for me to speak with the customer’s CEO about it. People resisted, but they weren’t offering any alternatives. We waited for quite a while, and finally somebody spoke up. After some dialogue we decided that a person lower in our organization would speak to a person lower in the customer organization, rather than risk the flap that would come out of elevating the issue to the highest level.

Be willing to collaborate.

It’s surprising how many people still resist collaboration or sharing credit, even though we know how much more we can achieve when we bring everyone to the table at once. There can be very practical reasons for this—for example, it may not be in someone’s financial interest to cooperate. But I expect people to trust that I will notice when they take an action that, say, costs their unit $2 million in the short run but will benefit the company overall in the long run.

This is something I take very seriously. Some years ago I was running a big business that was functionally structured. The person who ran manufacturing and the one who ran marketing and sales did not get along well; they just wouldn’t communicate. And because they didn’t work together well, neither did their organizations. As a consequence, our inventories were always out of balance. The three of us met, and I told them that it didn’t matter whether they liked each other or not, but the way they worked together had to change. They left the meeting with instructions to overcome their differences, but three months later, nothing had changed. I called them back into my office and gave them both separation packages on the spot, telling them that although I thought they were good performers individually, their failure to collaborate was hurting the enterprise. An imposing guard was waiting at the door to take their badges and escort them from the plant.

At about 3:00 that afternoon the telephone rang. It was the two of them, asking to gain entrance to the plant. The first thing they said upon arrival was “We get it.” They came back to work, and I don’t know that they ever learned to like each other, but they learned to work well together—and more important, so did their organizations. Our overall performance improved considerably.

Be willing to lead initiatives.

There’s no way of knowing how a challenging new project will turn out, so people are often reluctant to be associated with an untested idea, particularly if it crosses functional or unit boundaries. They duck under the radar screen rather than risk going up in flames. But I want people to raise their hands. When we started with Six Sigma at AlliedSignal, some people didn’t like it or weren’t sure about it, but I’ll never forget the people who took a chance, who assumed leadership roles even though they didn’t know much about the program. That’s an attribute I prize in my employees. The ones who led the Six Sigma efforts were told that their careers would be accelerated if they succeeded, and those who made a contribution beyond unit boundaries did in fact climb the ladder faster than those who didn’t.

Develop leaders as you develop.

Too many people are selfish about their development. I want my direct reports to take as much interest in their subordinates’ development as they do in their own—if not more. Early in my career, when I was at GE, I had a boss, a midlevel manager, who was a good performer but knew that he had gone as far as he was going to go. He called me in one day and said he felt I had a chance to be a lot better than he was and that he was going to do everything he could to help me reach my potential. From that moment on, he was more interested in my development than in his own. He went out of his way to criticize or praise me when I needed it. I’ll never forget him; he played a very meaningful role in my career.

A strong signal that executives are committed to developing their direct reports is involvement in performance appraisals. I expect my people to be personally involved in reviews—not to hand them off to someone in Human Resources—and to supply their employees with specific and useful feedback. When I was at GE and Allied, I regularly reviewed the goals my direct reports were setting for their subordinates. If they were vague, I asked them to keep working until they’d achieved an appropriate level of specificity. For instance, someone might list “improve interpersonal skills” when what he really meant was “be more willing to collaborate.” The goals have to be specific enough that people know how to approach the issue and whether or not they’ve made progress. “Improve interpersonal skills” doesn’t tell an employee what to do.

Stay current.

There’s nothing more depressing than sitting in a business meeting with people who don’t know what’s going on in the world. I expect people to read, to watch the news—not just because it makes them more interesting but because what happens in the world affects what happens to us, to our marketplace, and to our competition. We make decisions in the context of world events, so people need to pay attention to them.

I also expect people to know what’s going on with customers—how they’re changing, how their competition is changing, how technology and world events are affecting their strategies. Customer relationships are an asset; people should bring them to the table.

Anticipate.

One consequence of failing to stay current is that you risk a setback you ought to have anticipated—and you either recover more slowly than you should or never recover at all. Political events often trigger strategic threats. I’m a board member at Merck. With the Democrats in control of Congress, Merck is thinking about how to address that party’s longtime platform on pharmaceutical pricing. It would be foolish to wait for new regulations; far better to get ready now.

A talented executive who once worked for me was perpetually caught off guard by adverse events—a new competitor, a negative regulatory development, an unforeseen customer problem. He worked very hard and he was smart, but he was frenetic and reactive, and never looked up to see the iceberg ahead of him. He even brought in a consultant to help him think through where the business would be in a couple of years, which culminated in a nice book that went up on the shelf while he went right back to his in-box. Eventually I began to spend the first 20 minutes of every meeting with him asking what he thought was about to happen. We went over competitors, customers, the regulatory environment—anything that might have an impact on the business. He improved, and he went on to become a CEO at another company, but anticipating change remained a struggle for him. The fact is, if it isn’t in your DNA to anticipate, you don’t. You can move the bar a little and find ways to compensate, but you can’t change your nature. The people who are constantly looking around corners are best suited to leadership positions.

Drive your own growth.

I expect people to seek perpetual education and development—not necessarily by going back to school but by exposing themselves to new people and ideas. Ask your boss for feedback, and if he or she isn’t willing to give it, then turn to peers and subordinates, or find a mentor. Accept demanding assignments; you learn much more from them than you do from cushy projects. This takes some courage, because the outcome may not be as good, but it demonstrates that you’re interested in your own development. It also prepares you for difficult challenges in the future. I’ll promote somebody who has stretched his limits in tough assignments with sometimes disappointing results over somebody who met his targets by taking less taxing roles.

Be a player for all seasons.

It’s one thing to sustain the behaviors I’ve described in good times. It’s easy to collaborate, to stick up your hand, to offer ideas, when sales and earnings are growing by 20% a year. But how do you behave when they’re in decline? I expect positive behaviors no matter what, and people who can live up to that stand out in my eyes. I can think of several people who were leading businesses, beating their forecasts, able to attract quality people—as long as the market was good. In a downturn they’d lose their ability to motivate and inspire people, their self-confidence would begin to wane, and I’d have to take them off the job.

On the flip side, some people are well suited to containing costs and keeping a business afloat when opportunities for growth are minimal, but are so perpetually paranoid that they can’t take advantage of an upswing. I always look for someone who can thrive in either circumstance, and I’m amazed at the number of people who can’t.

What My Direct Reports Can Expect from Me

The CEO compact has two sides, of course, and I know my subordinates will do their jobs most effectively if they can expect a few things of me as well.

Provide clarity of direction.

If I’m the leader, it’s my job to communicate clearly where the business is going, why, and what the benefits will be if we accomplish what we set out to achieve. Every quarter the boss should get up in front of her team and explain the financial results and the progress of any operational or strategic initiative. This provides a crucial context for the work. If I simply tell someone, for instance, that he needs to improve cash flow, that’s not terribly motivating. If I show him the actual numbers, he has some perspective on why and to what degree cash flow is an issue, and a better sense of how his job contributes to the enterprise as a whole.

Set goals and objectives.

An executive may assume he’s doing a good job, but he can’t know for sure that his boss would agree if he has no specific goals and objectives to strive for. In addition to team goals, each person should know exactly what individual goals he or she is going to be measured on over a given period and where to invest precious time.

When goals and objectives are clear, promotion and bonus decisions can be based on merit. Morale suffers if people think there’s some mystery to the process, some behind-the-scenes explanation. They’re much happier and more comfortable when they know they’re working in a meritocracy. As a CEO, I never felt uncomfortable when somebody came to ask me why I had put one person into a role rather than another. If I couldn’t explain my decision, then shame on me.

Give frequent, specific, and immediate feedback.

When I give feedback, I’m signaling to people that I’m interested in their growth and that I see a path for their future. Employees shouldn’t have to wait for an annual review to learn how they are doing, and if the feedback is going to help drive their growth, then it needs to be as specific as possible. I hate it when a boss says simply, “Great job, Joe.” Joe may have done a great job, but possibly he could have done even better, and if I point out how, maybe he will do better next time. If Joe gives a presentation, I owe him feedback right on the spot. I might say, “You came prepared, you seem to know your stuff, but I heard five ‘um’s in the first two minutes, and that distracts your audience.” If he did particularly well, it’s helpful to point out why, so he can repeat the behavior: “Great job, Joe, because you did your homework and made your point clearly in less than five minutes.”

When the annual review comes, it should be simple. Forget HR jargon that attempts to disguise reality. An effective performance review tells the employee what he does well, what he could do better, and how he and his boss can work together to fill any gaps—no complicated forms or ambiguous language. (See the exhibit “A Simple Assessment.”)

Be decisive and timely.

Decisiveness isn’t useful if it isn’t timely. People should expect me to make decisions as soon as I have the information I need, and not to be careless or impetuous but to give clear, unambiguous answers. When a big contract is on the line, the time for the boss to pitch in is not the last minute, it’s a month earlier. At Allied, a salesperson who was working on a deal with Boeing, say, might ask me to place a phone call—not because I could sell the job any better but because I represented the organization. I shouldn’t be making the call at the eleventh hour; I should make it well before the deal is set to close, when I can have more impact.

The problem is, people are often reluctant to get the boss involved for fear that asking for help will be perceived as a sign of weakness. They end up asking just when they think they’re going to lose the deal. I consider asking for help a sign not of weakness but of self-confidence.

Be accessible.

If I expect people to keep me informed about what’s going on, then I need to be available when they need to see me. It’s certainly in my interest. Frequently a boss doesn’t learn that someone is leaving the company until he’s about to walk out the door. If she’d known the employee was contemplating a move a month earlier, she could have taken him to lunch, talked to him about opportunities within the company, and maybe changed his mind.

And people should know that I’m not going to come down on them if they bring me bad news. In fact, I’m quite aware that if they’re coming to me, more often than not the news is bad. Most people can handle good news on their own; they turn to the boss when they need some help.

Demonstrate honesty and candor.

People spend far too much time figuring out how to tell others something unpleasant—how to deliver the news in a diplomatic way. This is common in performance appraisals. When I visit companies that I consult to, the first thing I ask leaders for is copies of their appraisals of subordinates, and I am continually amazed at the avoidance in their language. Look at the difference between vague and specific characterizations:

Vague / Specific

Hard worker / Results oriented

Attentive / Anticipatory

Detail oriented / Analytic problem solver

Good listener / Great communicator

Watches over his people / Holds people accountable

Amiable / Team player

The language on the left means nothing. Masking the truth doesn’t help people develop. If I can say something sensitively and diplomatically, so much the better. But if I can’t, I owe it to my employee to say it anyway.

Offer an equitable compensation plan.

People want to be compensated fairly, in a way that reflects their contributions, and they want to understand how the compensation plan works. Employees should be able to estimate the size of their bonuses at the end of the year, because if the boss has also set clear goals and objectives, they know whether they have lived up to them, and they have a good idea of how the company did overall. The process shouldn’t be shrouded in mystery or overly complicated.

Much of what I’ve described here has to do with keeping bureaucracy at bay. Bureaucracy is self-perpetuating, and cutting through it is a constant battle; because it’s a fact of organizations, you can never truly get rid of it. You can tell it’s creeping in when decision making slows to a crawl, or when the battery of forms needed for performance reviews begins to obscure meaningful feedback. Maintaining these behaviors helps to show when red tape is encroaching on productivity—and helps to minimize the effect.

Of course, it’s much easier to live up to the first of the lists I’ve outlined if you have a boss who lives up to the second. But you won’t always be blessed with such a boss. If you aren’t, the best thing to do is create a CEO compact with your own subordinates, and demonstrate by example. These behaviors will make you a better employee and may help you get promoted. They will certainly serve you well should you leave for another job. The purpose, after all, is to improve team and company performance, which should accelerate your own growth.

May 22, 2007

How to change your job without changing your office

In your own company , if you are want more challenges and if you thinks there are enough scope for improvement, you might want to consider applying for an internal vacancy. Internal job moves are generally considered easier to achieve than external ones. Employee wise, you dont have to adapt to the new envionment. You dont have to be sad or taking the openings and you can broaden the scope of business . Your career graph also can be planned much better .The organisation wont be loosing a valuable resource .

Incase you are bored with your current job and is not ambitious with salary alone, best way is to try for a job change in your own organsation. . Remember that there are a lot of jobs on the market, which are never advertised. The people who end up getting these positions know how to seek out the right opportunity and to be in the right place at the right time.Before you rush into looking for vacancies, it’s important to think about what you really want from your career and from your next step.

Identify yourself

Try a question yourself about the scope of your career plan.The career has to be your goal.Your long-term goals and short-term objectives should drive your career path.Identify your career related strengths and weaknesses, do not be too tough on yourself but you have to be honest. You do not have to share any of this material with anyone but yourself.

You do not have to be the perfect employee. Try to determine what qualities are employers in your area are looking for. Then determine if you have these qualities and at what level. Most Employers all have the basic requirements in terms of basic skills :

* Self-motivated / Confident
* Flexible
* Team player/good communication
* Organized
* Energetic/Enthusiastic
* Attention to Detail
You have to work on the basic skills first and then work your way up to the skills required by your profession.

Where are you now? What is your career position now ? Make a list of the things you like and dislike from work. This will make you more aware of what career and job you are looking for. Writing these things down, will also present a better picture of the whole.You have reviewed what you like and dislike about your current job and what are your strengths and weaknesses.Where do I want to be in my career in the short term? Where do I want to be in my career in the long term?


Identify the potential market

Prepare a list as you would for any other by working out what you have to offer other parts of the business in terms of competence, confidence, character, and motivation. The questions broadly addressed will be What all i Need to Know and How should I go about looking for these jobs in your current organisation.

How i can attach to the market?

Your employer may have a web site, an intranet, a newsletter, or a staff bulletin board, all of which could advertise current vacancies, so check these out regularly. In some organizations the policy is to offer vacancies internally before opening them to others, but in other cases all positions may be advertised externally from the beginning. Your human resources contact should be able to tell you where your employer advertises, both internally and externally, for the kind of job you are seeking.

What if I don’t find anything I like?

Don’t give up if you don’t see anything that appeals to you immediately. Make an appointment to see someone in human resources, as well as your department managers. This way you can let them know that you’re considering a move, what type of position you’re looking for, and the strengths that you feel you have to offer other parts of the business. If you think your boss would support your move, he or she can help you to seek out opportunities and provide support for your advancement within the organization.

How can I increase my chances of promotion?

A consistent long-term positioning effort is the most effective way to assure yourself of promotion, whether now or in the future. If your company has a reasonably formal work culture, always dress for the job that you want, rather than the job that you have. This helps people to visualize you in a more senior role, and it creates a good impression with any senior managers and directors you come into contact with.

The higher you rise up the ladder, the more you will need to show your ability to communicate with people across the business and at all levels. Think about ways that you can achieve this within the normal boundaries of your job, and then think beyond this to other circumstances. What can you do that would be useful experience for the future? For example, are there any tasks that your boss would be willing to delegate to you that will allow you to develop your skills and become an important part of the organization?
What can I do now to get noticed by the right people?

http://home.earthlink.net/~autumnglory/RileyWeb/Wilson.jpgWithout losing the ability to have fun at work, you need to take your role and your future seriously. If your company values the development of its staff and offers encouragement in that area, ask for a mentor. This will communicate that you are thinking about your long-term future within the business, and that you’re working on your skills and experience for tomorrow. It will also help boost your confidence when it comes to communicating with more senior colleagues. Find out as much as you can about the strategic direction of your department and the company as a whole. It is much easier to align what you and your team are doing if you are clear about higher level objectives and goals.

Also, don’t be humble or boastful when asked about your achievements. Be clear about, and proud of, your successes and take well-deserved praise gracefully. Then say something like, “I think that experience can be really useful to me. How would you build on that if you were me?” This simple question gets the other person engaged in thinking about how to use your skills in the business, and often opens up new opportunities.

My boss is leaving. What can I do to get her job?

Not everyone is able to talk to his or her supervisor about ambitions, and in fact you may feel that your boss would be threatened by your plans. However, it’s just as likely that they may support your bid to take over when they have left. If you think this is the case, try to get some clear feedback on the areas you need to work on in order to be seen as a credible successor. Your boss may also be ready to do some groundwork on your behalf and bring up your name with the right people as plans take shape to fill the vacancy.





Analyze the jobs

Advertised Positions

Most job listings will contain the following parts
duty statement outlining the main responsibilities, accountabilities, and tasks
additional information, perhaps about what the department does or who the customers are
selection criteria: what strengths and abilities an applicant will need to perform well
salary guide: this is often negotiable
selection process: the closing date for applications, how to apply, contact names, etc.

Notice what criteria are listed as being “essential” and those that are considered “ideal.” For elements on the essential list, you will need to show that you meet the stated qualifications. If you don’t have the exact requirements listed in this section, you’ll need good alternative qualifications or experience to offer as evidence of your ability to do the job. The section that describes the ideal candidate gives other desirable characteristics that the employer feels would be a bonus. As a rule of thumb, if you believe there is an 80% match between what you have to offer and the position you are considering, then it’s worth your while to apply for it.

Unadvertised positions
It is a little harder, since you won’t have a job description in front of you and will have to procure the information yourself by asking questions. Even when you have an ad to start with, you can make a phone call to clarify or to get further information that will help you decide if the job is for you. In fact, this may make you more memorable, as long as you don’t take up too much of a person’s time or probe too deeply. Prepare yourself the conversation so that you make a good impression. Make a list of the job requirements mentioned in the ad, as well as the evidence that you can meet each of them. You can add to the list or make notes while on the phone. Decide in advance what questions you will ask, remembering to keep them brief, and practice what you will say if asked for information about yourself.

Fill Out Application Forms Correctly

Keep Your Résumé Current, Short, and Functional

Always keep your résumé up-to-date, adding new achievements, skills, and qualifications as you go along. This way, you won’t have to spend time restructuring it when you hear about a job that you’re interested in. However, don’t send your résumé without checking that it has the right tone of voice, and that it emphasizes the necessary skills and strengths for the job you are applying for. If you are interested in more than one type of position, it may be a good idea to have more than one résumé on hand, each emphasizing different experience and abilities.

Keep your résumé down to one or two pages. You need to give enough information to interest the recruiter, but you don’t want to bore them with superfluous information. Also, there is no need to tell everything now. Less sometimes has a greater effect than more. The secret is getting the reader to think of questions that they would like to ask you. For example, you could talk about an achievement and the impact that it had on your department but hold back the information about how you did it, leaving this as a “hook.”

Remember that you need to grab attention in the first half page, so don’t waste this section listing your middle names, hobbies, and the organizations you belong to. These items can be left out or put at the end of the second page. Make the most important information readily accessible, and remove information that is not relevant to this application. An hour carefully tailoring your résumé can prove to be well spent.

Write a Brief Cover Letter

Whether you send a hard copy of your résumé and application or use e-mail, a brief cover letter should go with every application you make, highlighting how you can meet the employer’s requirements or solve their problems. The format should be the same as a formal business letter, and should fit easily on one page. If you know the person in your organization that you are writing to, the tone should reflect that fact, but remember that the letter may be shown to others—be friendly but professional. Using short, simple sentences to get across your message, write:

an opening paragraph that immediately shows your relevance and makes a connection between you and the position you want
the highlights of your relevant strengths or achievements
a strong concluding paragraph that asks for a meeting to discuss the position further

Follow Up with a Phone Call

Once a job opening has been posted, recruiters are often inundated with replies and need to quickly screen out those they don’t consider to be viable job candidates. One criteria that they may use is motivation. Because good candidates are most likely to be sincerely interested and excited about their role, they should be motivated to follow up their application with a phone call. Recruiters will sometimes sift through and keep the most promising applications on their desk and wait to see which applicants call. Those that call are invited to interview.

A follow-up call is best done about a week after you send the application. Start by asking the contact if they received your application, and then politely inquire when you can expect to hear about an interview. You can close by saying you are interested in the position and hope to have the chance to discuss it further. Keep the call short, unless you are invited to say more about yourself.
What to Avoid
You Put All Your Eggs in One Basket

Don’t put your life on hold; even if you are quite certain you’ll be offered the job you want. If your current position is not right for you, keep looking and inquiring until you have a definite offer. If you look elsewhere you may find similar positions in other organizations that are just as good if not better than what is available in your own company.
You Take a Job Description at Face Value

Remember that most job postings will describe a position in the most favorable light possible. This is why it’s important to identify the issues: what would you like more of in a new position and what would you like to avoid? What elements do you expect to be different in another part of the organization? Once you have decided what is most important to you, talk to people in the relevant department to see if your expectations match the reality of the situation.

Apr 24, 2007

Configuration Management-The Quality team in disguise in your Organization


PDF Print

Configuration Management is complex. And as a product evolves, CM gets even more complex. Complexity breeds problems. So how do we continually march our product configurations toward higher and higher quality. You need good people, process, tools and automation. People define and put the processes in place. Tools are used to automate the processes and to bury the complexity of CM below the user level.

Development is a process that takes ideas and turns them into products. There are many techniques and tools to do design and implementation. The right mix is required to effectively develop a competitive product. On the management side of things, the same is true. Application Lifecycle Management requires the right set of processes and tools to allow the design efforts to be properly leveraged and to yield the best quality.

From my perspective, the two most important guidelines are to keep it simple and to automate. But how do you keep CM simple? And how much effort do you spend automating? What's the most effective marching strategy? Let's take a look.

Process and Team Work
Take a fresh development team who have been working away for weeks or months without any CM tools. Now tell them that they have to start using a CM tool and put all of their existing work into the CM tool. The complaints begin: We don't have time to introduce a new tool. Our designers will balk at the idea. We don't want to lose focus and we've got a deadline to meet.

Your development team may have some valid points. If you try the approach: "I know you'll take a hit, but it will improve product quality", you may make some inroads, but you may not get very far. Rather than imposing a CM tool on your team, take a different approach. "I want to make everyone's job easier. The result will be a better product." Now you'll get a bit more attention. So how do you deliver?

You have to get your product from the start line to the finish line. Not only that, but you have to make sure that what you finish with satisfies the requirements you started with. And you have to make sure the result is of high quality. Walk through the steps. How are you going to accomplish this? Well you'll need to test the product at the end. You'll also need to ensure that all of the requirements are covered by the tests. And then there's everything in between:
Waterfall model
  • * You take the requirements of the customer/market and turn them into a product functional specification.
  • You take the functional specification and create a design around it.
  • You take the design and you structure your code base accordingly.
  • You fill in the modules of your code base using the best available integrated development environments.
  • You integrate the modules and do some sanity testing.
  • You do you full verification testing.
Agile, iterative approach
The big difference here is that you have various iterations running through these steps in an overlapping fashion. You may start your specification and even your design based on only a small subset of your requirements. Your requirements may be phased in so that you can give your customer feedback and iteratively refine the requirements. Your verification team can start building tests to hard requirements, or even dig up an old test suite which covers a portion of your requirements.

How you go about your design process may be very important. The waterfall method may be most appropriate. Agile development may work better. But the bottom line remains that you have to start with a set of requirements and end up with a quality product that meets those requirements.

Your CM tools and processes must support you in doing this. And don't forget, you've already promised to make everyone's job easier.

The entire team needs to be part of the process. They need to have an overview of what the ALM processes are and must have open avenues for making recommendations. Furthermore information and input solicitation meetings should be made available. When everyone feels they are part of the process team, they will use the available avenues to recommend process improvements or to highlite problems in the process. This will lead to continuous process improvement, and higher quality products.

What's My Job
"Hi, I'm Bob, a programmer on the project. My manager gave me an API that I have to implement. I just want to write the code in a few files in my directory, compile them and hand over the results. I don't want a CM tool getting in my way. I know what I have to do and I have the tools to do it! How are you going to make my job easier?"

Here we have a programmer who doesn't understand his job. Like it or not, the programmer will have to do the following things in addition to the steps he perceives in his mind:
  • Make backup copies of the code in case of disk crashes, etc.
  • Put Copyright notices into each of his files
  • Run tests to ensure that the resulting code is working.
  • Have others run tests to ensure that the API implementation is successful
  • Keep track of problems that others have found in the implementation
  • Fix these problems
  • Let others know when the problems are fixed
  • Identify changes to the API requirements for the next release
  • Implement and test those changes while making sure that the original release still works.
At this point, the programmer realizes that he needs to keep two versions of his implementation: one for the current release and one for the next release. Not only that, but he has had to keep track of which requirements (i.e. versions of the API) apply to which release. And which tests are to be run on each release. Then there are the problems that are reported: do they apply to the current release or the next one, or both? And what happens when he fixes a problem in the next release and then realizes that it has to be fixed in the previous release as well?

So, maybe the programmer didn't really understand his job that well. Quality requires that each team member understands the job assigned to his/her role. Well defined and well understood roles allows the puzzle to fit together without any missing pieces.

Still, he argues, he could just maintain two parallel directory structures, one for each release.

Hiding the Complexity
The programmer has accepted that his original job understanding fell a bit short, but has developed a directory structure to hold the API requirements, test scripts, code, problem descriptions, etc. in a nicely ordered fashion. He's comfortable. He doesn't really need a CM tool. That is, until someone comes to him and asks:
  • That problem that you fixed, which files were changed to fix it?
  • Can we do a code review on that fix?
  • We delivered our product 2 months ago to customer X. Is that problem fixed for that customer?
  • Can you propagate the change you made last month to the next release? Are there any other changes that should be propagated?
  • By the way, we'll be shipping release 2 next month, can you start work on release 3 tomorrow?
Bob is a smart programmer. He knows he could continue to evolve his own processes to help him to track things. But now he realizes that this is a much larger task than he originally thought and that he could use a few tools to help him out. His world is just becoming a bit too complex.

Many programmers will be able to keep all of the complexities in mind as they learn them. Many will not. The CM tool needs to hide these complexities. Complexities in the process and at the user interface will lead to human error for any number of reasons. A good CM tool will hide the complexities by ensuring that it has sufficient context information to allow the user to work more simply. Simpler user interface, fewer errors, higher quality.

I've seen and heard of many projects with very complex branching strategies, along with labelling instructions and repetitive merging. The developer doesn't want to have to spend hours understanding a branching strategy only to find out that he has to create a maze of branches, label them and finally work himself out of the maze. Instead he'd like to say: I'm working on this release of this product. I'm making the changes approved for this feature or problem report. He then goes to the source tree, checks out the files, makes the changes and checks in the tested results. The CM tool lets him know if he needs to create branches, or if he needs to reconcile his code because someone else had a parallel checkout. The CM tool tracks the status of the change, rather than forcing him to keep it on his working directory until such time as the build team allows him to check it in.

Look at the product manager's tasks. Or the build and integration team tasks. These are complex. It's up to the CM tool to hide the complexity for them as well.

The build doesn't work - the CM tool gives the difference between this build and the previous working one - not in terms of lines of code, but in terms of changes, features, problems fixed, developers who made the changes. If he wants to drill down to lines of code, fine, otherwise, hide this complexity.

The marketing team wants to put together a glossy about the new features for the upcoming release. It has to be accurate. The faster they can do it, the later they can start and the higher the accuracy level. If they have to spend days or weeks collecting the information, their job is too complex. It should be presented to them by the CM tool which has all of the traceability information and clearly identifies features that are already implemented from those that may not make the release deadline.

The project manager informs the product manager that the release cannot be ready on time. The product manager does not want to spend days collecting information and trying to put together alternative plans. He wants the CM system to tell him what will make it into the release if he maintains the same deadline, and what won't, so that he can go back to the customer and/or marketing team and negotiate. He also wants to ensure, up front, that all of the high priority items will make it. After negotiations, he wants to easily adjust the release so that development, documentation and verification teams have an accurate picture of what has changed. It good to communicate these changes through meetings and documents, but if the CM tool is not driving the to-do lists and tasks based on this new picture, it will take a lot longer to turn the ship to it's new destination.

If the complexity is hidden behind a few buttons, it disappears from view.

The CM Tool - A Help, Not Overhead
Some CM tools are designed to help the development team members with the addition of a minimal amount of overhead. I would argue that this is not good enough. A CM tool should have negative overhead - that is, it should actually improve the team member productivity while collecting the data necessary to improve management control. Here are a few examples of what I mean.

Packaging files into a Change. A software change/update often affects more than a single file. A file-based tool requires checking out each file, putting the reason against each checkout, editing/compiling each file, doing a delta/diff report on each file and consolidating them for a code review, doing a check-in of each file, doing a promotion of each file to a "ready" state. Now a change-based tool still requires a checkout of each file against the change package identifier, but the reason is supplied once against the change, the delta/diff report is done on the change, the change is checked in, and the change is promoted. This is a time-saver for the developer. It also has the advantage that those downstream in the process can deal with a collection of several changes rather than more than several files.

Searching for past changes. If you don't have a change-based CM tool, you probably don't realize that you tend to look at past changes (and there deltas) a lot more frequently than you do at currently open changes. If it's difficult to do it's rarely done. But if it's easy to do, you look at it to see how you implemented a change in the past, or more frequently, how someone else introduced a feature or a problem fix - especially if the documentation is not yet up to date. Perhaps you have a strange behavior in your latest build and so you browse through changes to see which one is a potential candidate for the behavior. Maybe you're looking through all of the changes made involving a particular file. This is sometimes a timesaver, but more often its an added value capability-enabler.

Delivering to a customer.
The customer has release 2.2.4 and you're about to deliver release 3.1. The customer needs to know what problems have been fixed, and what features have been implemented. It's fine to wait until marketing produces it's release notes and then you may pass these onto the customer. But it's much better as you approach the end of the implementation cycle to be able to tell each customer what's coming down the pipe, which of his requests have been addressed, which have not, and to receive feedback if there are any critical problem fixes that have not been covered. You still have time to address a couple of these. You have an extra interaction with your customer and the customer feels that the product is evolving with their concerns at hand. It's not just the next version of product.

If you're trying to sell your CM tool as just a little bit of overhead, it's going to be a tough sell. If you're going to make life easier for the user, or give the user new capabilities, or make the user look good when dealing with customers, you just have to identify the benefits and maybe he'll come running to you for your proposed solution.

THE MARCH TO QUALITY
There's no way around it. If you want quality, you have to keep things simple, and you have to automate to ensure reproducibility and to eliminate human error. Here are a few of the areas I see that need attention in the CM industry at large. Some tools have a much better record at dealing with them than other.

User Context
A CM tool needs to be many things to a very wide range of users. This begs for complexity. The best way to simplify is to know the user's context. This may involve:
  • What products can the user work on
  • What role(s) does the user play
  • What product and release is the user working on
  • What was he working on the last time he used the tool
  • What are the user's workspaces and how does each relate to his work
This is a huge starting point. All of a sudden the CM tool can reduce the menus to reflect the user roles. It can reduce the set of data the user has to browse through. It can set intelligent defaults on forms (e.g. a new change - populate the user, product, development stream automatically). It can identify the appropriate set of To-Do lists/Inboxes that the user needs to look at. It can allow the user to work through normal change control operations without having to look at revision numbers or labels.

Product Information
There's a lot of information that a lot of CM tools simply don't bother to capture. This results in additional complexity. For example, your CM tool should be able to tell you:
  • Who is the primary owner of each data record
  • How do products relate to/depend on one another
  • How do I find the source tree for each product
  • What is the development history for the product
Now this list could go on forever as many requirements spawn data schema requirements. But some of these are more crucial to the simplicity of the user interface than others. Given the development history for the product, the CM tool can recommend to the user where branches are to be branched from. Given owner information, data can be restricted or presented in the user-preferred order more easily.

Basic CM Process
If you want to really want to simplify and automate the CM function, you need to have your process reflect the what is being done and you need your CM tool to capture the data needed to support the process and it's automation. Here are a number of ways your process/tool combination can help. Not all of these capabilities will be possible with all tools, but maybe someday...

Change-based CM. The industry already agrees this is good. But it's more than good - it's crucial. You will not be able to build a successful CM tool with file-based CM. You need to be able to track changes and change files only against these changes. The changes themselves will contain the traceability information necessary to interact with the rest of the ALM functions. Select changes for a build, roll-back changes, add changes to a baseline, propagate a change from one development stream to another. If you're doing these operations on a file-by-file basis, you're on shaky ground and the day will come when you put half a change into a release and your customer pays for it. If your IDE plug-ins work on a file-based mechanism only, you'll need your vendor to improve them or you'll need some extra steps in your process to help ensure that changes are properly defined.

Change Context and Change Dependencies.
One step better is to ensure that the change contains adequate information so that it can flow through the system automatically. The change context identifies the product and development stream for the change. This is vital to ensure that the correct changes are delivered to the correct build teams and processes. Ideally, this context information is automatically added to the change based on the user's working context. Change dependencies will be both implicit and explicit. The system can identify implicit dependencies based on the order of file revision changes. The user can add explicit dependencies to ensure that changes are delivered in the right order, where necessary.

Change Promotion.
Branches are overused. If you're using branching to define your change promotion model, you could be doing better. Unfortunately few tools support context views based on change status (i.e. promotion level). If you have one of those tools, you will simplify your branching structure and eliminate a lot of branching, merging and labelling activity.

Changing Tree Structure. Adding files and directories, moving files to new directories, removing files from the tree. These are examples of changes. Rather than being made in the source code, they are made to the directories. And just like source file modifications, a change may also have tree structure modifications. If your tool tracks these great, you're way ahead of the game. If your tool allows your to specify these changes without having to manually checkout and create new directory revisions, all the better. Because when you have to create the directory revisions, you're implicitly introducing a dependency on change order which probably would not otherwise have to occur.

Reduce Branching and Manual labeling.
Branching and labelling run rampant in some CM processes. The reason is that the underlying tools have a branching mechanism, but no other mechanisms to deal with the requirements of your process. If you have to branch to create promotion lineups, to identify short term parallel checkouts, to collect files into a change or to define a baseline or build definition, you'll likely have a lot of labelling to do as well, and a lot of scripting to help automate that labelling. Preferably you have underlying technology which can deal with baselines, builds and changes as first order objects. And preferably you have technology that can compute views and deal with parallel checkouts without forcing unnecessary branching into the picture. A runner-up capability might be one that helps those branches disappear when they no longer add value to the CM repository.

Automated Branching. Your CM repository is tracking all of your development branches, where they've evolved from, etc. It also knows the branching information for each file, directory and ideally the product as a whole. It should let you share unmodified code from earlier streams in a later stream and let you inherit changes from the earlier stream automatically if you so choose. If your branching is well structured, your CM tool should be able to tell you at checkout time whether or not you need to branch and should also identify the branch point for you. It should be automated - no branching strategies to learn. You shouldn't even have to look at the file revisions when you do a checkout operation. There should be enough information in the CM tool to allow this to happen and that's been the case with the tools I've used over the past 20 years. And to go one step further, because the CM repository contains all of the history, it should let you know when you make a change to one branch that may have to be applied to other branches.

Baseline trees vs collections. As an added benefit, and going back to change based CM, branching of directory objects (assuming your tool supports these) should be automated. The changes are defined in the set of software updates you've prepared. You should only have to request a new baseline from the root (or any subtree for that matter) and new revisions of directories should be created according to the updates. In some cases, directories may have to be branched. A tree-based baseline structure integrated with a change-based CM system can eliminate all manual directory branching decisions and tasks. If your baselines are defined simply as a set of revisions with directory specification stored against each, rather than through a revisioned file tree structure, this may be difficult to accomplish.

Configuration View Flexibility. If you have to define a baseline in order to navigate a configuration, you're very limited in your configuration view capabilities. Many tools allow you to specify what's in your view without having to create a baseline which defines that view. In cases where the specification is rule-based, the view changes as the data changes. You can even go one step further if your CM tool will automatically show you your preferred view based on your context, without you having to specify any rules. Your tool should let you wander from one configuration to another as necessary, to look at the contents of a specific build, to view parallel development streams, etc. The quality of your decisions are going to be only as good as the quality of the information you're viewing. And if you're looking at an "almost the same" configuration because its too difficult to look at the actual one, you're asking for trouble.

Stream-Based Main Branches. Many of you have had debates over what's better, a single main branch or a main branch for each persistent development stream. Although a single main branch may seem simpler, it breaks the rule "as simple as possible, but not too simple". As a result, the process required to support a single main branch is much more complex, introducing artificial dates for starting and ending a stream's tenure in the main branch. It also requires three different processes for dealing with a development stream: before, during and after it's tenure as the main branch. Stream-based main branches are simpler - one main branch per stream means the process for that stream is always the same and there are no artificial "start" and "end" dates. This in turn leads to easier automation of the CM process.

Nightly Build Automation. If your process and/or tool does not allow you to fully automate your nightly (or other) builds, they could use some refinement. What's going into the build, what tools are being used, where are the results being placed and who's being notified on errors/completion. Your tools and processes should allow this to be fully automated. Perhaps "what's going into the build" is most difficult. Some simplify by using "whatever's submitted to the repository". This is dangerous as it requests users not to submit completed code into the repository if they don't want it going into the build. A change promotion model works better - all changes at a given promotion level or higher go into the build for that promotion level. You may have builds at various promotion levels. If your tool permits and your project is very large, you may even perform incremental builds automatically. If you can't do automatic nightly builds, take another look at your CM process and data/tools.

This is a partial list, but a good starting point for introducing quality into your configuration management process.

What Else
The difference between levels 4 and 5 of the Capability Maturity Model (from the Software Engineering Institute at Carnegie Melon University) is that a level 5 process is continually optimizing itself. If you want to achieve that level, you need tools that permit you to optimize your process. The easier it is to optimize, the faster you'll move along the Quality curve. There are three things to look for to support your process optimization efforts:

(1) Easy to customize the solution. Whatever solution you select for CM, it must be easy to customize to meet your needs. You have a process in mind because of your requirements. If the tools can't support that process, you'll either never get there or you'll spend a significant portion of your time either doing things manually or building your own tools. Neither is recommended. Make sure your CM solution is easy to customize to your needs.

(2) Easy to incrementally add customizations. This is not a lot different from the previous one, but the fact is, your needs are going to change. Not only that, but you might want to start using your new solution before it's fully customized to meet all of your current requirements. In both cases, you'll need to customize your solution incrementally. Ideally, you can create a customization, apply it, and roll it back if it creates unwanted side-effects. If you have to take your user base off line when you do a customization, you'll either be working a lot of late hours, or reduce your customization flexibility. On top of that, consider the case where you have your process and tools replicated over multiple sites. Ideally you can make a change to all sites at the same time. Better yet, you can use your CM tool as the repository for your customizations so that when a change is made, it is replicated at all of the sites.

(3) Integration of Data and User Interface. Customization of process is going to be very difficult if your CM data is scattered among several repositories and/or if your user interface is different for each part of the process. Yes the buttons and actions are going to be different, but if you need different tool-level expertise to customize each of the different management areas, you'll have a greater learning curve and a higher potential for error. Look for a single user interface across your ALM functions. And look for a single repository that can handle data revisions as well as file revisions across all functions.

Summary
This seems like a bit of work. Maybe a lot of work. OK, it could be a huge effort. The good news is that most of this has already been done. You don't have to start from scratch. There are consultants and vendors out there that can help you. They've been there before and their experience is really priceless. Trial and error, learning from your mistakes, is a great way to learn, as long as it's not at the expense of your product team. It does not have to be an expensive proposition. In fact, because you're making everyone's job easier and increasing product quality, it's well worth the investment. But if you can't convince management to invest, keep marching. Take smaller steps and make the improvements to your current solution that provide the biggest benefits to the greatest number of people.

But if you're the one making the improvements, you might want to make improvements that give you more time first!