Tuesday, October 20, 2009

Backgammon and good code

I'm not yet done with How We Decide, but this example of deliberate practice jumped out at me.
Robartie didn't become a world champion just by playing a lot of backgammon. "It's not the quantity of practice, it's the quality," he says. According to Robertie, the most effective way to get better is to focus on your mistakes.
You might recall that deliberate practice appears in Talent Is Overrated as the key to high performance. Focusing on one's mistakes reminds me, again, of Test Driven Development. I'm not a TDD nut -- I have never personally worked on a devoted TDD team -- I'm just pulling these threads together. TDD focuses on your mistakes before you make them. You'll still make some, and so your TDD gets better and better, along with your results and productivity.

This sentence also struck me:
After a few years of intense practice, Robertie had turned himself into one of the best backgammon players in the world. "I knew I was good when I could just glance at a board and know what I should do," Robertie says. "The game started to become very much a matter of aesthetics. My decisions increasingly depended on the look of things, so that I could contemplate a move and see right away if it made my position look better or worse."
I have long believed that good code is clean code, exemplified by Joshua Bloch's axiom that good code reads like prose.

Concern for aesthetically-pleasing code strikes some coders as just unnecessary housekeeping chore. But I think programmers who consistently produce solid code write clean and organized code as a matter of routine. And those who don't do it routinely, but have to go back after the fact and clean things up, maybe refactor a bit, will improve over time and eventually get to the point of routine. It no longer becomes a chore, but just a standard way of doing it.

The counter-argument is a whistle-clean, beautifully modular code that fails miserably at what the users wanted. That's actually a different problem: bad communication or bad specs. But I bet that code did exactly what the programmer wanted it to do.

Monday, October 19, 2009

The fast-moving world of dentistry

Many programmers do their jobs, do it well, but never train themselves beyond their time at work.

I was thinking about this at the dentist's office recently. My dentist is not young, but she follows the latest practices. She replaced drills with air tools, which offer precision and obviates the need for anesthetic. She installed a laser for some of the gum work. Numerous other improvements have been made over the years.

This is dentistry we're talking about. Not exactly a lot of unexplored frontiers here. Yet, she clearly spends many off-hours staying up to date, obtaining information, and training herself. All that occurs when the office is closed, and no patients are around.

If that's the slow world of dentistry, what are the implications for the fast-moving world of software development?

If you're serious about having a successful career as a programmer, you need to be training yourself. Don't expect to do it on your company's time or your company's dollar. If you really can't afford it, at least park yourself at your local bookstore and read the books for free. Most of them have free wi-fi, so take your laptop and do the exercises.

While you're on a project, marching to a deadline, you should already be fully trained in the skills you need -- just as you wouldn't want your dentist to be pulling that laser out for the first time when you sit down in her chair.

Sunday, October 18, 2009

Great traders and great programmers

I talked to an intern trader who recently finished his gig. His mentor told him at the beginning of the summer, "When you finish, I'm going to ask you what makes someone a great trader."

At the end of the summer, the intern gave some generic answer about financial calculations.

The mentor said, "What makes someone a great trader is what he does when things are slow."

How true, and the same could be said for programmers.

For any job that requires creative, highly educated people to work toward high pressure, difficult to move deadlines, the long-term differentiating factor will be how the person invests in him/herself. And slow times provide the only opportunity for that, whether 5 minutes or 5 days long.

Tuesday, October 13, 2009

Talent is Overrated

Or so says Geoff Colvin.

If someone tells you, "I know the secret to super performance, and it's not talent," you know what the answer is, right? Hard work. Which is basically what this book says. He actually says it's 10 years of hard work to become an world-class performer.

He takes it a little further, explaining the necessity for "deliberate practice" as opposed to just regular practice. The difference is most obvious in activities with clear goals. It's free-throw shooting for hours instead of pick-up games. Repeatedly working through a knotty part of that concerto with deep concentration, not just breezing through easy pieces.

For software developers, I thought TDD would be a good analogy. TDD forces you to regularly think about testing your software, until you're writing good, modular software by second nature, and you can do it with increasingly complex applications.

To do effective "deliberate practice" in business professions, you often need a mentor -- someone who's better than you are -- to tell you, "This is one thing you should work on, and here's how you can do it." That focuses you on building the right skills.

He provided some good research about external and internal motivation. Basically, your intrinsic motivations will outweigh everything else. Managers have to figure out what that is for each person and how to arrange the work accordingly; motivation can't simply be bought.

Books like this can be useful as a reminder about how you want to spend your day, but since I had a good idea what he was going to say, I wouldn't normally have picked it up.

But, I saw some effusive praise on the back cover from people I admire: Daniel Pink, Herb Kelleher, a couple others. (Oh yeah, Donald Trump is there too.) Then I found out they're all cited in the book either as vanguards in the research he quotes, or as examples of outstanding performers --no wonder! In the end, the book is overrated.

