This month's topic is Hybrid Vehicles. Combining data from the DOE and the Alternative Fuels and Advanced Vehicles Data Center, we show just how much better hybrid vehicles are for...
By now, you’ve experienced the wonder of web-based software. Virtually everyone in the modern world uses it when they get online. A few examples include online banking, maps, web-based email, photo-sharing sites and Facebook. Web-based software does just about anything you can imagine with data.
For the most part, well-designed software doesn’t make you aware that it’s in your life. It helps you focus on the task at hand and get your work done, or lets you play effortlessly.
Ironically, that effortless feeling takes a good bit of work to achieve. Since you can do just about anything imaginable with digital information, it is an ongoing challenge to keep the features relevant and stay tight to your goals while building web-based software.
The large majority of software are complex systems – groups of many different, connected parts that interact with each other. In these types of systems, when one part changes, it typically has an effect on other parts. That has the potential to create a cascade of changes throughout the system.
Visual design is similar in the sense that when you move one element on a page, it affects other elements. Add that on top of the multi-dimensional aspect of interactive software, and you have too many relationships to count. Building and resolving these relationships requires a process that is strong enough to keep you on target, but flexible enough to allow you to innovate and add value to the process.
Over the years of designing and building web-based software, we have come up with a few rules we follow for our successful projects.
1. Rapid Prototyping
For the most part, anything we conceive of has been done before in some form, whether on a competitor’s website, or some other analogous example. As a rule, we look for analogous examples of what we wish to achieve. Since each section you add to software is part of a larger system, each section has a relationship with numerous other elements and therefore has a multiplying effect on the complexity. If you are able to identify some of that in other examples prior to starting your project, you’ll be way ahead in the development cycle.
2. Create Schematic Diagrams
Prior to designing, we always start with wireframe diagrams. Simple boxes on a page are used to represent the numerous elements we will include in a given section. They also represent the location, size and their relative importance in the page. Although they are dead simple, they invariably spark an hour-long conversation. At this early point, we are able to, for instance, discuss shipping policies, bulk discounts, user registrations, email notifications, etc. The schematic diagrams become the bones for the software and provide great insight into how the software will work.
3. Create State Diagrams
With more complex software that uses a lot of conditional logic (if X, then Y), we want to include diagrams of what information the user selected/entered at any given point in their use of the product, and what they should see after that. We do this with the help of our schematic diagrams and flow charts.
4. Develop From the Center
Being that you probably have some upper limit to your budget, it’s best to make sure that you know what your highest priorities are and accomplish those first. Software is fun to build and it’s easy to get distracted on features that don’t get you closer to your goal. If you always balance every new idea against the question, “Is this necessary to achieve my goal?” then you will have a fighting chance of being realistic about the things on your To Do list.
5. Let the User Share in the Work
The more automation software has, the less work the user has to do. But, that can mean a bigger dent in your budget. Sometimes asking a user to do a small amount of work (like typing their birth date in a certain format) isn’t that much of a task for them, but can be a significant task for your developer to work with otherwise. Consider the balance between the two. If your instructions are clear people usually don’t mind doing a bit of work.
These tips aren’t going to get you out of the hard tasks of prioritizing and focusing, but they certainly can help to keep the extraneous noise to a tolerable din while you focus on the important things. Remember, you can always add features later. The best software often starts of with one right idea first and then evolves to become much more complex.