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.