One simple method to improve the design of your next software app

The late Stephen Covey, in his seminal book “7 habits of Highly effective people“, wrote that one of the 7 habits is: “Seek first to understand, then be understood”.

An effective way to “seek first to understand” and  communicate with someone is to put yourself mentally “in their shoes”. This is the essence of the habit Stephen Covey introduced in his book.

In High School debate, participants prepare to argue both sides of a presented issue. This means a debater has to thoroughly research, understand and prepare cogent arguments for both the negative and affirmative sides of the issue.  The debater has to put themselves in the shoes of both a supporter and detractor of the issue. The best debaters do this well.

This same metal exercise can also improve your next software application.

Key Mental Exercise

By changing mental viewpoints and analyzing the software project from the new point of view, you can become aware of new issues to solve or new opportunities and features. You can do this regardless of your role on the team.

This exercise helps prepare you for the client meeting, that big design review or the next sprint planning session. It can help you work more closely with the product owner and improve your design and plan.

If you are one of the general roles of a project team, forcing yourself to mentally assume the viewpoint of the other roles in the software project will improve communication, understanding, planning, and results.

Forcing yourself to assume the viewpoint of other roles in a software project improves results. Click To Tweet

7 viewpoints of a software project team

Here are seven viewpoints you can use in your mental exercise:

Designer

The designer creates the look and feel, screen flow and color scheme and page layouts.

Designers are concerned with creating a compelling user experience in a style that complements the genre and use of the application. Style, simplicity, cognitive load, and utility are  key concerns the designer has.

If you are not the designer, you can consider methods to express style, or improve the usability of the app.  Realize there are many opinions that influence the aspects and implementations of design. Many times there is no one right answer. The designer has to arbitrate these, sometimes conflicting, opinions.

Developer (coder)

The developer is the person (or team) actually doing the coding of the application.

The coder has to worry about the execution environment, standards, tools, compatibility across consumption devices, security, language implementation, performance and 3rd party services, code libraries and API’s that will be used.

To put yourself in the shoes of the developer, consider the job of a translator, translating one language to another. There is a lot of work  and knowledge that goes into translating a language. Nuances such as tense, idiom, gender and the like add complexity as well. That’s essentially what a developer does, translating the requirements and desires of the team into software, but also with a lot of other constraints.  Many of the constraints coming from the environment and devices that have to run the app.

Project Manager

The project manager is responsible for schedule and resources.

Their big concerns are resource utilization, schedule, milestones, reporting, test results and barriers to completing the tasks. And, if the project manager doesn’t have direct reporting control of the resources, their job is much more difficult.

To envision their world, think about being the director of an elementary school orchestra. They attempt to get all the band members set up with their instruments and music, on key, and on tempo so that what the orchestra plays will actually resemble music.

Owner

This is the person who is funding the development. The business owner or VP who is sticking their neck out (and budget) to get the project done.

To think from the owner’s frame of reference, consider making a large purchase with your own money. Writing a big check out of your own account always gives you pause. It motivates you to thoroughly investigate the value of the purchase, the terms, guarantees and warranties and lifetime costs and service. You don’t write big checks out of your own account without sufficient reassurance that the purchase is a good one. Thinking about the owners situation in this manner helps you better evaluate the value proposition, return, and on-going or hidden costs. All of which are key concerns for the owner.

Customer

The people who actually pull out their credit card and pay for and use the app you are creating.

They will have lots of needs and questions. Why should they buy? How will they realize value? What will their pain points be? How will they consume the app?

All of these and may more questions will have to be answered in order to produce a product that is valuable and has utility for the customer.

Competitor

Consider those companies with products already in or directly adjunct and selling to the market space you will be in.

What are the pain points of the customers of your competitors? What is the competitors unique value proposition versus that of the app you are building? Why would customers potentially buy from your competitor and not you?

Answering these questions will provide greater clarity about the market position, value proposition and relationship to existing competitor offerings.

Maintainer (another developer)

The maintainer is the poor souls who come after the initial release to clean up after the parade and maintain the app and system that was created.

What documentation will they need? How can you structure the app code to improve maintainability?

The maintainer will be the person fixing bugs, adding features and making other needed additions and improvements. Making their life easier through well architected and written code, template based screen layouts, comments and a software spec will speed maintenance activities lowering long-term cost of ownership.

Summary

If you spend a little time, thinking about your project from the viewpoints of the various roles, you will be a better team member, facilitate better communication among the team and make the project go smoother and improve the results.

Work on assuming the viewpoint of others to more deeply think about your application, improve your results and reap the rewards. And, who knows, you might make it a habit.

Leave a Reply

Your email address will not be published. Required fields are marked *