Design Process


“Simplicity is the ultimate sophistication.” — Leonardo da Vinci

Discovery

I try to empathize with the users and define the problem at this stage. This is a key step that helps me to deep dive and understand the underlying business requirements. Some of the tools I use at this stage are as follows:

Brainstorming
Whiteboard/Sticky notes used to generate as many ideas with stakeholders
Personas
Defines demographics, abilities, skills, goals and motivations
Mind Map
High level mapping of the system
Sample user Persona
Figure: Sample user persona

User Experience / User Interface Design

Prototypes are generated to convert ideas into concrete examples. Depending on the project timeline, various levels of prototypes are made. These prototypes goes through couple of iterations with the stakeholders to ensure all the requirements are captured. Some of the key processes and deliverables are:

Co-design
Mostly done on paper along with the product owner to understand the basic idea on what I need to design and to map which direction I need to proceed.
Wireframes
Low fidelity prototypes mostly done on whiteboard or paper
Sitemaps
Defines the hierarchy and the navigation structure
User/Process flow diagrams
Simple chart outlining the steps that a user takes
High fidelity prototypes
Clickable Prototypes are made in Adobe XD/Figma to confirm the final look and feel
Design Testing
Usability Testing are performed to capture feedbacks and changes are iteratively captured
Sample site map
Figure: Sample site map

Development

Before I start actual coding, I prefer to get all the user/job stories defined into small tasks to estimate the time and effort required to achieve the prototyped solution. Once the stories and their priorities are in place, the next step I take is to discuss the API spec and JSON structure with the respective backend developers. Agile methodology is opted in most of the projects I work with. This step results in the following out comes:

User/Job stories
Stories are captured on work management tools like Jira
Open API Spec
Payload and API definitions are defined using Swagger
Working Application
User Interface frontend coding as per the prototypes
Unit Tests
Unit tests are written to ensure the result when expected input is provided
Screenshot of Jira board
Figure: Screenshot of Jira board

Maintenance

Support and maintenance is an on going process to every project. There can be many instances where the stakeholders change their mind once they actually start using the service, this leads to further customizations and enhancements.

Bug Fixes
Bugs are resolved as quickly as possible.
Enhancements
Features are added selectively based on scope and priority to maximize the product's potential. Each feature undergoes similar design process and thorough testing before release to ensure quality.
Screenshot of Opportunities page from Llama application
Figure: Screenshot of Opportunities page from Llama application