Monday, October 12, 2009

Cloud computing and the financial meltdown

Sidekick's massive data loss reminds me of the financial meltdown.

The big banks became too big to fail because all the world's finances flowed through them. It might seem that we have a lot of banks, but actually on a global level, we relied on just a dozen or so. Not enough diversity for the entire planet. Maybe we'll learn something from that mess.... maybe.

Actually, we've seen this problem many times before.

Agriculture has been around for thousands of years, and has given us some examples of systemic breakdown. One famous example was the Irish Potato Famine. The potato became too big to fail in Ireland. Unfortunately, it did, and around 12 - 15% of the population died. Biodiversity has become a global concern.

The financial system started hundreds of years ago, and, as we saw, has reached the point where the industry needs to be actively designed for resistance and maintenance. Mortgage-backed securities and their offspring are like the potato, and the bubble bursting acted like a blight.

Computers are only decades old, and the information age started more recently than that. Some have already wondered whether Google is the first information company that is too big to fail. No one ever said that about IBM, so things have changed.

I don't think Google is a problem yet, but cloud computing can put it there. Given our reliance on smaller and thinner tools -- netbooks and phones -- we increasingly rely on central storage. It only makes sense for efficiency purposes to aggregate that storage in a cloud. Why should you care where or how your data is stored?

Governments increasingly use technology to improve services. Among other things, they're combining databases. All very good things. Things we often criticize governments for not doing, not being competitive enough, not efficient enough.

Wouldn't a cloud make sense for the same reasons for all that government data? Imagine how big the social security database is or just California's Department of Motor Vehicles. Do you really expect these agencies to have stronger, more robust technology than Microsoft?

Cloud computing clearly offers a lot of benefit. This problem will not stop the growth of the cloud. But if cloud computing takes off, it also implies a future where some of these technology companies will have to be regulated. Sounds strange, doesn't it?

Think about all those rows and rows of Google servers, for which they are famous. Companies always want their systems to run exactly the same software because that makes it easier to upgrade and maintain. Now think potatoes in Ireland, or mortgages in the financial industry. Google has had its outages, but they were small enough to ignore. Not so if they held data used for trading markets or air traffic or personal banking.

Regulations might included government-mandated requirements concerning:
  • separation of data servers from other applications
  • multiple power sources
  • replicated data stored in physical locations 100 miles apart
  • maximum failover time (in minutes) and minimum uptime percentage (> six sigma?)
  • monetary reserve to ensure continued operations in case some other project at the company starts draining all the money
  • separation of businesses to ensure law suits or problems at one division don't affect the viability of the data business
What will not save us is a rallying cry to "back up your data", which just about every article about the Sidekick includes. That will be no more effective than asking people to eat more varieties of bananas.

Sunday, October 11, 2009

Free software: Twitter

Of course, Twitter is free, and recently valued at $1bn. So far, Twitter closely follows the Google and Facebook playbook: bring the users and the data, and figure out revenues later. Skeptics believe revenues may never happen.

Felix Salmon reports they may start selling their data, with access costing several million dollars. Also, like other systems (e.g, Nasdaq, high-frequency trading), perhaps the fastest access will be provided at much higher prices.

Twitter could easily sell its data. It's not clear the super-fast data would be that much more valuable. I also question whether selling its raw data would be more valuable than selling analyzed data. Maybe they can do both; Google could use the raw data, but Sears and Southwest Airlines would want summary capsules.

Another option that occurs to me is they could tier their data. The most popular topics at any given moment would be available for only much higher prices. Breaking tweets about Obama's Nobel prize would be delayed or available only after the hysteria died down and turned into stale news.

Twitter clearly has some options. We'll have to wait and find out whether that adds up to a $1bn company.

Thursday, October 8, 2009

Increase your productivity!

The ultimate productivity blog. Perfect for a Friday before a 3 day weekend, especially for those of us who have to work on Monday.

Who owns your free online account?

Answer: not you.
a federal judge has ordered Google to deactivate the email account of a user who was mistakenly sent confidential financial information by a bank.
Try to follow the logic: a bank accidentally sent out confidential data, so the random person that happened to receive it is punished. Since that person doesn't pay anything for the account, he has few rights in the matter.

The problem of account ownership will only grow.

Facebook user recently revolted over changes in content ownership. But the problem still exists: some people get kicked off and have their accounts closed on them, while others try to get off but can't get their accounts closed. Because Facebook owns the accounts, not the users.

Maybe you could live without Facebook, but what about things you invest serious time in? Like writing a blog everyday. Or applications you use for school or work, like Google Apps.

Scarier still: apps that have all your personal data, like mint.com. Maybe you feel comfortable with this company, you like how they do business. But what happens if they get bought?

