DEPLOYD
OVERVIEW
Companies desire the fastest possible deployment, but slacking on code quality is not an option if they want to gain a competitive edge.
Deployd is an Enterprise SaaS tool that uses complex algorithms to provide in-depth insights into the code changes and take concrete corrective actions, thereby helping the teams accelerate code delivery.
Role: UX Designer - Research, Interaction and Visual design | Branding
Tools: Sketch, Invision, Whimsical, Mural, JIRA
Team: Anita Grandhi, Co-Founders (Rahul & Nitin), UI Developer (Aadesh & Bhavesh), Backend Developer (Nikhil)
PROBLEM
In software teams, there is no automated way for developers and reviewers to be aware of the overall impact (direct and indirect) of their code changes, which could result in deploying partially tested code possibly leading to breaking the system or degrading the performance. The problem sometimes emerges long after the deployment making it harder to track the root cause. This can prevent the optimal performance of the system and necessitates additional effort to trace and fix the problem.
SOLUTION
Deployd provides tools for analyzing the changes made throughout the codebase by teams located globally, determining its impact and provide concise reports that helps for impeccable testing. This generates an opportunity for the team to dramatically reduce issues before the code is deployed into production and help make the engineering teams more successful.
RESEARCH & DISCOVERY
Getting Started
The initial goal of the company was to roll out the Analyze module for the pilot testing. I was briefed on how the tool operates and shown what it spits out. My job was to determine which data will help the users and how to help the users access it in the most natural and efficient way so that it aids their workflow.
Heuristic evaluation of existing prototype
I was given some initial designs to evaluate and determine if any of the designs can be re-used. So I conducted an audit using Neilson’s 10 Usability principles and concluded, there were many issues which need improvement. I presented my findings to the founders and we agreed the best approach is to start all over.
Learning from established enterprise product designs
Enterprise design focus on simplified workflows, decisions are more rational and aesthetics is not a primary principle. To achieve this, it was critical to decode the domain complexity. There was no direct competitor for this product, so I evaluated other enterprise designs to get a better idea of the design patterns used to help in my designs decisions.
Good design patterns identified
A vertical sidebar bar, with inline tabs or an additional horizontal nav bar to help split the functionalities in a clean logical manner
Providing a first time user experience (FTU) that provides all relevant information to get started quickly
Autofill data in forms based on context
Good Table design that takes into consideration factors like deciding user control over data, row actions, displaying large text fields in columns, pagination, easy scan-ability of the large amounts of data
Related data proximity and 1-click actions
Flexible configurations for novice and expert users
Personifying the User
I identified the personas I will need to create this product for to better understand their needs from this product.
DEFINE
Product Features
As it was tricky to let the users dictate the features without seeing any prototype , I utilized my own background as a developer to understand the journey I would take to come up with possible features. I took it to the stakeholders to discuss this and based on their feedback, personal experience and technical feasibility, we identified our 1st feature set. I also put together a user story map which we later converted into a Roadmap and created Stories and Tasks on JIRA.
User Flow Map
Prior to making the User Flows, I also put a detailed UI requirements document to help with my flow diagrams.
IDEATE & PROTOTYPE
Wireframing
As we were a complete remote team, rather than sharing my hand drawn sketches that I always make for any project, I made the low fidelity wireframes on Whimsical for easy collaboration and exchanging comments and other ideas about the initial designs.
Branding
At this point there was no branding established for this product except for the Logo, and I was given the freedom to establish one. I researched other enterprise websites and products to get a better understanding of the various UI elements and content to decide the direction for this product. I mashed up my findings with the founders vision to represent and put together a Brand Guidelines as a starting document.
Style Guide
A design system acts a single source of truth and provides a consistent content structure between designers and developers. However, to begin with I put a very detailed Style Guide to ensure alignment and maintain the integrity of the product. I shared this with the developer allowing him to find all pertinent information at 1 place. As we added more features and iterated on the product based on the feedback from users, adapted a different development framework which was much more efficient and easy to implement, we moved away from these design elements and redesigned the initial set of screens.
TEST & ITERATE
Design without validation is art
All the stakeholders including myself were experienced with the domain in which the product will be used. So it was critical & challenging not to let our biases get in the way. Also, our primary users will abandon this product if it in any way negatively interferes with their workflow productivity. So I had to ensure I conducted the usability tests with this specialized group of users, identify and track the right problems to solve. I adapted the divergent-convergent thinking of the double-diamond method as below.
For the 1st round, I conducted remote usability tests with 6 participants and had them perform the tests while I recorded their successes, frustrations and status of each task. A total of 53.2% of major issues were uncovered in these tests.
Which issues should we fix?
I presented the findings to the team and showed the impact-effort matrix with the solutions I brainstormed. Then as a team, we brainstormed further and made adjustments to finalize the solutions that have the highest ROI before I started re-iterating my designs.
FINAL DESIGNS
The initial designs were made not following any particular framework. But soon, we adapted design elements from the ANT framework. There were multiple iterations of the designs as I conducted rounds of usability tests, incorporated actual user feedback and added new features. I worked with the developer while the designs were developed, conducted UI review and created bugs using JIRA to track.
Code repository setup - Before
Code repository setup - After
Impact Analysis job trigger - Before
Impact Analysis job trigger - After
Impact Analysis job execution - Before
Impact Analysis job execution - After
Results - Before
Results - After
CHALLENGES & TAKEAWAYS
Working for a startup creating the initial product designs presents a completely different set of challenges and at the same time, it is very exciting to work and create a product from the scratch. Some challenges and takeaways -
User familiarity: It is of utmost importance to understand the users familiarity, habits and expectations of similar products to help drive the designs.
Developer Collaboration: Even though our roles were clearly defined, our direct discussions were on need basis and a lot of communication was through texts and mails in the beginning. This posed problems as I did not have insights into the developer’s progress and was dependent on him reaching out to me. To address this problem, I created a detailed functional req document and also a developer copy that greatly helped align the code with the designs. And soon, the team started having daily stand-ups to discuss the progress, issues and work for next releases. Having a proper communication channel is critical to the success of any product.
Initial designs & Evolving requirements: Having an open slate to design everything for the product was exhilarating and at the same time challenging as there were no boundaries to adhere to in the start. Heavy research was involved to establish the design patterns and visual design for this product, while taking into account the domain and users for a product of this nature. Designing for a product ground-up requires that the designs be flexible and scalable to a large extent, while designing for an established product requires skill to work within lot more constraints.