Adam Smith on software


Adam Smith famously wrote of ‘a man of humanity in Europe’ who would not ‘sleep tonight’ if ‘he was to lose his little finger tomorrow’ but would ‘snore with the most profound security’ if a hundred million of his Chinese brethren were ‘suddenly swallowed up by an earthquake, “because” he had never seen them.

We might argue this statement these days, and the earth quake in Japan in 2011 provides compelling evidence. And that was something that took 20,000 lives as of the latest estimates. But back when the statement was originally written this would likely be very true. If an earthquake did hit China or any other far away land the information would arrive in Europe about a month later, and it would be closer to a myth like Atlantis sinking into the sea than what we have these days of video footage of a wall of water swallowing a town and the images of what it looked like after the water retreated.

That is because things that can’t be seen, heard or felt are not real to the emotional self.

To the emotional self the closer it is to the self the more real it is. There is the self, the things that the self sees and experiences directly, and the further it is removed, and the fewer senses are engaged the less real it becomes. This about watching a sad movie, and compare it to hearing a sad account of a friend of a friend. Chances are that you may have cried during the movie, but when you are just hearing an account that is much harder. That is because it is less real, and harder to emotionally bond with.

Enter software in the organization.

How far is software from the emotional self; for a developer you might argue that it is extremely close. A developer pours a little of themselves into every line they write. It is something they create, their baby if you will. They care a lot.

But if you look over the whole company people likely don’t care. Even of the people that know of the project, or the people that are going to be end users of the product, the level of caring will not be substantial. They will care about the problem it is trying to solve, but as for caring about the actual thing that has to do the work, likely not so much. And this makes sense. A side effect of this is that people that think the software is real will communicate at a very different level than the people who have not had that experience yet. Think of it as a teacher handing you the class statistics on a sheet vs. the statistics on your child. They will put much more effort into the delivery of the second set of statistics because they know you care a lot about your child. This can lead to unfortunate side effects where you get adversarial behavior between departments because of the large discrepancy between caring in the people involved.

Software is not real until people get an experience with it. And this could mean a demo, a video a screenshot, provide a forum to have it feed on itself; all of these things will make it more real, and make people care more. In effect a software project should make a dedicated effort to do public relations work in the company on behalf of the project. Make it real, make people care, and bridge the gap between the developers and the rest of the company. This will help a lot in communications, and this caring can be used to motivate people across the organization.

There is one sub industry of software that does do this. The video game industry, most video games that are in support or under development will have tidbits of information coming out just about every day of the week; taking a look at Star Wars : The Old Republic, Rift, Guild Wars 2, Mass Effect 3, Diablo 3, etc. All of these games have not been released (as of writing this) but you will find rabid fans (granted the IP helps a lot). But these games are real to a lot of people who have never played them.

There is a risk in taking this approach, you do raise the stakes. If you make people care, make it real; they will also care if things go wrong. And in software that is more the norm than the exception. But I think part of the reason why things go badly so often is because it is expected. The bar is set low, and to change this you often run into motivational issues; which happen because people have a hard time caring about the software that they can’t experience as real.

If software wants to change we have to change our consumers who will then give us the drive to change. Because once we make it real to our consumers; failure is a far less attractive option and success will have to become the norm.

Advertisements
This entry was posted in Software Engineering and tagged . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s