Scariest of all: apps that have all your business data, like Amazon's S3 storage. Amazon couldn't go out of business, right? But it was only a few years ago that we thought they would never turn a profit. And only a year ago it was inconceivable that Lehman would be gone. In this case, as a paying customer, you have a few rights, but Amazon still owns the switch.

Thin, free software remains the inevitable future destination, but you might think twice about being the vanguard.

Monday, October 5, 2009

It's not the cockroach you see that should worry you

You probably heard about the man with no arms who couldn't cash a check. A Bank of America branch manager turned him away because their rules require fingerprints. No exceptions.

That manager surely got an earful, possibly a demotion.

The web overflows with customer horror stories dealing with BofA "customer service". I ran across another one the other day without trying, simply because one of the blogs that I regularly read had a personal experience.

Whether or not BofA's service falls short (or even it's standard among banks), the real point here is that bank executives will likely erupt in furor and disbelief at their employee's behavior.

What should concern them more are the thousands of examples that fall just below the line of ridiculousness -- equally aggravating, no less insensitive to their customers, but without the farcical aspects -- and then the millions of occurrences that annoy and dismiss their customers just slightly less, all of which go unnoticed and unreported by local news. Such a massive visible failure signifies massive numbers of failures below the surface.

I'm willing to bet that BofA trains its retail banking staff to behave very rigidly, probably in an attempt to reduce mistakes and minimize costs. Eventually, a rules-based culture breeds a system of automatons that only know the rules.

Sunday, October 4, 2009

Crucial characteristics

Crucial Conversations provides some useful guidelines for communication in difficult situations. You can enjoyably read the book in about an hour or two, so that makes it easy to recommend.

This comment struck me:
The more you care about an issue, the less likely you are to be on your best behavior... When it comes to our strongest views, passion can be our enemy. Of course, feeling strongly about something isn't bad in and of itself. It's okay to have strong opinions. The problem comes when we try to express them.
People want to hire only passionate people these days. And for projects with a very clear destination and fairly well understood obstacles, passionate people will drive it to completion exactly as you'd want. Nothing will stop their forward push.

But what if the goals are vague, or constantly shifting? What if you expect numerous detours and re-starts along the way? What if the challenges can't be driven through, but have to be innovated around?

Projects like that might very well be better served by good listeners, or by people who can step back and let things simmer a bit, away from the fire. Of course, passionate people can be excellent listeners, and can be wise enough to be able to let things develop in due time. But, in terms of priority -- what leading characteristics you particularly seek for the project -- passion might rank pretty low.

As the author points out, passion often acts as a source of ineffectiveness, when everyone else is not "on board". And you would most expect to see this variety of opinion on projects with vague goals and unforeseen detours.

The thing is, don't most projects fall in this category?

Thursday, October 1, 2009

Connect

Ever notice how some people become very active on LinkedIn when they start looking for a job? They join lots of groups, make lots of connections.

Or they start emailing old co-workers and managers. "Haven't talked to you in a long time -- how's it going? Any openings over there?"

Unfortunately, this is the wrong time to try to breathe some life into their network. They should have been doing that all along.

The ex-colleagues you know well enough to email in your time of need? Why not drop them a note now and then? "Hey, I saw this article about local micro-brews. I recall you had a big interest in that." Or "Here's an event next week with free activities for kids, thought you might want to take yours."

Cultivating contacts well takes time, whether they're people you worked with or new ones you've met in professional groups.

Does this sound manipulative? As if you're treating everyone as a tool for your own gain?

Here's a crazy thought: you could actually be interested in these people's lives! You got along well enough with your co-workers to feel comfortable later contacting them. Sending an email costs you nothing, and you could actually be doing them a favor. That's trying to connect with people, not just link in to them.

Wednesday, September 30, 2009

What does free software look like? Socialwok

Scoble argues that the future of office productivity software is moving to mobile phones. A new toolset built on Google Apps convinces him.

Partly, this is due to the thinness of Google Apps. But I think the fact that Google Apps is free makes it very attractive to developers to build around. Intuitively, we know that free is coming and that free is the playing field.

If MS Office came out with a completely online version tomorrow, all for $25, what percent of the nascent web-based office market would they capture? My guess would be less than half, and those would basically be users who wanted interactivity between the online and installed versions. Perhaps that is the money-making strategy for them now -- build on their strengths and installed base -- but the window is closing.

Eventually, and sooner than we might think, MS Office must have a highly functional, free online version to compete. Otherwise, they cannot get online market share. And without the market share, they can't get developer apps and plug-ins. The iPhone and Firefox and Facebook (and increasingly Android) have shown the value of third-party apps.

Socialwok may or not be free, but it's part of the ecosystem that gets created around a big successful free app.

Tuesday, September 29, 2009

