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.

Monday, August 31, 2009

What does free software look like?

Evernote is a tool makes it easy to save your data to web-accessible storage. Like a lot of web companies, it uses the freemium model: charge nothing for the basics, fees for premium services.

The beauty of Evernote's business is that continued use results in increased likelihood to pay:
About 0.5 percent convert to paying customers in the first month. But after about a year, 4 percent have converted... The shoebox of data is more valuable to the customer as it becomes larger. In addition, compelling uses — like photographing those business cards — quickly eat up the monthly allotment of memory, inducing a person to start paying.
This is similar to Google's gmail / storage strategy, but seems more direct and more effective.

But one thing nags at me. What happens if Evernote runs out of money or parks their cash with the next Bernie Madoff?

It's almost as if the business model works too well if it works well: if Evernote makes it so easy to store things, you will store a lot of things. That will in turn make you nervous to keep storing things there. In other words, if your data becomes so valuable to you that you're willing to pay monthly fees to store it, at some point doesn't it become so valuable that you fear keeping it at Evernote?

Did we learn anything from the financial meltdown?

These two headlines provide the answer.

Banks 'Too Big to Fail' Have Grown Even Bigger

Leverage Rising on Wall Street at Fastest Pace Since ‘07 Freeze

Why did we have to bail out the banks? They were too big to fail. How did they get so huge? Outrageous leverage was a primary cause.

This is not a financial blog, and I typically mention the financial industry only with regard to compensation. But the current direction of the industry is too disturbing.

Seeing these headlines, it's hard not to conclude that the only thing that will lead to reform is global financial disaster -- the very thing you hope to avoid by having reform. A few countries almost went bankrupt either trying to save their banks or trying to save their economy when everything tanked. The US and most of the world have bet almost everything that things will improve from here, that there won't be another global meltdown.

And, even if we could afford it, public is already justifiably outraged by the bailouts. We could be looking at serious, violent class warfare if another bailout became necessary.

It's hard to change. It's hard to leave money on the table -- stay out of risky businesses or impose regulations that force your banks to do so -- when others are raking it in.

But, at some point, we'll all have no choice.

Thursday, August 27, 2009

Light Friday reading: robots

Has artificial intelligence advanced far enough to be scary? This article thinks so (requires free registration).

They're worried about a HAL-like computer from "2001", but worse would be the robot clones dreamed up by Philip K Dick, mainstreamed by James Cameron, and fully realized in Battlestar Galactica.

Of more immediate concern, robots are increasingly taking over jobs, perhaps permanently freezing out unskilled labor.

But perhaps we should be worried about skilled labor. Watch these robots make ramen. The best part comes about 2/3 through, when they entertain the crowd.
The orders are complex too, requiring the robots to take customer preference for amount and type of sauce, salt, noodle, and so on. The finished product is handed off to a human server who brings the food to the customer’s table. The irony could not be more real as we witness the lowly human in the role of a mere server while the robot takes on the cooking.

Shrink the beast

If you want to stop excessive pay in a swollen financial sector you have to reduce the size of that sector

That's the head of Britain's financial regulation authority. Hopefully this means the conversation is moving in the right direction. It should start with this premise and see where it goes. Here's where it takes him:

[You can] apply special taxes to its pre-remuneration profit. Higher capital requirements against trading activities will be our most powerful tool to eliminate excessive activity and profits. And if increased capital requirements are insufficient I am happy to consider taxes on financial transactions – Tobin taxes."

These are fairly aggressive suggestions, and reasonable people might disagree on whether they are the right specific measures to take. However, they are absolutely at the right level: broad-based and sweeping, not trimming at the edges. I would add severely limiting the use of leverage near the top of his list.

And before you dismiss this as socialist craziness, don't forget that Britain is the second largest financial center in the world, so they have a huge stake in the game.

Via Kevin Drum.

Tuesday, August 25, 2009

How does your company compare?

If you work in a large company, you surely know how hard it can be to get rid of dead weight. You probably know some people who aren't contributing, yet manage to stay in their jobs for years.

Now imagine if
  • everyone that worked in your company earned a job for life on their 3-year anniversary, unless fired for cause.
  • workers whose jobs disappear, because the company got out of certain lines of business or closed departments, continued to get paid indefinitely while they waited for reassignment, even if they refused to take another job within the company.
  • all cases for firing, including blatant cases such as being knocked out drunk on the job, required a special investigation and an arbitration hearing, which can take up to 2 and a half years to start, 40 days or more in active testimony, and another year before an actual ruling, during which time the worker continued to draw a full paycheck.
  • over 2% of your workforce drew a paycheck and showed up everyday in order to do absolutely nothing, because they were waiting for arbitration or reassignment.
