Executive Summary
Software visualization, also referred to as just “visualization,” is quickly becoming one of the fastest growing and most widely talked about technologies within IT today. Visualization is the process by which software applications are defined “visually.” I stress the word “visually” because traditional methods have, until now, dictated that software is defined “textually.” The process of visualization makes use of specialized tools that allow project teams to quickly define user interfaces, as well as user interactions, without writing any programming code.
Visualizing software is a relatively new concept. One of the precursors to visualizing software was prototyping, however prototyping is now going the way of the dinosaurs in terms of its usefulness and cost effectiveness. The primary distinctions between visualizations and prototypes revolve around who creates them and when in the lifecycle they occur. Visualizations are made to be highly collaborative and easy to modify based on changing requirements and project demands. Competition has also driven companies to think about developing software faster and cheaper and finding new ways to do it. The need for enhanced user experience has also been a driving force behind this trend. As consumers demand more from their interactions with software, the need for more user-friendly applications has grown exponentially. Technology has also become so advanced over the past 10 years that just about anyone can develop software. Both large and small companies are now able to compete at the same level in terms of bringing their ideas to market faster than ever before. This dynamic has changed organizational priorities so companies can now focus on how to be more nimble. Also, barriers-to-entry have lessened due to these advancements. The evolution of visualization is playing a key role in these trends because it is equipping companies with the ability to quickly develop concepts and ideas in less time and at lower costs.
This article outlines the latest trends in the visualization space and identifies key concepts along the way. How are companies and individuals using visualization to advance their goals and objectives? What types of ROI’s are companies realizing because of this trend? This, and other examples are discussed below.
Key benefits of visualization
The ability to test-drive software applications—or any user interface for that matter—has tremendous value within business and is at the core of what visualization is about. This new paradigm gives companies the opportunity to quickly produce working simulations of concepts, ideas, and existing applications without a large investment and by using minimal resources. It also allows businesses to quickly evaluate concepts with real users prior to any development taking place, thus reducing costs.
The ability to quickly visualize software is turning traditional software development processes upside down. The original target group for this technology was IT, but it is now taking hold within business groups, such as marketing and operations. Until recently, these groups have had no way to create working concepts of ideas for software or web applications that could solve their business problems. Reliance on IT alone to prove out concepts has been typically slow and expensive. Here are some of the benefits these groups are realizing.
The ability to quickly design and test-drive concepts without getting IT involved. We’re talking days, not weeks or months.
The ability to conduct user testing prior to spending enormous amounts of money on developing applications with programming code such as PHP, JAVA, .NET, scripting, etc.
The ability of business users to take part in the creation process. Since anyone can learn how to visualize, business owners are taking increasing ownership in building working visualizations.
The ability to simulate COTS applications without any customization. Think about test-driving SAP™, PeopleSoft™, or SharePoint™ without actually installing and customizing any code.
How is visualizing software different from prototyping software?
The main difference between visualizing and prototyping software applications resides in the people and tools used. Prototypes are traditionally created by a developer or group of developers. This typically increases the cost and the time needed to view and interact with a concept or idea. Prototyping also usually occurs after significant time and money has been spent defining textual requirements. However, the benefit is that (most likely) reusable code will exist after the prototype is developed that can be used in the finished product.
Visualization, on the other hand, is the concept of visually defining software or web applications prior to development. If you look at a traditional software development lifecycle (SDLC), visual depictions of an application occur some where during the “design” phase. Visualization fits within the “define” phase—much earlier in the process. This distinction has real dollars associated with it that can help justify the visualization techniques. There is also the distinction of fidelity. Visualizations also allow team members to quickly increase and change the fidelity. Users can quickly import and swap graphical elements, as opposed to prototypes which may require coding changes.
Visualizations can be built by anyone—even those with limited or no development experience. It also occurs early in the lifecycle, where the cost of change is significantly lower. Figure 1.0 illustrates the reduced “change cost” associated with visualizing in contrast with prototyping. A change to the application during the prototyping phase can significantly increase cost for two primary reasons: 1) you must include development resources earlier in the project lifecycle, and 2) any change to the prototype will have to be made in the textual requirements defined earlier in the process. The latter in a larger project can cause extensive delays that directly affect the project’s budget. Controlling and enabling flexiblilty earlier in the lifecycle reduces the overall cost of a project.
The future of Visualization
Let’s face it—a lot of us have become dependent on technology. It is part of our daily lives. We interact with software throughout the day. I’m not referring to just websites and computer software, I’m referring to such things as our cell phones, GPS devices, televisions, etc. As consumer electronics become more sophisticated, the need for better/simpler user interfaces will grow. Think back to the first generation handheld GPS devices. Most were clunky and the menu of options were difficult to navigate. Such devices have become easier to use as advancements in technology have matured and the demand for easier-to-use products has grown. The good news is that companies are starting to respond to consumer demands to make products and software more user friendly. This is at the core of the user experience design approach, to which visualization is well-suited.
Visualization is currently going through its next phase of maturity. As computer systems and software become more integrated into our daily lives, the need to test-drive these systems will grow. Companies are starting to realize they can use this software to visualize anything with a user interface—for example, ATM machines, cell phones, microwave interfaces, remote controls, GPS devices, etc. The goal of this technology is not to replace traditional computer-aided design (CAD) software, but rather to gain valuable information by allowing users to interact with software products, ideas, and concepts prior to making large investments in the building of them.