Design Overview: Fitting a Solution to Requirements

Design_Fitting_a_Solution.jpg

Experience Matters

When someone talks about design in a software development context, most people think of user experience (UX) design. It relates to classic design, arranging visual elements in aesthetically pleasing and useful ways. Good UX design makes using a solution appealing or even joyful.

When the web burst on the scene in the mid-1990s, software’s “user interface” grew into user experience, led by the Nielsen-Norman Group. Co-founder Don Norman said:

“A product is more than the product. It is a cohesive, integrated set of experiences. Think through all of the stages of a product or service – from initial intentions through final reflections, from first usage to help, service, and maintenance. Make them all work together seamlessly.”

From a user perspective, experience with a product or solution matters more than its features or even its cost. Apple has made billions of dollars selling premium products differentiated by their user experience.

Design Thinking

Design thinking has gotten a lot of attention as an innovative way to solve problems. Tim Brown, Executive Chair at Ideo, a leading design firm, says:

“Design thinking is a human-centered approach to innovation that draws from the designer’s toolkit to integrate the needs of people, the possibilities of technology, and the requirements for business success.”

Design thinking intends to create products and solutions that best fit customer needs. According to the Stanford Design School (d.school), design thinking consists of five phases:

  • Empathize – with users

  • Define – users’ needs, their problems, and your insights

  • Ideate – by challenging assumptions and creating ideas for innovative solutions

  • Prototype – to start creating solutions

  • Test – solutions

In software design, empathizing with users and customers, defining their needs, and gaining insight should start with business analysis and continue through the solution design process. Testing prototype solutions with users confirms a good design or provides opportunities for low-cost improvement. 

The middle phase ideate suggests “challenging assumptions and creating ideas for innovative solutions” What does that mean?  By default, people solve problems based on their experience and familiar patterns. Build What We Need, Not What We Asked For tells the story of a company using Google Sheets to track its sales data. An admin summarizes the sales reps’ sheets into a master spreadsheet for management. The master sheet’s information becomes obsolete by the time management gets it. The sales department wants to fix the problem with Google Sheets because that’s all they know and have.  

The article challenges the assumption that the sales department has a Google Sheets problem. It reframes the issue to provide current, accurate sales data for management. The sales team could adopt a customer relationship management solution like Salesforce Sales Cloud, designed for sales teams and managers to enter and report the latest sales data. 

Design Beyond User Experience

User experience design includes information architecture (IA) to organize information. Good IA makes searching for and finding information as easy as possible. IA is a key to Amazon’s success, combined with its huge selection of products. 

Application software typically provides data for information architecture, subject to business rules. For example, I designed a Salesforce app for guests to register for sporting event packages, including lodging. A guest could register for multiple packages in the same city. If he or she registered for consecutive packages, the app made sure they stayed in the same hotel room for both packages. This feature flowed into the guest experience, saving them the hassle of checking out and back into the hotel between packages.

An architect designs application software to meet business requirements. A solution can consist of multiple apps, with the architect determining what business function each app performs. For example, a business obtains Salesforce Sales Cloud for common sales functions. It intends to develop online services for its channel partners to increase its channel revenue. An architect analyzes the requirements, designing a complete solution with third-party apps from the Appexchange and custom apps for partner services. The architect ensures that it all works together to fit the requirements.

Design and Architecture 

What’s the difference between design and architecture? It’s a classic question. Grady Booch, a well-respected software architect, answers it this way:

All architecture is design, but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significance is measured by cost of change.

Sometimes it helps to compare software architecture with building architecture. An architect designs a house, creating many plans (blueprints). Changing a floor plan costs significantly less than moving walls in the finished house.

If a business needs to make a high-risk change to a solution, it should have an architect design the change to minimize the risk. Take the example above, where a business acquires Sales Cloud to optimize sales. It wants to provide a special user experience for its channel partners which encourages them to resell the company’s products. The business has an architect oversee the design and development process to create a solution their partners will love.

A user experience design team interviews partners to learn about what they like and dislike about partner portals. The UX design team collaborates with the architect to learn about constraints and exception cases. The architect collaborates with the application development team to build an application that provides and collects data needed for a great partner experience. He or she has the development team build a prototype and tests it with partners.  Once the partners get excited about their new portal experience, the architect has reached the goal of a motivating partner experience.

Design brings creativity into the software development process to ensure that a solution appeals to users while fulfilling business requirements. 

IDEO Design Thinking

What is Design Thinking and Why Is It So Popular? Interaction Design Institute

Previous
Previous

Modeling Overview: Demonstrating and Adapting Design

Next
Next

Elements Academy Highlights