What is the purpose of Software?

My friend Grant Rule posted an interesting question on LinkedIn. He asked, “What is the purpose of software?” To me the answer is obvious and the purpose of software is to solve problems. Too many software applications are being built without a clear problem to solve. Too many in the field of software development focus on what the technology can do.

Let me make an analogy for you. I travel a lot internationally and I went to my bank (Bank of America) and asked for a line of credit. The banker said,” of course we can give you a line of credit” and then she asked, “what problem you are trying to solve?” I explained that I travel a lot international and run up large expenses. The problem, in my mind, was the time between when I was paid by a client and I had to pay my credit card bills. The solution, in my mind, was a line of credit. Notice I had the problem and solution well in my mind. Then said asked me if she could offer a potential solution. She suggested, “Why don’t you ask your clients for a percentage upfront to cover your expenses?” It turns out I did not need a line of credit at all. I have taken her advice and it has worked well.

To many “customers” of software applications do not know what problem they are trying to solve and therefore cannot offer a solution. Tom Kelly (The Art of Innovation) points out too customers do not have the ability to articulate what is wrong and especially what is missing. So if the purpose of software is to solve customer problems, and customers cannot articulate what is wrong and what is missing, then exactly who is suppose to articulate the problem and potential solution?

Shifting Gears

Anyone who has ever chugged along trying to their teenage child how to drive a stick (manual transmission) can appreciate the complexity of the task. No doubt It is more complicated to teach a teenager (or anyone) how to drive a manual transmission than an automatic transmission. The reason being is in an automatic transmission much of the complexity of driving has been hidden away and is not seen by the driver.

The complexity was not just hidden it was transferred. It was transferred from the driver to the transmission because an automatic transmission is more complex than a manual transmission. An automatic transmission is more complex (and expensive) to design, build, and maintain too. As software development matures we see much of the complexity being hidden from users. As an example, look at the complexity of booking a hotel reservation or airline reservation. Most of the complexity of has been nicely tucked away.  It cost a ton of money to hide all that complexity and functionality.   Once upon a time it took a trained travel agent to book an airline flight. Nowadays just about anyone can accomplish this task.

My teenage daughter drove to school today chugging and grinding the gears.  In due time she will learn to drive a stick shift.  The same is true with software development.  We are chugging along and grinding the gears trying to transition from internal applications (exposed complexity) to customer self service (hidden complexity)

Agile Coach — WTF mate?

Like a lot of people I put my resume on job sites.  Yesterday I was sent an automated human resources message.  It read, “A job opening matching your profile for a position of Sr Principal Agile Coach has just been posted in our Career Section.” There is nothing in my resume that shows an interest in becoming an Agile.   I thought well, perhaps, the human resource bot searched the internet and got a lot hits on David Longstreet and Agile (there are over 500).   Perhaps it was my article, “Agile Methods and Other Fairy Tales” that got the bots attention.

Perhaps it was the fact that those professionals in Agile wrote that I was a troll or “a so called international consultant.”  As an FYI, when anyone starts a sentence with “a so called…” what follows is not going to be a complement.

I decided to apply for the position to see what happens and I will keep you all informed.

For those who want to read my ideas on Agile (and for those HR bots) you can see them at http://www.softwaremetrics.com/Agile/

US Economic News for IT – not so good!

Last week the Bureau of Labor Statistics reported that unemployment remained flat at 9.7 percent.   It seems that government, manufacturing and even construction industries added jobs, but IT jobs lost ground.

Within the very broad information segment of the economy, which includes movies, music, publishing, broadcasting, telecoms, and data processing, the telecommunications industry lost 5,000 jobs, to 943,300, while data processing, hosting, and related services companies cut 600 jobs, to 247,500.

The professional and business services segment, which has a total of 16.35 million people working within it, has some IT-related parts. Companies providing computer systems design and related services cut 9,600 jobs in the quarter, a small portion of the 1.43 million people in this field but significantly nonetheless.