Sunday, July 31, 2011

The age of technology? The age of the interface

When computers were new, they were capable of doing things that were labor intensive: calculating payroll, accounting and billing. People who were able to buy computers were also the people who could spend hours learning them. Early hackers were also engineers, or at least bored students with lots of free time who were happy to learn the minutiae of the system. They were happy to go through large volumes of programming manuals, datasheets. The rewards were rich: you got to be the master of a computing machine that did exactly what was told. Products at this time competed on features alone: new features might have been cumbersome to learn, but the customers didn't mind.

That was the age of technology, and we aren't in it any more.

Now, we're in the age of the interface. In the past few years, we have seen the rise of great products which aren't competing on feature-set alone. The iPhone is a perfect example of this: in functionality alone it was comparable to other devices in the market. What made it appealing was its ease-of-use, it's computer interface. The daily interaction with the device were much better than other cell-phones, and that convinced users to switch. I see this trend in many areas.
  1. Arduino is a microcontroller board and development software that allows you to attach physical objects to computers. The underlying microprocessor is made by Atmel, and it has been around for a lot of years. Arduino's contribution is to package the hardware and software in an easy-to-use, accessible package. You buy the microcontroller board, download their free development software, and can have a programming running within minutes. Arduino makes it trivial to try out microcontroller hacking, and it has led to an explosion in creative hardware hacking. Arduino programs are called 'sketches' and the software makes it easy to share your sketches with others.
  2. Processing is a programming environment that makes it easy to visualize data. Processing is built on Java, and is much easier to learn than Java. Arduino and Processing are very similar. With Processing too, you download free software which runs on all platforms. It allows for fast programming: a child can start programming graphics routines within minutes. Processing makes easy tasks trivial and hard tasks possible, all without having to teach a person the nuances of programming. Processing code compiles into four different programs: one each for Windows, Mac, Linux, and a Java applet. Processing also has an Android mode that allows you to run your processing code directly on an Android device.
  3. Fritzing is a development tool for electronic circuits. You can design the circuit as an physical layout (with bread-board, wires and components), or as a schematic diagram (big boxes rather than pictures). It does a splendid job of making hardware traces that can then be used to fabricate Printed Circuit Boards. Also, you can share your projects with other people by giving them a copy of your .fzz file. Fritizing makes it easy for a student to design a circuit board and have it mass-produced.
All these projects make it easy for a newbie to get started. They all provide software for Linux, Mac, and Windows, and they all make it easy to share your creation with the world. This has resulted in many more people getting involved with electronics and software hacking. It has opened this world up to people who were unwilling to read through thick programming manuals.

People are no longer interested in feature-sets. The feature world has been saturated: people who care for spreadsheet features already have all the features in their spreadsheet. Now, the goal is to make a spreadsheet that is accessible to the rest of the population.

Fewer features, ease of use, and excellent design. Software engineers are learning that good products are easy to use and well designed rather than a random collection of good features.

Image courtesy Jeff Atwood.