
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.
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.
#1 by Alan on December 16th, 2009
Hi,
There are several things you should be looking for, to name a few:
Simplicity and Functionality: The ability for a user to do what they want in a simple manner, without too many bells and whistles.
Aesthetics: Does it look good to you? Does it compare to other software applications you like?
There was a recent post written about this on Newton's software blog that should provide some more in depth advice: http://www.newtonondemand.com/blog/2009/04/17/making-it-easy-for-everyone/
#2 by guzen on December 16th, 2009
Please keep the Videos coming. I like to learn from examples.
Example isn’t another way to teach, it is the only way to teach by Albert Einstein. A good rule of thumb.
#3 by Kate94582 on December 16th, 2009
I've worked in management for several years and I have never really had to understand software development to perform my job. It is good to know VB for when you are dealing with a program like Excel (depending upon what kind of business, you may use a lot of analytical spreadsheets). Or if your company uses inventory software like AS400 then understanding some programming can help you to understand that program more in depth. The most I've used programming is when dealing with spreadsheets to make customer price box guidelines or just create a sheet to perform a commonly used formula, like for sales and marketing. I guess that about sums it up. You will usually have an IT help desk on site, if you work for a major company, to handle programming.
#4 by Heath-tO on December 16th, 2009
That's a very broad question, I'm not sure exactly what you are asking. But the importance of algorithms in software is usually related to software performance. The classical example is two computer programs used to sort numbers. One uses the bubble sort algorithm and the other uses quicksort. Both programs will accomplish the sort, but the quicksort version will finish much quicker when the list of numbers is very large. Do a websearch on "O-notation" and "quicksort vs. bubblesort".
#5 by Trixielolo77 on December 17th, 2009
They have these lego-like robot programming kits. They can be pretty sophisticated, and include tutorials and things to build in a book. There is room to experiment freely too. They can be expensive, but are great for educational learning.
Edit: Check out the Mindstorms legos.
#6 by ?pathtotake? on December 18th, 2009
You'd tell them, maybe, you know in advance you don't have the background for software design (like heavy duty math skills), and that you're being mature and realistic enough to know that software design is not your sensible direction for highest achievement.
Or describe visual and graphics interests as opposed to grim and tedious pure full-time grunge logic.
#7 by amonra on December 18th, 2009
Hi,
The following book is the currently the best book and its not even language specific, totally general so good for you.
Design Patterns: Elements of Reusable Object-Oriented Software
Varun
#8 by Tootsie on December 19th, 2009
Honestly. Teach yourself C++.