Give away your recipes

While trying to learn how to make sourdough bread, I ran across this site. The author gives away all his recipes and techniques in elaborate detail. Meanwhile, he's also trying to sell those same breads and get people to enroll in baking classes to learn those same techniques.

Doesn't seem too smart -- why bother to buy or attend class when all the facts are right there?

Surprisingly, that's actually a great way to build your career: once you establish your expertise, teach it to someone else.

One of two things will happen when you try to train others in your expertise.
  1. they will learn it. That means it wasn't that complicated, not worth keeping to yourself, and likely to be "discovered" by other person soon enough. At least you got some goodwill out of it.
  2. they won't learn it, or at least not as well as you. This will impress upon them how deep your knowledge is and cement your standing as the expert.
For the sourdough man, all those details hint at so much more that could be gleaned by spending a day with him. And given his command of all those details, his bread must taste awesome.

This strikes me as a kind of personal freemium strategy, involving one's own know-how.

More importantly, this demonstrates how mentoring, sharing your knowledge, and training your replacement are fundamental ways of advancing your career -- all riffs on the same theme, under different circumstances. Giving away your recipes is another way to say it.

Monday, September 28, 2009

The four parts of your life

I don't remember where I heard this metaphor, but it made a lot of sense. It highlights the personal you have to make in order to be a star at work.

Think of your life as a 4-burner stove top. Because of limited gas throughput, if you burn one very hot, the others generate less heat.

Each burner represents a part of your life that you can put your time toward: family, friends, career, and health.

You can try to be balanced, but won't be a rising star in anything. Focusing on your career could mean forgoing spending time with your kids or possibly even having any. This is why many married workers with successful careers and kids don't have many friends.

Meanwhile, lots of young single people I see, with no family to worry about, work very hard, and play very hard as well with their friends. Their health also suffers a bit, but they're young.

These days, I'll admit my job is a little easy for me. You could say I'm coasting, or at best, just peddling lightly on a flat road. But I've been able to have meaningful hours with my wife and kids daily, started making my own yogurt, healthy granola, and sourdough bread, and spent a lot more time on favorite hobbies: swimming and reading literature. Family and health have gained at the cost of career.

Eventually, I'll have to turn up the heat again on my career -- move it, as it were, off the back burner -- but for now, I've been appreciating the trade-off.

Sunday, September 27, 2009

Shrink the beast, part 2

Some recent analysis suggests that the financial industry needs to shrink a lot to bring it back in line. Starting in the eighties, the industry exploded. As a result:
Roughly speaking, though, the securities sector still needs to shrink by a factor of about five before they get back to the size they should be.
With all that growth and money running through the industry over three decades, it's no wonder 1) everyone at the top looked like a super-genius captain of capitalism, and 2) super-sized compensation culture became the norm.

Thursday, September 24, 2009

A place where everyone works for free

Getting maximum productivity out of everyone -- always a goal of management. But too much pressure, and people might start leaving.

One way to deal with this problem is to work everyone like crazy and then pay them dollars they can't get anywhere else. That's most investment banks.

Another way is embodied by comments made by Zappos's CEO Tony Hsieh:
What kind of company can we create where we all want to be there, including me? How can we create such a great environment, where employees get so much out of it that they would do it for free?
Zappos backs it up by offering employees $2,000 to quit, which works out to a month's salary at some of their starting wage levels. So in a sense, many of them do work for one month free.

Your company may not be as progressive as Zappos, and you may not have big profits to distribute.

But, if you're the leader of a team, or even a senior member, you have a lot of influence in the work lives of those around you. What small things are you doing that can contribute to people being happy to work there?

Wednesday, September 23, 2009

After you become the expert, take a stand

You don't need to be a schmoozer or extroverted center of attention to be a leader in your department. You can also just know your stuff and be willing to stand up when your issues come up.

The Ben Bernanke that emerges from this account of the height / nadir of the financial collapse provides a fascinating example. (Unfortunately requires subscription.)
When White House officials first interviewed Bernanke for the post of Fed chairman, he was so quiet they worried that he lacked, as one put it, "assertiveness."
Sounds like the wrong guy for the job, and his television appearances haven't won any glamor awards.

But later, people scoff at his idea to give $85bn to AIG.
"Do you have eighty-five billion?" Representative barney Frank asked.
"I have eight hundred billion," Bernanke said, referring to the Fed's balance sheet.
You can almost imagine him thumping his chest.

Then, he needs to convince Hank Paulson to take drastic action beyond anything being contemplated. Keep in mind that Hank Paulson is as intimidating and strong a personality as you're likely to ever meet.
"Hank! Listen to me," he interrupted. "We are done!"

It was the first time Fed officials had heard him raise his voice.

