Saturday, June 20, 2009
Thursday, June 18, 2009
Competence
He lay there feeling sorry for himself, musing on how being around a bunch off twenty-five-year-olds made him act like a twelve-year-old, whereas when he was working across the river, truly working, he felt centered and unself-conscious, his deepest talents sometimes emerging quick and true.- From Clockers, by Richard Price.
A manager's job is to identify and try to create the context that enables people's excellence to emerge.
Tuesday, June 16, 2009
Why are you still here?
Her career is still going up -- the opposite direction of the company.
I typically think people give up too soon on their companies or departments or on the role they've landed in. Usually, it just feels easier to jump to an already rising star than trying to create your own.
Sometimes, of course, the company reaches a point of no return. The game that enabled it to succeed has changed too much, or things have just gotten too broken.
Small companies just wheeze and die quickly. But larger companies, with long histories of success that led to their large size, bruise and bleed and try to re-invent themselves a hundred times. The company may survive, but the journey will be like walking on broken glass.
The current financial crisis has created a few of these companies. If you're working for Citigroup, UBS, or AIG, it's time to get out. What do I predict for people working there? "Pain." The only reasons you should be staying are if you have nothing more you want to accomplish in your career or there's some financial handcuff keeping you there.
Our company is in a similar situation. Thus, my wondering about my boss. And then, she dropped the news, which, painful as it was, at least confirmed what I believed.
Friday, June 12, 2009
Software in the news
The same tools that allow history to be erased also help preserve it. Via Lauren Weinstein, who is optimistic about preventing this form of censorship. Others are less so.
Thursday, June 11, 2009
Starve the beast
These days, we hear lots of talk about whether the government should cap executive pay at the companies we bailed out. We want these companies to be different, and so controlling the pay at the top seems like a good lever to use.
But putting shackles on just these companies would be the kiss of death for them. More importantly, there's a much more effective way to deal with pay at financial companies: starve the beast.
The term applies to politics, but the strategy can work very well right now with the financial industry.
Pass a few laws: ones that we need anyway to keep these financial companies from threatening our global economy again, such as limiting leverage, regulating or outlawing some products, and separating some businesses. The result: the industry will shrink naturally, eventually fitting in like a regular citizen with the other sectors of the economy. The longer term result: salaries will normalize, and fall in line with jobs in other fields.
Some people will still make a lot of money in the financial industry, and this plan won't address the universal problems we have with executive compensation in the US. But this one beast will become tamer and thinner.
Wednesday, June 10, 2009
Another way to know you have a great boss
Change that to: had a great boss.
Sunday, June 7, 2009
You did what you could
Who's fault is it, then, when that thing you said would happen -- the database crashed, the big feature didn't work, version 2.0 came a year late, whatever -- actually happened? Not your fault, right? How could it be? You did what you could.
Still, the blame rests partly with you. Not entirely you, of course, but still partly you. You were part of the team.
More to the point, clearly you weren't effective. Your own ineffectiveness comes back to only you. Unless you believe (and surely you don't) that not a single person in the company or on the planet could have made a difference -- gotten the right people to listen, convinced a few people to act differently -- had they known what you knew, then it comes back to you.
A bit harsh, perhaps. But not unreasonably. We see it everyday. Here's a recent example involving former President Bill Clinton.
Wirth noted the recent momentum on climate change, then turned to his former president.Failure to convince is still failure. You'll feel more comfortable and look better owning up to it.“Why did this take so long?” Wirth asked Clinton pointedly. Clinton looked a little peeved. “We didn’t have the votes before,” he explained.
Later in the program, Podesta returned to the subject. “I want to come back to the question you posed to President Clinton, which is what’s different than the last 35 years,” said Podesta, who most recently served as Obama’s transition chief. “And I’d say after this beginning, it’s that we have new leadership to move the issue forward.”
...some Democrats blame Clinton for being too tactical and hope that Obama will achieve what his predecessor failed to do in remaking health care and reining in climate change. “So why didn’t more happen?” Wirth asked, repeating his own question when I tracked him down after the forum on climate change. “That’s the first question that has to be looked at. It was not very high on their political list, and I think they were somewhat afraid of the issue politically.” Clinton was right that he did not have the votes, Wirth said. “But they didn’t try to get the votes,” he said. “When we were doing Kyoto, they weren’t really helpful in driving the issue at all, the White House. We were sort of hung out there on our own at the State Department. So we lost all those years.”
Wednesday, June 3, 2009
If H1B ends, should we be happy?
A new bill in Washington aimed at tightening the rules for companies in the U.S. that hire skilled workers from abroad could threaten the business model for outsourcing firms... Top executives at [Indian outsourcing firms] say the legislation could also escalate into a trade dispute between India and the U.S.
But, think about general immigration policy. If you could design a policy that carried high economic benefit to your country, it would only bring in these kinds of people:
- highly-skilled professionals. This helps our companies bring better and more innovative products to market. From the perspective of the countries that these people leave, this is called a "brain drain".
- people from middle- and upper-classes. These people would have more safety cushion, meaning little likelihood of needing public assistance and more likely to be able to go back if things went very badly.
- people likely to work steadily. This derives from 1. and 2., and of course the fact that they have to leave if they stop working. As a result, these workers will pay a lot more in taxes -- funding roads, schools, bank bailouts, etc. -- than they take out.
- people likely to speak English and assimilate. I don't really care too much about this, but as a long-term criteria for succeeding in this country, speaking English and getting along with people who are already here help a lot. People in categories 1. and 2. have greater likelihood of meeting this criterion, not to mention that most H1B's come from countries that speak English as one of their national languages.
I'm not saying that, because it's powerful economics, that justifies the program. I am suggesting that in aggregate we all get a lot more out of it than it costs us. The IT industry mostly takes a combative view of the H1B program, but I think that's short-sighted.
And, to put a final point on it, if we didn't bring all the professionals here to fill the jobs, might more of the jobs go out to them?
Leadership comes from the top (it would be nice)
My boss's boss: MIA. I haven't seen or heard from him or saw his name on an email or in an email in months.
My boss's boss's boss: disaster. He had a video conference call with us (he works in London). First, he postponed it 2 times. On the call, he had no message to impart, just went straight to Q&A. Then, he answered every question with evasiveness and generalities. He looked defeated and energy-less. Some commented that they felt more optimistic before the meeting.
He clearly felt that just showing up was all that he had to do. Frankly, we'd have been better off if he'd taken the same approach as my boss's boss.
My boss's business face-off: mediocre. Kudos for providing beer, traveling an hour out of the way to meet the team in person at their work site, and imparting how much he appreciated the hard work. Unfortunately, the meeting was preceded by 3 cancellations. He also didn't bring much energy and offered no vision for how business might proceed.
All told, the message was: please look elsewhere for leadership.
Friday, May 29, 2009
Perfectly stated
A hallmark of talent is loving to practice.She's talking about laboring at a hobby, but it certainly applies to good coding. The best coders I've worked with go the extra step -- creating unit tests, writing quality code, etc. -- not necessarily because it's the right thing to do, but mainly because they get satisfaction from it. Penelope captures the sentiment perfectly.
Thursday, May 28, 2009
Watchmen
Despite requiring taxpayer bailouts, Citi's CEO earned $38mm last year, according to Bloomberg. That only made him 3rd on the financial service. Number one was the CEO of Goldman, another taxpayer bailout recipient, at over $42mm.
CEO compensation, as a process, is fundamentally broken.
The reason my boss doesn't pay everyone who works for her enormous amounts of money is because she's on a strict budget. Her budget is set by her boss, who received a number from his boss. And so on, until you get to the top, where the executives act as "the watchmen". They decide what's right for everyone else.
At the top, the CEO gets a number from the board. Boards only have incentive to raise, and not rein in, CEO pay. Why would you want to upset your CEO? And who's watching them anyway?
Government controls and independent board members can't solve the problem. They have the wrong incentives.
I think the only thing that might work is shareholder approval of CEO pay. I might go farther and say shareholders can also make proposals for CEO compensation, as they can with other corporate resolutions. Shareholders are the only ones whose incentives are perfectly aligned to paying the executives correctly. Too little, you'll end up losing your CEO; too much, you're taking money from yourself.
Supposedly, shareholders get their say by electing board members. If you own stock, can you even name any board members of any companies you hold (excluding CEO + Chairman title holders, which of course only exacerbates the problem)? How are you therefore supposed to know which ones are doing a good job in general, much less what their involvement is in executive pay?
However, you probably know most of the CEOs. And you probably have a strong opinion about the job their doing.
Let's hope companies give shareholders a chance.
Wednesday, May 27, 2009
The limits of software
Introducing the Dice-O-Matic mark II, now generating the dice rolls on GamesByEmail.com. It is a 7 foot tall, 104 pound, dice-eating monster, capable of generating 1.3 million rolls a day.Jeff Atwood recently talked about famous math errors. What do you do to fix those?
What do the Google, Windows, and Excel (pdf) math errors have in common? They're all related to number precision approximation issues. Google doesn't think it's important enough to fix. They're probably right.As he alludes to, the answer often is: you don't. Almost all human activity is not at the margins.
Good developers and development teams know where to stop engineering and accept the flaws, based on the code base, user skill level, and anticipated future requirements. (And, if you have mechanical skills, maybe you also know how to create a giant machine to handle the exceptions.)
Tuesday, May 26, 2009
Passion and motivation
"Passionate" is just the modern lexicon for "self-motivated". After everyone figured out that they should put "self-motivated" on their resumes, similar to how everyone puts "good communication skills", the verbal bar had to be raised to separate the herd again.Why was it then that every speaker who came to Harvard Business School demanded we be "passionate" about our work? ...[Perhaps] the word passion was just another form of corporate coercion. It was no longer enough simply to do a job that you found okay for a reasonable financial reward. You had to say you were passionate about your work even if you found the work meaningless and unsatisfying. And then, of course, if it was your passion, why wouldn't you want to stay in he office until late at night and all weekend long? Didn't you say it was your passion?
...[Another] explanation was that businesses used the word passion because it reflected what they wanted their employees to feel. Work at its best should be about passion, not just drudgery. A few lucky souls might feel genuine passion for their work, but companies used the word so freely, I sensed, because it set a loftier goal for their activities than mere profits. To be in the business of business was not enough. You had to be about something bigger. [Emphasis his.]
If you've got unmotivated employees, it may not be the hiring practices that need re-working. Motivating employees is one of the most difficult and central tasks that a manager does.
Friday, May 22, 2009
Illicit sleeping
Here's a thought experiment for you.
You're working in your cube. Your boss comes to the guy next to you. "I've got some drugs for you. These will help you work better, faster, especially if you're tired. Safe, no side effects. Hold out your arm, I'm going to inject you." Now your boss turns to you.
Most likely, you're thinking, "Get away from me!" It's freaky even if you knew the drugs to be safe, and regardless of how you feel about steroids in baseball.
Yet, most of us do exactly this, willingly, everyday -- even spending our own money because the company-provided stuff doesn't meet our standards.
None of that bothers me, except now suppose I were to take a 20-minute nap at my desk, during lunch. Go for a walk, fine. Browse the web, fine. Call your mom, fine. Take a nap, people would be all over me. At first, they might think I was ill. If it continued, it would either turn into an office joke or someone would try to put a stop to it. If the practice spread, someone would definitely try to put a stop to it.
"Geekapolluza" asks:
I wonder about the social stigma of napping during the day at work - how in the world did it occur? Why does it exist? ... It is something unthought of in our culture - it is taboo. Instead, stimulants are the first choice, and completely accepted and even encouraged.
Geekapolluza is experimenting with "polyphasic sleep cycles". He sleeps only about 4 hours a day, which includes several very brief naps during work hours. Because he builds his entire day around this lifestyle, his work has been accommodating to him, which is also very fortunate for him.
But we shouldn't have to be sleep experimenters to be able to get the benefits of a 20 minute nap. I have, on very rare occasions, managed to sneak in a nap at an isolated desk. I do it more frequently on the weekends. It always leaves me profoundly more alert and productive for the rest of the day.
Isn't that what companies want from their employees?
(Not to mention a double win for companies who are actively slashing their coffee costs -- you know who you are.)
Thursday, May 21, 2009
Dead zones
Dead zones occur when the app you work on or the business you support stops growing and starts shrinking.
At first, it's not too bad: there's too many people, and so plenty of hands can help with any problem. Occasionally turf wars break out if people find others encroaching on their traditional area.
Then, inevitably, layoffs reduce the numbers, and the survivors take on larger work loads, usually involving mundane tasks far below their pay grade. Prospects for promotion or developing on new technologies plummet. Morale suffers. Welcome to the dead zone.
The first instinct is to run to your headhunter. I recommend regularly evaluating one's position for learning opportunities and career growth, so this obviously is as good a time as any.
But I also maintain that a dead zone offers some interesting aspects that can be learned from. Here's a brief list:
- refactoring. During growth times, everyone pumps out code quickly. Slow times can be useful for revisiting things and doing it right.
- good coding methods. While refactoring, basically you're learning how you should have done it. Next time you build something, you can now do it correctly from the start.
- processes. What could have been changed in the org so that the "right way" could have happened the first time? Code reviews? Automated unit tests?
- innovation. During growth, the solution to almost every problem is more people and more code. With strictly limited money and people, think of elegant and creative solutions.
- expectations management. "No, can't do it" may become the answer to an increasing number of work requests. Learn how to say it while maintaining good ties with users and your boss, and without becoming Mr. or Ms. Negative.
- team motivation. A stock-picker finds out how good they are in a down market, not by making 30% when everything's up. Same if you're a leader: are you really a good leader or just been getting by because things have been going well? Time to find out.
- org experiments. Often, org resistance is down because people are trying to figure out what's going on. This is a good time to suggest things you haven't tried before, for example, iterations or daily scrums. Or, more radical things like combining the QA and analyst roles. You can sell almost anything as long as you can make a plausible argument around "efficiency" or "new skills".
- new responsibilities. People will leave, responsibilities will open up. While some might not be that desirable, and some are, and can be claimed just by doing the work. Should things turn around in the group, you'll emerge as one of the veterans.
- recharge. The overall pace may slow a bit. Invest in yourself: sleep more, read books, learn new technologies or skills.
The financial world, in the absence of being able to create new financial products, is creating lots of dead zones. They go by the name of wind-down groups and "bad banks". Other industries face similar situations.
Do not stay in this situation out of laziness! If that's in your nature, then force yourself to leave. But if you're a naturally ambitious person, this can still be an interesting, educational time.
Tuesday, May 19, 2009
How to say good-bye
I had one boss who was extremely well liked by his business users and his own staff. He flubbed the good-byes, and that's what everyone remembered. When staff members would leave, he would frequently miss the good-bye party, and that soured their memories of him later. When he switched to a different project, he never again stepped foot near his old users -- not even to tell them that he'd been given a new project -- and they felt completely abandoned.
Another guy I worked with adamantly refused to allow or participate in any kind of farewell party or drinks for him on his way out. Obviously he didn't want the attention, but how hard is it to grant this simple request? Up until that point, we all thought he was a normal, good guy. Only someone who was pathologically self-conscious couldn't bear to stand around for an hour smiling at people, so we started wondering.
Finally, there's the old standard, whether you've been laid off or are quitting: the good-bye email. Unless you have an axe to grind AND you intend to use it, keep it simple.
The greatest example of having a serious axe is Ken Hamidi. The legal battle over his "good-bye emails" to Intel lasted 8 years. He complaints were serious and real, he refused to settle, and he ultimately won several lawsuits Intel filed against him.
Most of us just have small gripes and complaints. Keep them to yourself. Send a kind, professional email to the co-workers you liked, then leave the bad feelings at the door on your way out.
The weirdest email I ever received came recently, when two people were quitting on the same day. The first guy sent a polite, professional email. The second sent his email about a half hour later -- the same email, but with a few phrases and adjectives moved around. Apparently, he found sending a simple email so difficult he had to plagiarize someone else's!
Monday, May 18, 2009
Pride
Over the past 2 years while in school, I went from being able to do about 12 laps max, to doing 32 laps on a regular basis.
In school, the curriculum was set up; I just followed the path. It takes work to get out, but it takes true incompetence and an unwillingness to make an effort to get bad grades in b-school. At graduation, they give me a fancy diploma and a big ceremony.
Meanwhile, the swimming was completely optional. Everyday, I set my own goal and then decided whether to meet it. Nobody else cared. Because of that, the swimming required real mental effort, real commitment.
Your job is the same way. Your boss and co-workers require things from you. But what are you doing that you're proud of?
Thursday, May 14, 2009
Crisis management by being visible
Similarly, when a company is doing badly, the leaders need to get in front of their groups. The leaders showing their faces can help rally the troops.
It's sad to report, then, that the opposite seems to be happening in my group. While the CEO has done a good job with his emails, our group leaders have really botched it.
The head of the business unit has scheduled, canceled, and rescheduled his meeting with the IT staff four times. The CIO has scheduled, canceled, and rescheduled his meeting with our IT staff three times. Both of these meetings are now scheduled for late this month. We'll see what happens.
Meeting the "people", spreading optimism, sharing a vision -- this is one of the completely free things that a leader can do that can make a big difference. It assures people that their work is important and valued. Canceling, on the other hand, demonstrates that many other things have priority.
Yes, I'm sure both of these men are busy. But they also surely know the importance of keeping commitments. If their schedules prevent them from making a one hour commitment, they shouldn't do it. At this point, we'd be far better off if they'd simply never bothered.
If being visible helps with crisis management, what does being noticeably invisible do?
Tuesday, May 12, 2009
Slow software practices
Alex Tabarrok highlighted this chart about eating. Somewhat paradoxically, more time spent eating actually resulted in lower obesity.I wondered whether a similar effect might exist for software.
It's easy to think of a hypothesis where this could be true. Quickly built software, with fingers flying, usually allows little time for planning. The goal is to get the code out as soon as possible, and lots of code is what happens.
All that code begets more code fixes. Also, the code likely doesn't involve a lot of abstraction, having been built for some specific cause, the emergency of the day. Thus the next emergency requires new, specific code for it, as well.
Perhaps a slow software movement is what we need. Of course, our company owners and business managers would freak out if we started saying that we're adopting "slow software practices".
So, of course, we call it other things -- requirements gathering or architecture review or quality control. But at the heart, one of the main elements of all of them is to slow things down, to create room to stop and think.
Keep that in mind the next time you're facing a project. Yes, it needs to get done right away, but invest in yourself and the project, and slow down.
Monday, May 11, 2009
Good is bad, better is worse
All of that is bad news for my company. I will not mention my company's name, but suffice to say that it is a large Wall Street investment bank.
Here's my company's current plan: cut costs, avoid losses, reduce risk. This is, I think, a recipe for disaster. An investment bank only grows by taking risks. That's what you get paid for! The idea that you could back into profitability by reducing losses goes against the business model. It's tantamount to not servicing the airplanes in order to save money.
The worst part is, an almost tangible sense of disillusionment is settling in among the troops. Last week, I felt surrounded by it. Two things always happen in these situations:
1) First, the best people leave. So far, that hadn't really happened, mainly because the economy stunk. Now with growing hope at the macro level, people realize they have options. I only know of a little turnover, but I can seriously feel it in the air. A flood of exits wouldn't surprise me at all.
2) When the best people leave, the good ones follow. The company that remains resembles the decrepit local mall, where no one really shops anymore, and the staff of teenagers doesn't care about the store, service, or customers. They're just drawing a check. I've personally seen increasing evidence of this.
If you're a manager or have any personal influence, you can do something about this. But, as with many situations, if you're someone who might try to do something about this, you'll most likely be one of the flood going out the door (see #1 above).
When things getting better are bad for the company, the game is surely up.
Thursday, May 7, 2009
Bruce Eckel, publishing revolutionary
He made his book not only free on-line, but downloadable as both pdf and html. He didn't try to ramp up website stats by making you read the html on his site.
I actually thought that Bruce's successful example would herald a new day when free digital versions of book would become more common. Trying to break through a cluttered market can be difficult, and offering a free version might be the answer.
That day never came. So Bruce remains an anomalous experiment. I'm glad it paid off for him.
Bruce's latest idea (part of this interview) is equally brilliant.
I hope to make [the latest version of Thinking in Java] a community effort, to be published electronically under the creative commons.Not that we need intro to java books so much these days -- but all the more reason to embed it into the landscape permanently. Give it to the software community, who knows what it will turn into. At the least, it could become the final, definitive book on learning java as a beginner.
A truly radical and fitting end to a book that started radically as well.
Wednesday, May 6, 2009
Everyone becomes incompetent
If enough big things go wrong, everyone becomes incompetent. Everyone gets ugly. People quit. Despair rose. Managers stormed out of meetings and heavy things were thrown across boardrooms. Months flew by and therapy bills rose. As other parts of the project were completed, we tried not to notice the gaping Channels-shaped black hole at our center, slowly pulling everything inside.I remember Channels well. I never used it, and always disabled it immediately, and occasionally it would reappear again. It was intrusively annoying, much like Windows Messenger now.
Bad projects take on a life of their own, and even good people can get taken down by them. We like to believe that good project and team management and solid developers prevent or overcome bad projects, but that's often not true. Bad things happen to good people all the time.
Everyone, to a person, will end up working on a fair number of bad projects in their careers. In some cases, there's nothing you can do about them -- except learn from them. Figure out what made them bad, understand the warning signs, and consider what might have made a difference.
From reading Berkun, I get the sense he does this very well, which make his Microsoft anecdotes very powerful.
Monday, May 4, 2009
Excellence is the best job security
He was in the middle of developing several new major features for his application at his investment bank. Meanwhile, he expected layoffs within a few months. As a result, new features weren't being discussed until the layoffs occurred. Was it wise to finish off his work, even though that would leave him with nothing to do at the time that layoffs were likely? Isn't that like asking to be laid off?
Situations like these make me re-examine my motto "always put yourself out of a job." Maybe this -- a crisis of a lifetime in his industry -- was the exception to the rule.
But I told him that he should continue to work at his best rate. By pushing himself, he'd keep his mind sharp. He'd get to finish the project and understand it thoroughly. He'd burnish a reputation as a professional programmer who did excellent work. Whether or not his name ended up on the list, all of these factors would make him either a stronger developer at his current place of work or a stronger candidate for the next one.
Last week, his company did have those layoffs. But, we'll never know if he was on the list, because a couple weeks before, he accepted a great new job. Some of the experience he earned in his last project made him very attractive to his new employer.
I take no credit for his success; obviously, he did all that on his own. But it is nice to see one's personal theory get validated in real life, especially in a tough market like the current one.
Thursday, April 30, 2009
What else I hate about Microsoft "programming"
I work with some guys who are pretty knowledgeable about Microsoft development, very solid guys.
Still, when something goes wrong -- the data load craps out, the website doesn't show some reports, the reports server doesn't respond quickly -- the usual answer is to simply restart. "Restart IIS" or "delete the reports and then re-deploy them" or "delete all the data from that table and reload it from scratch". Sometimes, I'll have an error that will persist for half a day and then suddenly disappear, and they'll say, "Yeah, that happens sometimes, you just keep trying."
Restarting frequently works. If you've ever worked on a support desk, you know that one of your friends is the "restart your PC". That often resolves whatever weird error your user has.
But that isn't solving the problem, it's just erasing the situation that created it, in the hopes that it doesn't occur again.
I think part of the problem is that Microsoft targets users (in this case developers) who just wants to get it done, and not users who want to know the dirty details. Creating anything involves going through a wizard process. They spend lots of resources making sure things happen automatically.
What they don't spend their resources on is making the underlying mechanics visible. Typically, you'll get an error, and then the strategy involves looking up the cryptic error message in Google. From that, many different suggestions will be returned, and you look through each one to see if it applies to you. This is not debugging.
As a result, I never feel confident that things will work correctly. I never feel confident that when things fail, I will understand why they're failing. I never feel confident that if I don't know why things are failing, I can debug it to the point where I can find a root cause.
It takes impressive effort to automate so much, and for a lot of people -- Microsoft's target audience, presumably -- this gets them to the point they need to get to. So, this is not intended to be a Microsoft bashing exercise.
At the end of the day, though, as I mentioned before, if all programming was strictly programming on the Microsoft platform, I doubt I would have lasted long as a programmer.
Wednesday, April 29, 2009
What I hate about Microsoft "programming"
For the first time in a very long time, I'm doing development on a pure-Microsoft app: sql server, asp.net front end, sharepoint, etc. This is all new technology to me, though of course it is similar to other things I've done.
What's brilliant about Microsoft stuff is it can generate a multi-layer, multiple-technology application in a very short time.
Along the way, I write a few queries and such, but mostly I find myself configuring. Configure the reports server to talk to the database. Configure the web server so it doesn't have port conflicts. Configure the deployment tool to generate to the right location. Draw lines between two tables to configure the data mapping.
I'm not suggesting this is easy. The details behind each configuration holds many hours of potential problems, and expertise pays for itself.
In the end, though, I feel more like a sys admin than a programmer. Perhaps it is a compliment to Microsoft that entire apps can be built without knowing much about code. But, just as I was never interested in being a sys admin, I never would have become a programmer if this is all it consisted of.
Tuesday, April 28, 2009
Return of the bonus
[Goldman Sachs], which nearly halved its compensation last year, set aside $4.7 billion for worker pay in the quarter. If that level continues all year, it would add up to average pay of $569,220 per worker — almost as much as the pay in 2007, a record year.Not to pick on Goldman -- they're just the example -- but crazy, out sized bonuses create the wrong incentives. Especially in a culture of money, they distort the entire system.
Yes, these people work hard, and they generate a lot of money for their companies. I call that having a job. The vast majority should get a reasonable salary and then a very modest bonus. Then, by all means, give a bigger bonus to reward the high producers to separate them from the middle of the pack. But the middle of the pack guys make huge money. That makes no sense.
According to the article above: "Historically, investment banks have paid workers about 50 cents for every dollar of revenue." If that doesn't shock you, then nothing I could say could change your opinion.
Just keep in mind that the bankers in Iceland didn't do anything worse than what happened here in the U.S. The only difference is, their economy wasn't large enough to bail out their financial industry. So, before we return to "normal", don't forget how bankers are viewed in Iceland!
Monday, April 27, 2009
Firing up the troops
Out of that speech, here's the line that my friend remembered:
"As you know, we have a lot fewer people now, so everyone here will have to work harder and longer hours."
Message to COOs (and other executives): if that's what's in your head, better to keep your mouth shut. All the time you and your staff spent putting the powerpoint together, arranging the room and AV equipment, and assembling everyone for the town hall would be better spent focusing on business problems.
I'm sure nice words surrounded that sentence -- things like "Our people are our most valuable asset" and "Market conditions forced us to make these difficult choices" -- but none of that rings with authenticity. The bit about working harder? That sounds very real.
I doubt many people physically walked out, but I'm sure a large percentage mentally did. As soon as the market turns, those people will walk out. They're fired up all right.
A speech like that isn't communication and it isn't leadership.
Thursday, April 23, 2009
Swimming is Agile
1. 5 laps doing the breast stroke (aka frog kick) with little effort. The main point is to limber up.
2. 5 laps doing the breast stroke with effort.
3. 5 laps doing the crawl (aka freestyle) with only leg effort. I keep my fingers separated to minimize any temptation to pull and don't do any reaching with my arms, focusing totally on leg technique. Some people use a kickboard for this kind of practice, but I'm too lazy to stop.
4. 5 laps doing the crawl with leg effort and arm technique. I add arm technique, but my arms don't really do any pulling, just go through the proper motions.
5. 5 laps doing the crawl with leg effort and arm pulling. This might be called real swimming.
6. 5 laps doing the crawl with leg effort and fast arm pulling. My arms are a blur (I like to think), pulling non-stop.
7. 2 laps of my choice: either continue with the crawl or backstroke.
Two advantages become apparent. First, the last two laps are a freebie, even though they're not; the fact that I choose keeps them from being a chore. Second, breaking it up makes it feasible; if I started on set one and had to count to 32, the goal would be too far ahead to mentally grasp. I can count up to 5 comfortably. I never, ever think during my 5th set, "Wow, this is my 25th lap!"
Note that I didn't plan it that way. Before I reached a mile, I had similar divisions, with fewer laps.
Perhaps iterative development infects everything you do, or some people just think that way.
Tuesday, April 21, 2009
Don't let the uncertainties stop you
Surveys about any practices without considering the industry, the products, and the management don’t tell you much. People lie to themselves about what they are really doing.but I still think it's a good idea. I'm sure Jurgen will get the most benefit, so that's point 1. Point 2 is it doesn't really harm anyone. Point 3 is that things that might benefit you a lot and don't hurt anyone else are worth trying at least once. He might get some interesting insights into the Agile market. At worst, he'll learn something about running surveys.
Some things should be implemented with extreme care and well-understood benefits. Much of software development falls in this category. But most things in life don't, and that includes everything that happens on a blog.
Comprehensive Agile survey
I like the idea of the survey because I've often wondered how much real pair programming actually occurs. I've never run into it personally, nor have I run into someone who had done it.
Mostly, I wonder how many implementations match what I read to be the definitive way to do it: 2 coders partnering, then switching partners, and thus tasks, every 4 hours. Everyday, a coder would have 2 partners and up to 2 tasks. I believe I read this in Robert Martin's Agile Principles, Patterns, and Practices (one of the best programming books I've ever read), though I could be wrong. 2 partners and 2 tasks everyday seems crazy to me.
Unfortunately, after taking the survey, it doesn't seem like I will get a good answer to my question, as the questions are not that granular. I will note, however, that pair programming seems to have one of the lowest adoption rates among the well-known, often-mentioned Agile practices (e.g., user stories, scrum, TDD, etc.)
But that's okay, it's still useful to take the survey, so go ahead.