Do you think you'd have any incentive or motivation problems? How much dead weight would you expect, not even counting the 2% known non-workers? Imagine trying to get something done.

Sadly, this is a description of the New York City school system. Reading this full article presents an even bleaker picture than what I've summarized. The hundreds of millions of dollars all these non-working teachers and misaligned incentives cost annually is the least of the real cost.

There are a lot of messages and conclusions you could draw from this situation.

One thing that struck me is that many great teachers and principals still take the job, put their hearts into it, and do great work. They deserve an even bigger commendation, and probably more money, than I originally thought, and that's saying something.

And it speaks to the power of a shared vision. Despite being surrounded by wreckage (don't forget the poorly maintained schools and sometimes unsafe working conditions), a strong mission and sense of purpose can really help people who want to do good work stay focused.

If you have any leadership responsibilities in your company, surely the barriers to changing things and creating the better environment aren't as great as the ones facing the school system's superintendent. What's stopping you?

Monday, August 24, 2009

Nemesis

"Good team player."

Everyone writes that on their resume, and pretty much everyone believes it about themselves. But what does it mean?

Does it mean you get along with most people, aren't some kind of recluse without any social skills, or a backstabbing, Machiavellian career climber? That puts you in the same group with about 80% or so of the population. Is it therefore some kind of minimal social requirement, just to filter out the extremists and the recalcitrant?

I think it's supposed to mean more than that, or else we wouldn't put it on our resume. I think we mean we're better than most people at getting along, not being selfish. Yet, examining our criteria doesn't yield much evidence.

Enter the nemesis. We all have one. This is the one person we can't get along with at work. Something we do sets them off, or the words they use grate us entirely the wrong way. We can't stand their commando style. They hate our jokes.

I have seen this many times. One example: I knew a tech lead who was competent, but a little soft. The business analyst that was his customer was pretty tough, and would poke holes in everything he did. He shrank slowly over time. They replaced him with someone more confident and a little bolder, and everyone got along fine. Then, ironically, when that business analyst left, her replacement was even tougher. She and the second tech lead battled too much, and couldn't work together. I had a feeling the first tech lead would have gotten along with her just fine. All of these people were able to work with others, but as pairs, they couldn't.

How you deal with your nemesis is the true test of whether you are a good team player. You will have to spend a lot of time listening, really listening to see what it is that causes the friction. This doesn't mean rolling over and being a push-over. Sometimes it means the opposite of that.

But it does mean investing extraordinary effort into adapting yourself so that your interactions are productive.

Because ultimately that's what it means to be a good team player: listening to the needs of your teammates and then adapting your own efforts. It requires tremendous observations skills and sensitivity to words, body language, intonation, work habits, motivations, among other things. Few of us are very good at it.

Think about that the next time you see "Good team player" on a resume, especially if it's your own.

Thursday, August 20, 2009

Media is software, software is media

Much attention has been given to how media is getting killed trying to make the leap to the digital age.

Newspapers are literally dying while they search for an online business model. Magazines are being replaced by blogs. Craigslist destroyed the classified ad industry. Kindle is the most successful attempt so far to update the book, but it's hardly mainstream. (My dad said he never heard of it.) Movie theaters don't make any money unless you buy a popcorn.

Meanwhile, we have had occasional public discussion about whether software is speech, as these other forms of media are. Often, digital rights sit in the middle of these discussions, as some company invokes the DCMA to stop a coder.

But, I recently noticed something that made me realize that software, particularly games, are even closer to traditional media than I thought.

At the bookstore, I started seeing many books that originated from computer games. These include everything from long, intricate novels to comics. Apparently, this has been going on for a while, but it's reaching a point of mainstream acceptance, which is why I finally noticed it.

Of course, good games have always told stories. I can remember some of my Civilization empires as clearly as some movies. Games are increasingly described today as "prequels" or "sequels", and not just in the sense of having newer features, but literal extensions of the storyline.

And, sometimes at the end of a game, you miss the characters, just as you do when you turn the last page of a good book. Which is why these books make perfect sense: another chance for fan interaction.

As we contemplate how to apply old laws to new forms of digital media, new forms of digital media are morphing with the old ones.

So, while technology threatens to knock the doors off our old understanding of speech and fair use, software may actually deliver the bigger blow by changing what our definitions of media and speech. Software is speech.

Wednesday, August 19, 2009

Software is fun

Sometimes, in the pressure of our deadlines, it can be easy to forget how fun software is.

This video of a demonstration of some cool software offers a great reminder. By now, you might have seen some variations of this out in public already, but the presenter's enthusiasm catches you anyway.

Maybe your software won't look as cool or elicit oohs and aahs, but if it makes an order flow seamlessly or helps a trader make 100k today, people are feeling even more giddy.

Metaphor of the day: antibiotics and software bugs

If you assume your app will have bugs -- a wise assumption, I would say -- how should you respond? Hire a lot more debuggers? Budget longer testing cycles?

As a metaphor, ask yourself this: if we assume everyone gets sick, what should we do? Invest in researching stronger drugs? This post argues that doing so may solve the short term problem, but makes things worse in the long run:
[Modern medicine] tried to deal with a too-fragile system by killing bacteria. Bacteria, like financial bubbles and fads, are part of life. We need to make our bodies more robust to them. Fermented foods do that. By killing off bacteria inside our bodies, antibiotics do the opposite: Make us even more fragile.
Eating healthier (this doctor suggests specifically fermented foods) is a systemic, pre-emptive effort to minimize the effect of getting sick.

When I read that, I thought, "Agile processes!"

So much of Agile practices are oriented to creating systemic, preemptive efforts to minimize the risk of bad code. The aim is to stop bad code is stopped at the door, when it's cheap. Automated builds, automated tests, daily scrum -- the list goes on -- all work together to create a robust ecosystem that produces good code.

Agile doesn't have a lot to say about the actual QA cycle, except in how it impacts development. That's not an accident.

It's no surprise that the metaphor is apt. A software application is an organic, breathing thing in many ways.

Monday, August 17, 2009

How to make great software

It's just a spreadsheet, but it's been programmed to answer, with startling accuracy, questions like, "Is Iran going to build a bomb?" and "Which financial firms will commit fraud?" It's a fascinating piece of software, but this quote underlined a critical point:
I think the model is, I’m sure, brilliant. But lots of other people are good at math. His gift is in interviewing. I’ve said that flat out to him, and he’s said, ‘Well, anyone can do interviews.’ But they can’t.”
The software's creator performs the interviews to generate the inputs for each prediction.

As developers, we often get caught thinking it's the technology, it's the algorithm, it's the technical expertise that makes or breaks our software. Sure, that's important. If that stuff didn't work, it'd be useless.

But that's not what makes it great. It's talking and listening to the users and finding out what they really want. It's understanding the domain space so well that you pull in the important variables.

Anybody can do that stuff. But, as is constantly proven, they can't.

Thursday, August 13, 2009

Misincentives

These aren't about software, but they speak to the difficulty of creating the right incentives, whether for a team of programmers or a team of doctors. Sometimes, even small incentives can backfire:
When day care centers fine parents who are late to pick up their kids, lateness increases. Why? Because the fine turns a moral obligation (come on time!) into a service for a fee (we'll take care of the kids if you pay us more!). Another example: When Swiss citizens were offered an incentive for agreeing to have a toxic waste dump in their community, their willingness to accept it fell by half. Why? The offer of an incentive induces them to ask What's in my interest? instead of What are my responsibilities as a citizen? And when people offer a stranger a token payment for help unloading a couch from a moving van, strangers are less likely to agree than if offered nothing. Why? Because the offer of money has turned the assistance from a favor into a job.
(Via Seth Roberts.)

And you'd think a program's success paves a road to its expansion. But the success of Medicare may actually create incentives against universal health care.
If I were a progressive I would be wondering right now whether Medicare was a tactical mistake. The passage of Medicare meant that most old people get government-provided health care coverage. Yet the way to get things done in this country, politically, is to get old people behind them. Further health care reform doesn't now seem to promise much to old people, except spending cuts on them.

Wednesday, August 12, 2009

The lesser of two evils

Managers at all levels often feel obligated to say something when things are going badly. Part of the job description is to get in front of the troops and rally. They commit to being a positive source of energy only because they feel obligated to, and not because they truly feel they can live up to it.

But what about managers and executives who are feeling equally demoralized? Feeling equally uncertain about the future? Have lost their loyalty to the company and the cause? Wondering what the strategy is and whether it makes any sense?

This is surely a common situation these days. The reality in many of these situations is likely that the company is actually in trouble, senior management has no clue or has suffered too much turnover, and the future is as bleak as it seems.

I think the worst thing leaders can do is to try to bluster their way through it. Because if they can't convince themselves of any glimmers of hope and commit to it 100%, either they will do a terrible job and spread their own ill feelings, or they will do a predictably mediocre job and everyone will see right through them.

If they keep your mouth shut and hide away, everyone will just think they're lousy managers. "Doesn't he know he should visible, trying to calm the crowd? What's wrong with him?" But taking a personal reputation hit is serving the company's cause better than trying to BS through some crap they don't believe.

Tuesday, August 11, 2009

It's like riding a bike

Think of your career as though you're going on a bike ride.

During the uphill stretches, it's tough to pedal, each crank a real struggle. Other times, coming downhill, it takes no energy, and you just enjoy it.

How many times have you heard about a friend of a friend who works at the cushiest job, comes in late, leaves early, takes a long lunch, works out and surfs the Internet for long stretches of the day, basically does his job in an hour or two? Naturally, your first reaction is, "Wow, that sounds awesome."

This guy is coasting downhill -- fun times, indeed.

Your second reaction is, "Why am I working so hard?"

Coasting is a blast, but every moment spent going downhill is an uphill climb you'll have to make later.

Meanwhile, if you pedal uphill, you know you can look forward to some relaxation later. Too much hard pedaling all at once, though, you'll get burned out, so you have to mix in a some easier times -- patches of level ground or slight downhill grades. Too much coasting, and you'll end up with a deficit to make up at the end.

Some people have coasted so long, they can't even contemplate making the uphill climb. You know some of these people, perhaps not personally, but you see them at large corporations or government agencies. Their only hope is to ride their current job and pray it doesn't go anywhere. When they're 50 or 60, their worries multiply, as they become less physically and mentally able to do something new, even if they could muster up the desire. They might hate their mind-numbing job by then, but what else can they do?

So, if you're pedaling hard, take comfort that you're building muscles and saving up for a nice, pleasant ride later.

Monday, August 10, 2009

Common knowledge that needs research

We already know this:
New research shows that 13 of 14 common workplace-relationship problems, such as broken commitments, mistrust and misrepresentation of information, occur more than twice as often with virtual teams, as opposed to teams located in the same building.

In short, the survey finds that distance ultimately does more harm than good.
We know this from experiences with off-shore development, which usually fails not because the workers off-shore are dumber or unskilled, but mainly because they are so far removed from the users and the power center.

I feel the gap of distance when half the team sits at a different location only a few miles away, and even though we all speak the same language and meet every couple weeks.

If the guy is next to me, I can see when he's got a free minute and I'm not interrupting him, so even though I might interrupt him constantly, it doesn't feel negative. He'll feel more interest in working on a problem with me, because I'm right there and we're talking, not some nagging email, another task to check-off.

Frankly, I notice the difference even between the guy sitting next to me, and other coders who sit a few rows away.

We know all this, so isn't research like this ridiculous? Sadly, no.

Managers like to create stories about how technology and virtual teams enable cutting costs, with no downside.

We developers like to believe we don't require personal interaction with our users, we can just send an email. Or we don't really need to collaborate, we can just work on our own hours at home.

Yes, some of the trouble can be mitigated with superior technology and tools. But there is always a cost.

If you're someone who works at home regularly, understand that it will be very difficult for you to grow your career. Perhaps you are looking for more balance in your life anyway, so that's fine with you. But if you still want to be on a growth track, you'll have to outperform by double or triple people who just show up.

Friday, August 7, 2009

Software wants to be free

In the not too distant future, there will be two price points for software: customized software that you have paid someone to build just for you, and free. Everything not customized will be free.

Right now, we're at the transition point. Software is lagging newspapers, but people are starting to notice and have various reactions. Jeff Atwood celebrated more software at lower prices, but recognized that some disparage this as a "race to the bottom". Another columnist noted that the next Office will have a free online version, and blamed Microsoft's desire to push Silverlight.

I disagree that moving to very low cost software is a bad trend. All digital media -- newspapers, magazines, music, phone calls -- is moving to free. Free is the future. Why should software be any different?

Frankly, Microsoft faces a real threat to Office. One day, within three years or less, a free, on-line spreadsheet and document app suite will challenge them*. Gmail is the first breach in the Office product line. If you could get apps that supported Word and Excel formats seamlessly, cost you nothing, and did a few other things like enabled on-line collaboration and integration with IM, gmail, etc., how quickly would sales of Office fall to zero? Microsoft has to make versions of Office free, because someone else will. Silverlight is just along for the ride.

The question remains: how do you make money on free software? No simple answers have emerged. Giants such as Twitter, Wikipedia, Facebook haven't quite got it figured out, though they're working furiously on it. Even Apple doesn't make much money on the apps; the apps drive sales of the phone.

It's safe to say that the survivors will have figured out how to compete at the free level.

*Edited on Sept 8: Just to clarify, of course we have Google docs and some others today, but I'm talking about a competitor taking significant market share like Firefox takes from IE.

Saturday, June 20, 2009

Absence

I'll be tied up for about 2 weeks, so see you then!

Thursday, June 18, 2009

Competence

Just an example I ran across in a book recently of how circumstances can make someone seem excellent or incompetent.
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?

Before my boss announced her departure, my question to her would have been, "Why are you still here?" The question had stirred in my mind for a while, but I rarely voice such things.

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.