"The Fed is already doing all that it can with the powers we have," Bernanke continued. One participant recalled, "Ben gave an impassioned, linear, rigorous argument explaining the limits of our authority and the history of financial crises in the US and abroad.... It was an encyclopedic tour de force."

It was as though Bernanke were the professor and Paulson the student. Bernanke's comments lasted about fifteen minutes, and Paulson was uncharacteristically silent until near the end.
The article mostly focuses on the other names, particularly Paulson, as you'd expect. These are just a couple snippets that I pulled out.

Bernanke doesn't really have a gift for gab, nor does he seem to like attention. However, he clearly inserts himself when he has to. He takes an informed stand, defends it, and is willing to suffer the consequences should he be wrong. None of these things Bernanke proposed had ever been done before.

Obviously, none of us are dealing with issues of this magnitude. Scale it down.

What major decisions are being made in your department? Which ones should you take a strong stand, even though you're not 100% sure it will work? The margin of error in our field is surely more forgiving.

Tuesday, September 22, 2009

Added value vs upside

How do people get paid? Often, the notion of added value comes up. Here's a classic description:
What you’ll find is that as you offer more “value” to the company, the more valuable you become. As a result, you’ll be the one most likely to get that promotion and/or receive higher compensation.
That's from an article about getting wealthy, which is ironic because I think that's exactly the wrong way to think about it. If a bigger paycheck is the goal, then you need to distinguish between "added value" and "upside".

Added value is backward looking. It's what you've accomplished. If you added value -- brought a project in under budget, on time, or with better features -- you will be paid an average salary plus compensation for the value you added. Therefore, it's true that the more value you add, the more you'll get. But, the company will pay you, by definition, only the amount that you added. Value out = value in.

Upside is an entirely different equation. That's because upside is forward looking. It's what you might accomplish. Since no one knows what that is, someone who thinks you have a large upside might pay you many times over what much you eventually add in value.

Here's some real-life differences between upside and added value.

Upside: 1st round draft pick. AV: 4-year steady veteran.
Upside: coding starts on new app. AV: 4 weeks after app delivered.
Upside: growth stock. AV: value stock.
Upside: MBA student graduating next year. AV: MBA who graduated last year.
Upside: first kiss. AV: marriage.

The hope that the big draft pick could be the next Michael Jordan always results in crazy money being thrown at him, even though its more likely they'll fizzle out. Similarly, dot-coms didn't have to have any earnings to have astronomical stock prices. And try getting a big bump in salary based on the MBA you got last year; the degree starts losing value the minute you get it, like a new car being driven off the lot.

In other words, people will pay based on speculation, until they know what you can do, and then you're capped.

Monday, September 21, 2009

Simple test of how good your job is

It was posted a couple years ago, but I love this test of whether you have a good job. Take a quick look at the list.

Notice that having two friends puts you in the middle "probably a good job" category, regardless of what else is going on.

I recently experienced this rather directly. Due to all the layoffs and departmental changes, about 4 months ago, despite going into my 8th year at my company, I suddenly was not working with a single person I had ever worked with before. It jolted me a little, and I felt bummed out in an odd, vague way for a while.

I'm a slow-friender -- it takes me a while, and then I like to stay in contact for a long time. I have co-workers that I consider friends from several jobs back, in other cities. We don't talk that often, but we're still close enough that we could stay at each other's houses if we were in town.

Tomorrow, I plan to write about how to make more money. But often, it's the little things that we don't think of, that aren't on our list of job priorities, that actually determine our job happiness.

Sunday, September 20, 2009

Pair programming vs autonomy

Pair programming has gone mainstream when you can read about it in gory detail in the NY Times:
Once two of our programmers had a falling out over a keyboard function. The navigator wanted to remap the caps lock key as a control key for when they switched roles.
Nothing ground-breaking here, but an example of the article's detail -- pretty geeky stuff. Soon, we'll be able to talk about the pros and cons of it with our parents.

I've never worked in a pair programming shop, and have always been suspicious about how well it would work.

My basic suspicion about it boils down to this: Dan Pink argues forcefully that the future of workforce motivation for creative professions involves granting lots of autonomy -- including locational and temporal. His argument is pretty convincing.

If people should be given the ability to choose their own work hours and location, how can pair programming survive?

Other agile practices can be constraining also, such as the daily scrum or a physical Kanban board, but none as deeply as pair programming. These guys have a daily 9 am meeting where they figure out who they'll work with and, presumably, what they'll be working on. Then they adhere to a fairly strict work pattern -- 25 mins on, 5 mins off.

The writer indicates all participants are pretty happy about it. I liked this article particularly because he went into such detail about their implementation at a personal level. Indeed, it sounded inviting to me.

But, I can't both be a fan of pair programming and also Dan Pink's research on motivation, can I? They seem inherently at odds.

Thursday, September 17, 2009

What does free software look like? Rock Band

