The Design of SIMPK BPKH App’s Interface

Astrida Nayla
8 min readJun 7, 2021
The SIMPK BPKH App for my software development project this semester

It’s 2021 and visual design has evolved as a tool to aid software development. With visual design, designers are able to visualize how software should look and function to both clients and developers. However, in the context of software development, we often refer to visual design as a high fidelity prototype instead. High fidelity prototype is a user interface design that allows realistic user interaction. Designing a high-fidelity prototype has since become an important phase on various software development frameworks. In this article, I shall discuss the design of Sistem Informasi Manajemen Program Kemaslahatan (SIMPK) BPKH app in my software engineering project.

Stage 1: Wireframe

Before we get into high fidelity prototypes, it’s best if we start with wireframes or low fidelity design first. According to Interaction Design Foundation,

Wireframing is a process where designers draw overviews of interactive products to establish the structure and flow of possible design solutions.

As you can see, wireframes can help us design a better user interface. The problem with jumping straight to high-fidelity prototypes is that we are easily swayed to create a design that looks good instead of creating a design that is effective. While there’s nothing wrong with paying attention to aesthetics, it is more important to ensure that our design can help users to achieve their goals effectively.

With that in mind, my team decided to begin our design process by creating a wireframe. We used Whimsical as our wireframing tool, as it has built-in properties that ease wireframing process compared to other tools.

An excerpt from SIMPK BPKH app’s wireframe

We work on the design by regularly checking on the features and information architecture that are defined earlier. With wireframe, my team is able to focus on defining the features and flow for the app better. It also eases my team to review and revise our design continuously. To end our wireframing process, we present the final wireframe to the clients. Once they’re good with it, we then proceed to design the high-fidelity prototype.

Stage 2: High Fidelity Prototype

In this stage, we began to shift our focus from features and flows to visuals and interactions. High fidelity prototype is a user interface design that allows user interaction. It looks and acts as if it is the actual system (NN Group, 2016).

The motivation behind high fidelity prototypes is to create an effective user interface design while saving time and effort. If we jump straight to coding implementation, it may be more difficult and time-consuming to revise the design should the client demand it. Revising a high-fidelity prototype is much easier and faster than revising your whole program. It also allows us to focus on actually creating an effective design instead of a design that is easy to code.

My team did not jump straight into designing a high-fidelity prototype right after the wireframe. Instead, we create a design system first to ensure consistency among our designs. More about that design system can be found HERE. Once the design system was complete, we finally began to design the high-fidelity prototype. My team used Figma as the prototyping tool, as it is free, easy to use, and allows collaborative work.

The high-fidelity design of the SIMPK BPKH app along with its design alternative

To ensure that we deliver all the possible design solutions to clients, we create some design alternatives on our prototype. Design alternatives are also used to validate some designs that we are still uncertain about. With all the designs complete, we finalize the process by evaluating the design with Nielsen’s 10 Usability Heuristic.

Evaluate UI Design with Nielsen’s 10 Usability Heuristic

Nielsen’s 10 Usability Heuristic (Nielsen, 1994) is the 10 general principles for interaction design, consisting of a broad rule of thumb. It has been largely used to evaluate user interface design to ensure that it meets the desired usability standards. With Nielsen’s 10 Usability Heuristic, my team is able to reduce possible revisions from clients.

#1 Visibility of System Status

The design should always keep users informed about what is going on, through appropriate feedback within a reasonable amount of time.

Implementation of rule #1

Our design will inform the user when they are offline through a feedback banner. Therefore, users should be aware that the report they create onward will be saved temporarily in the local storage instead of the database.

#2 Match Between System and the Real World

The design should speak the users’ language. Use words, phrases, and concepts familiar to the user, rather than internal jargon. Follow real-world conventions, making information appear in a natural and logical order.

Implementation of rule #2 on bottom navigation

Our design used terms and icons that are familiar to the user, as seen on the bottom navigation menu. The information architecture for our design is also aligned with the real-world BPKH convention. For instance, a partner can be assigned to many projects and a project can have multiple monitoring reports.

#3 User Control and Freedom

Users often perform actions by mistake. They need a clearly marked “emergency exit” to leave the unwanted action without having to go through an extended process.

Implementation of rule #3 on cancel button

Our design allows users to undo mistakes through the delete button on booking and report. The user also has control to cancel or backtrack their action with the cancel and back button on every form page in the design.

#4 Consistency and Standards

Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform and industry conventions.

Our design implements a consistent design on various components, such as buttons and cards. Each card has a distinct design based on its function.

#5 Error Prevention

Good error messages are important, but the best designs carefully prevent problems from occurring in the first place. Either eliminate error-prone conditions, or check for them and present users with a confirmation option before they commit to the action.

Implementation of rule #5 when deleting attachment

Our design disables the next or save button if the user has not filled in the mandatory information on every form. Confirmation pop-ups are also present in our design every time a user is about to delete an item.

#6 Recognize Rather Than Recall

Minimize the user’s memory load by making elements, actions, and options visible. The user should not have to remember information from one part of the interface to another. Information required to use the design (e.g. field labels or menu items) should be visible or easily retrievable when needed.

Implementation of rule #6 on report card

Our design provides information on the owner and last edited date for each attachment and report. Therefore, the user can recall which report is made by them and when it is last edited.

#7 Flexibility and Efficiency of Use

Shortcuts — hidden from novice users — may speed up the interaction for the expert user such that the design can cater to both inexperienced and experienced users. Allow users to tailor frequent actions.

Implementation of rule #7

When accessing the booking page, users can have a flexible method of finding a project. The top 3 recent bookings are present on the home page as a shortcut, should the user only wish to see bookings that are relevant in a certain time period. In the bookings tab on the project page, filters are present to help the user filter information more efficiently.

#8 Aesthetic and Minimalist Design

Interfaces should not contain information which is irrelevant or rarely needed. Every extra unit of information in an interface competes with the relevant units of information and diminishes their relative visibility.

Implementation of rule #8

Our design does not include excessive assets that may be distracting and unnecessary to the user. The design of our app’s interface follows the recent trend for UI design based on the Google Material Design guide. It’s also designed to be minimalistic and simple, as it is a formal app that will be used by government officials.

#9 Help Users Recognize, Diagnose, and Recover from Error

Error messages should be expressed in plain language (no error codes), precisely indicate the problem, and constructively suggest a solution.

Implementation of rule #9 on input validator

Our design provides an input form validator that informs the user should they enter the wrong input and how to solve them.

#10 Help and Documentation

It’s best if the system doesn’t need any additional explanation. However, it may be necessary to provide documentation to help users understand how to complete their tasks.

Implementation of rule #10

Our design provides brief information on what each subfeature does in a project dashboard. Form fields are also provided with labels and placeholders to ensure that users are aware of what information they should fill in.

Conclusion

User interface design, in particular, has become an important part of the software development process in the digital era. With user interface design, our software can achieve more things in terms of usability and user experience. However, it is important to know that a user interface is designed in a series of steps, from wireframing to a high-fidelity prototype. Our design should also comply with Nielsen’s 10 Usability Heuristic to ensure that it has met the desired usability standard.

Truth is, I’ve learned about user interface design way before this semester starts. I have understood well the importance of user interface design in a software development process. The implementation of user interface design in my software development project course has strengthened that understanding. Hopefully, this article can introduce you to the process of designing a good user interface. Thank you and I’ll see you on the next one!

--

--

Astrida Nayla

ナイラ / aspiring ux engineer, passionate in ux design & frontend dev