Modern Principles for Effective Software Design

Software has come a long way since the concept of timesharing hit the early mainframe computers. The rise of the PC has increased the importance of the individual during the design phase of software development. Applications with user-generated content have further pushed software design into an era where usability is king. Modern software and web services are redefining principles of customization and usability in order to better meet the needs of their userbase

Google, the de facto king pin of modern, user-centric software services, creates products that emphasize high-value features, customization and flexibility. Gmail has set a standard for launching software that provides high-value core services. Prior to Gmail consumers had two general options when it came to email: an outlook account pulling their email onto their computer or a web-based service with limited storage space. Gmail launched with 1 gigabyte of free storage. Storage became a killer feature that enabled users to keep their email in a web-based service that had an essentially unlimited capacity to archive their old emails. A strong foundation of core features has marked the launch and development of all of Google’ products from their Adwords service to Google Maps.

Recently, Google has made a move into customization. Gmail now has a number of custom skins that enable each user to select a visual user interface that matches their personality. iGoogle enables users to download any number of widgets from stock tickers to local weather feeds to customize their Google search page with the information they need most. Customization is making software personal. As a consumer, once we invest time in customizing a service, we are less likely to make the switch to a competitive service that does not offer customization.

Flexibility in the form of constant connectivity is proving to be a game changer in the software industry. Google is leading the charge by building massively scalable applications in the cloud. The web 2.0 era saw a major trend in services that extended the power of people’s computers through the connectivity of their internet connection. From Photobucket to Quickbooks, consumers and businesses are storing more and more of their valuable information on the web. The rising number of available netbooks is a testament to the power of web-based software and increasing reliability of web-based storage solutions.

Microsoft’s approach of developing software with a tremendous number of bells and whistle is a comparative shotgun to Google’s sniper rifle. Don’t get me wrong, many programs such as Excel are tremendously powerful tools that frankly blow away the competition when it comes to features. However, many times the overwhelming number of bells and whistles can leave a user hunting for the core features where they derive the most value from the product. Looking at software through the lens of the auto industry, Cadillacs had more options than the original Japanese imports, but in the long run the Japanese emphasis on core value and reliability trumped all the chrome spoilers that Detroit had to offer.

The final piece of the design puzzle is a deep understanding of a software’s userbase. This understanding does not necessarily mean building software for the average user, but rather building software for the critical user. I came across some great insight recently while reading over a post from Steve Hazelton, the CEO of Newton Inc., a company that designs online recruiting software. In his recent blog post, Hazelton highlights a new trend in business software that requires the developer to design their product to fit the needs of their most critical user, while still providing an effective platform for power users. This approach requires a software service to have a minimal learning curve for the person using the application the least. As modern software continues to incorporate self-explanatory UIs and a focus on high-value features, companies will reduce the inefficiency associated with the software adoption period.

With new companies pushing the limits and industry leader setting the standards, Software design is evolving at a breakneck pace. Competitive pressure in the software industry is making design and usability paramount to success in the marketplace. For the sake of long days wasted in seminars learning useless features, lets hope that things keep moving in the right direction.

Posted in Uncategorized

Leave a Reply