You probably heard about how Rock Band will allow anyone to upload new songs. Could be a big deal:
By blowing it open so that any musician can get on this platform, it changes the way the world perceives what we do, which is now just an expected part of music entertainment. If there's a band you love that releases a new album, you're not only going to want to go see them in concert or listen to them on your iPod, you're going to want to play with that music. Launching Rock Band Network is a way for us to open new fundamental form of music entertainment.
Though the lowest price is 80 cents, this would even be a bigger deal if it were free. In other words, if Rock Band could enable the sellers to pay for the fee, that would be truly revolutionary. Turning this into a seller-driven phenomenon would create a much bigger market than just tapping into the already interested buyers.

Remember, in a digital economy, the scarcity is not distribution or product, but attention. How can you attract attention to your obscure band, your fledgling music label in a ocean of music? By making it free, particularly in new channels more likely to be populated by younger, exploratory types.

If you put your new Rock Band download out there for free, it only costs you $800 to get a thousand people to sample your product. That's pretty effective marketing. In this case, the Rock Band play-along acts as a feeder to paying customers for the music -- an inversion of the free music business model.

The writer of the article focuses on how big hits will get bigger. But that's the history of the music industry.

Tons of free content creating a vibrant music community that allows lots of small songs to get
more attention, that's new.

Wednesday, September 16, 2009

Become the expert

Lately, I've been reading several Ralph Kimball books on data warehousing. If you want to learn about data warehousing, you start and often end with Ralph Kimball.

Years ago, when you wanted to learn about Oracle PL/SQL, you had to read Steve Feuerstein. For advanced SQL knowledge, Joe Celko was the dominant guy.

When Java was being democratized, Bruce Eckel reigned for a while, at least in my neighborhood.

I remember them because they were the top experts in their niche, so their names came up constantly. Truly remarkable knowledge, excellent teaching techniques, and unremitting enthusiasm on their topics, which they turned into great careers.

Now think about you career. It might be tough to be the national leader on C# or real-time trading, but how about something smaller?

How about being the expert in your own department on your internal data feeds or reporting capabilities? Or even better, a business-facing issue, like how you've implemented risk calculations or the workflow tracker?

To get there, first you have to know so much on your subject that meaningful conversations about it can't happen without you. But second, and this is easily overlooked, you have to be able and willing to teach everyone else, constantly and creatively.

Without the first, you're not an expert. Without the second, you're not someone others really want to confer with regularly. Combine the two, and you can discuss your subject at 14 different levels, from intern to senior management. Powerful.

The subject, of course, has to be somewhat deep and difficult, otherwise there's no need for your expertise. If there's a subject / business module / set of jobs that comes up a lot, and when it does, other developers try to deal with as quickly as possible (throw a patch at it and get out), that could be a good place to start.

Monday, September 14, 2009

Show me the... something else besides money

Do you think CEOs need the incentive of a big payout to do a good job? How about the tier of highest wager earners, which includes CEOs, who collectively took home 33% -- 1/3! -- of all wages in 2007? Do you think a big performance bonus helps them do better?

The evidence shows that people who do creative work actually perform worse when a financial incentive is dangled in front of them.

Dan Pink describes the economics in this short video. The short story is that financial rewards only work well under simple rules to achieve a clear goal. The reward narrows our focus.

Meanwhile, creativity requires a broad view. Bending the rules to uncertain ends. A narrow focus is a results killer.

Given that companies are constantly trying to lower costs, why wouldn't senior management of companies that give annual performance bonuses follow the evidence and get rid of them? Here's some possible reasons:

1. It's a setup that enables them to pay themselves generously.

1a. Particularly because it's so easy to game the results.

2. It forces workers to stay the entire year, until bonus season.

3. In theory, it allows cutting back bonuses if the company is not profitable. Given the bonus shenanigans during this financial meltdown, that's a hard argument to make.

4. It takes far more effort to create a company that motivates employees in other ways. Aka, management for dummies.

What does Dan recommend instead of financial rewards? Watch the video. (Via Bruce Eckel.)

Sunday, September 13, 2009

A different kind of software virus

Turns out if your friend's wife starts putting on more pounds, chances increase that you will too, even if you never met her:
A Framingham resident was roughly 20 percent more likely to become obese if the friend of a friend became obese — even if the connecting friend didn’t put on a single pound. Indeed, a person’s risk of obesity went up about 10 percent even if a friend of a friend of a friend gained weight.
Same pattern occurs for other behaviors like smoking, eating healthy, feeling happiness, etc. Behavior spreads like a virus, like a germ.

The conclusion remains controversial, but it makes sense intuitively, which explains why most of the scientists in the article say things like, "It's still being researched, but I believe it."

