How Can Software be Perfect?
Add to iTunes | Add to YouTube | Add to Google | RSS Feed
What do we need in order to have “perfect” software? What can companies do to achieve this lofty goal? Here are some excellent tips sent in by a community member. Software manufacturers… pay attention!
- Software should never crash. I don’t care if I try loading a 10 GB file into Photoshop on a computer with 256 MB of RAM. Checks should be performed and resources balanced so that a run-away program doesn’t bring down the entire system. User input should also never crash a program. This isn’t unique to just Windows. I’ve had hard crashes on both Mac and Linux where hitting the power bottom on the tower was the only way to restart it.
- Security should be built in and seamless. Grandma shouldn’t need a degree in Computer Science to keep from getting her identity stolen or her computer infected with malware. Virus-like behavior shouldn’t be possible. One reason Mac and Linux have such fewer viruses isn’t just because of their lower market share, but also because they are built securely and self-propagating programs are rare and are difficult to hide from the system. Firefox is another good example of software that integrates security by alerting the user if they are on a suspected phishing site.
- Protect data at all costs. One horror story comes to mind where a user told me that they had downloaded a document from their webmail but selected “open” instead of “save” at the dialog. After confirming it was the correct document they went to work and subconsciously hit ctrl-s to save their work every so often but didn’t even think about where it was being saved to since they had only “opened” the document. They had kept this window open throughout the day and adding changes and then did a final ctrl-s and closed the window for the night. The next day they looked at their recent documents to see “file not found”. Opening the document put it in a temporary folder which was cleaned out when they rebooted their computer. This kind of thing shouldn’t happen. Operating systems should also keep backups and revisions of documents in case the user needs to go back to a previous draft. Leopard’s Time Machine is an example that comes to mind.
- Online integration. There is a lot of buzz about this “Web 2.0″ (which doesn’t exist) and people thinking that all applications will be run inside a browser. I personally think that is silly. Google Docs & Spreadsheets will never replace Microsoft Office or any other full blown application that is installed to the system. Installed applications have the advantage of performance and being integrated into the OS more than a web application could ever hope to. However, I believe that client-side applications should become more integrated with online services (though not web applications themselves). Imagine OpenOffice, for example, integrated with Google Docs and being able to save data both to disk and online without needing to open up a web browser. My media player can download lyrics for music or provide a link to IMDB when watching a DVD.
- Maintain a “just works” philosophy. I plug in my printer and it works. The user should never even have to hear the word “driver” or “install”. YouTube is an example that we now almost take for granted. Ten years ago I remember having to mess with Windows Media Player, RealPlayer, and Quicktime plugins with all the installing and rebooting just to play a video in my browser. Dozens of different formats and codecs. YouTube has simplified this process. I visit the site, hit “play” and it plays. If flash isn’t installed a quick “click here to install flash” and boom! It works.
FirstRSS ERROR: "http://shop.tagjag.com/products/software" NOT FOUND!
Want to embed this video on your own site, blog, or forum? Use this code or download the video:




