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.
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
Software Visualization Defined
1. Visualization & Definition
CONCEPTS
March 19, 2009
Software Visualization Defined
How visualization is changing the way companies create software
By Jason Moccia
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.
2. Visualization & Definition
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.
Figure 1.0, Cost of change to project requirements
3. Visualization & Definition
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.
About the Author
Jason Moccia has over 10 years of experience in the software development field and is a co-founder and managing
partner of OneSpring LLC (www.onespring.net), where he oversees the Federal business practice as well as
operations. OneSpring helps companies to work smarter by providing an entirely new approach to software
requirement definition.
In addition to Mr. Moccia’s leadership role within OneSpring, he has also worked as a senior business analyst and has
worked with numerous Fortune 1000 companies—including, but not limited to, Ernst & Young, General Electric,
SAIC, Florida Power & Light, InterContinental Hotels, Deloitte, and SunTrust.
For more information regarding OneSpring and how we can assist your company with delivering products faster,
more intelligently, and more focused, contact us at www.onespring.net.