It's the same reason why we believe:
* senior managers should effuse optimism at all times.
* a good worker put in a dead-beat group will soon become a dead-beat.
* a co-worker's problems at home will affect the workplace; as a result, people are very hesitant to hire someone having personal problems.
* one bad apple can spoil the barrel.

It also means that if you are following good coding practices and doing great work, but find yourself surrounded by sub-par quality, your efforts will raise everyone else's game. Of course, odds are that you will be affected negatively -- infected, as it were -- but now that you know that, you can focus on preventing that. A little like washing your hands frequently.

Friday, September 11, 2009

Software stories: Firefox paradox

Imagine you're Firefox. You were birthed to weaken the evil IE, and you succeed magnificently.

Thanks to your trailblazing, other competitors, including a shiny new one created by your primary financial sponsor, have taken root and formed a vibrant browser market for the first time in years. IE used to enjoy over 90% market share, now settles for 50 - 60%.

As a result of the competition, some are saying you've lost your edge. Looming in the background is a likely loss of funding as your sponsor focuses on their homegrown product.

Now you face an identity crisis: you have basically fulfilled your mandate, so what do you do next? A company without a vision is a sinking ship, and that goes double for one that relies heavily on volunteers.

Here are some options:

1: stay the course. As a vision, aim for nothing less than dominance in the browser market. If you lose funding, try to find another sponsor or use the wikipedia model, relying on personal donations.

2: partnership with other "free software", such as a version of linux or an "Office" suite, to be included as the bundled browser. Grow the installation base through new distribution channels. Another version of this would be tightly integrating with email clients, like Thunderbird, or other tools.

3: expand into new markets by creating new applications. Creates a new vision to rally around. Potential markets would be an on-line "Office" suite that works within Firefox, or follow Google's lead and try to turn Firefox into an OS.

There are frankly no great answers here. Lining up with partners will be very difficult -- these projects like their autonomy, users like to mix and match, and OS + browser bundling was the catalyst for Firefox's birth. Options 2 and 3 put Firefox on a collision course with Google, possibly hastening the cut-off of funds, and increase the need for even more volunteers.

Option 1 gives the greatest likelihood of short-term success, but could easily result in a steady decline. There is a wildcard to play here: a strong, cheap, tribal marketing plan -- one that highlights and encourages add-in apps, which is Firefox's primary competitive strength -- could turn Firefox in the browser equivalent of the iPhone. Such a marketing plan might run counter to the understood rules for open-source software.

Wednesday, September 9, 2009

The best early career advice

Every year a large number of "kids" enter our doors, fresh out of college, for their first programming job. After time-consuming and nerve-wracking selection processes and interviews, it is considered an honor and an accomplishment to be chosen.

Yet, I can't really figure out why. I can't think of one career-enhancing reason to start an IT career here.

And I don't mean just our bank, I mean all big banks. And really I mean all big companies, around the world presumably (though I haven't worked for big companies except in two countries, so that's speculation).

The best thing you can do at the beginning of a software career is to work for a small company.

After thinking about the many jobs I've had and the many careers I've seen start here, I could only come up with 2 solid reasons why someone might want to go big:

1. money
2. vacation time

The money is often better in larger companies, especially on the upper end. But, the money differential now is peanuts compared to the difference 3 years later between someone with deep, hands-on skills versus a mediocre programmer. Taking a job just because it pays more is like dropping out of college to help the family by working. Do it if you truly have to, but it's mortgaging your future away. Live at home or squeeze in an extra roommate, instead.

Bigger companies usually give an extra week of vacation. At small companies, a missing pair of hands really hurts because it's such a big percentage of the total. But what's that vacation for, anyway? I doubt anyone uses it to spend more time with the parents. OK, you'll probably have one less trip to the Caribbean every year, but if that's where your priorities are, then this post isn't really for you anyway.

Note that neither of these reasons are career-related, and that's my point.

Now consider the advantages of working at a small company. All of these come from simply being in an environment where there's fewer people.

1. constant direct, hands-on experience
2. more responsibility than you're qualified for
3. close proximity to or direct involvement in major technical decisions
4. constant interaction with senior developers
5. satisfaction of contributing a large, noticeable percent of the code
6. frequent interaction with company senior executives
7. easier to adopt new practices like scrum or kanban or whatever
8. frequent feedback (believe me, you will know whether people think you're doing a good job)

I could go on, but that's a decent high-level short list.

The early part of your career is the time to focus entirely on learning. Take from the experts; no one expects you to give back yet. It's almost unfair, but go ahead and be selfish.

Even if you've been working a couple years, as a mid-level coder, it's still a good time to jump to a small company. Come back later if you really want that extra week of vacation, and they'll probably throw a title and even more money at you.

Tuesday, September 8, 2009

Free, by Chris Anderson


I've been thinking a lot about free software, because I think that is where the industry is inevitably headed, so I figured I should read the written authority on the matter, Chris Anderson's Free.

The basic premise: the problem of the future, particularly with digital goods, is abundance not scarcity. Because I already believed, I'm actually not sure how convincing he was. I was totally convinced, of course.

Basic economics takes a hit. No more even, upward sloping demand curves. Instead, it's zero demand until a certain point your product becomes valuable enough, and then everyone wants it. Thus, the free economy frequently yields near-monopolies by its nature.

Getting people's attention in a wasteland of abundance is the main challenge, and then just make sure you have a good free business strategy. The book offers a full list of them. Yahoo's response to the Gmail threat provides a great example in the software world. Yahoo successfully combated Gmail's free gigabytes with free unlimited storage.

One thing completely confounded me. Here's what he writes about books:
For nonfiction books, especially those on business topics, free books are often more closely modeled after free music. The low-marginal-cost digital book is really just the marketing for the high-marginal-cost speech or consulting gig.... (Yes, that's my model, too. Speakers Bureau details are on my Web site!)
Given that, where's the free version of this book online? Not to be found. Sure, they posted an audio version here, but the recordings are abridged, and I still think that's a cop-out.

So, free is the future, but it's not here yet. Yup, that sounds like where we are.

Bailout bonus culture

The numbers in this study speak for themselves:
From 2006 through 2008, the top five executives at the 20 banks that have accepted the most federal bailout dollars since the meltdown averaged $32 million each in personal compensation.
That's each. And don't forget that includes a couple years where some CEO's paid themselves very little because, well, their companies were facing bankruptcy. Imagine the payday if they had actually done a good job!

Because large numbers can be difficult to grasp, the writers of the study provide some context:
One hundred average U.S. workers would have to labor over 1,000 years to make as much as these 100 executives made in three.
With that kind of example at the top, the result can only be car salesmen culture. Yes, some car salesmen take a long view and don't try to sell you something inappropriate, but they are clearly the exception. Nobody sends their grandmother by herself to negotiate a car purchase.

The bankers dress nicer and have larger vocabularies (some of my good friends are bankers!), but the result is the same. That doesn't make them evil, that just makes them people who behave according to the incentives provided by their companies.

Friday, September 4, 2009

Cool software: instant check deposit

Depositing checks is one of life's little tediums, and this app solves it:

The friendliest bank in the world, USAA, will soon let customers instantaneously deposit checks through its iPhone application.

The check itself is mainly ceremonial. It's a convenient, self-contained document with a couple of standardizations for machine readibility, but otherwise it's nothing special. Makes sense to combine recent technologies to simplify the process.

Using pictures of checks might seem to invite more fraud, but anyone wanting to engage in deception could always print their own checks by getting MICR toner and the font, both of which are easily and legally obtained. I've actually done this in a previous job. (No, I am not wanted by the FBI.) We were an outsource for printing balance transfer checks you get in the mail from credit card companies. Our printing press was an unremarkable HP Laserjet 4.

Why doesn't every major bank doesn't do this for all their customers? Use a Firefox / IE app if there's too many phone platforms. Simply tell customers that the cash can't be withdrawn until the check clears, which is often the case anyway.

Thursday, September 3, 2009

The wrong way to hire someone

According to Seth Godin:
The wrong way first: interview someone for an hour. If you like them, have them interview three or four other people in your organization for an hour each.
Hmmm, that sounds strangely familiar -- oh yeah, it's pretty close to how I've done it. And frankly my results haven't been that great; I've made a few stinkers along the way.

In my defense, it would be bureaucratically impossible where I work to use freelancing and trial periods, which is what Seth recommends. On the other hand, I have a feeling that doing 3 or 4 people for an hour is the default, I-didn't-give-this-any-thought method. Which makes me suspicious.

Hiring is too hugely important to do without a well-considered strategy, even more than compensation.

Investment banks commonly go the other route: an hour interview with 10 - 12 people. This sounds ludicrous compared to Seth's ideas, but then Goldman, Sachs does that, and their staff regularly beats up the other Wall Street firms.

Toward the end of the last hiring phase (which was a very long time ago now), I changed to 5- to 10-minute phone interviews as an initial screen, and then 20- to 30-minute in-person interviews. I don't know that the results were any better, but I don't think they were worse, so the time saved made it a net plus.

Hiring is tough because it's a little like picking someone to marry after a round of speed dating. You only know if it's going to work once you're in the relationship, which is Seth's point exactly.

In lieu of that, companies try to do group activities, written tests, psychological exams, etc. -- all attempts to get beyond the words.

One great idea was Jeff Atwood's suggestion to have the developer give a 10-minute presentation about their last project to 4 or 5 people. Not only are you looking for clear thinking and communication, but what someone talks about says a lot about how they learn and what they do well.

Once things turn around, I'm looking forward to trying some new hiring techniques.