Application Advisor CLI

While conducting research for Application Advisor, it became clear that some customers preferred not to use a graphical user interface (GUI) but recognized the potential of integrating our technology into their continuous integration/continuous deployment (CI/CD) pipelines. This insight led us to develop an intuitive command-line interface (CLI) that enables users to seamlessly automate the management of their Spring Applications. By leveraging this CLI, users can now easily integrate Application Advisor's capabilities into their development workflows, enhancing efficiency and ensuring the seamless management of application dependencies without the need for a GUI. This development not only meets the diverse needs of our user base but also significantly elevates the adaptability and usability of our technology in various development environments.
User Research | DevEx | UX

Project Overview

My Role
Lead Designer & Researcher - User Research, UX Design, Prototyping
Team
Raquel Pao PM, Alberto Calleja SWE, Tiago Fernandez SWE
Timeline
2 Months
Overview
Upon discovering that some customers preferred not to use a graphical interface but still wanted to integrate our technology into their CI/CD pipelines, we developed an intuitive command-line interface (CLI) for Application Advisor. This CLI allows for the seamless automation and management of Spring Applications, aligning with user preferences for non-GUI tools. By integrating this CLI into their workflows, users can now enhance efficiency and manage application dependencies more effectively. This innovation has not only addressed user needs but also significantly improved the adaptability and usability of our technology across various development environments.

Process

Workshopping
In creating this comprehensive flowchart for the Application Analyzer CLI, our team employed user-centered design methodologies to ensure intuitive navigation and ease of use. We began with thorough task analysis to understand the user's goals and constructed a logical command hierarchy based on frequency of use and functionality importance. Iterative testing with actual users guided us in refining the command structure, ensuring clear paths and minimal complexity. The result is a meticulously crafted documentation that reflects best UX practices, facilitating a smooth user experience by allowing users to quickly grasp and utilize the full potential of the CLI.
Prototyping & Research
We worked on streamlining our CLI tool's integration with CI/CD pipelines, clearly mapping out file stages, commands, and notes to make automation simpler. We refined the process by designing mockups of the CLI in action, addressing practical aspects like the disabling of colors and emojis for automation compatibility. Our focus was also on simplifying the command structure, with a goal to combine build and publish steps, based on user interactions and preferences for a cleaner and more efficient workflow.
Polishing & Handoff
Before handing off the project, we validated our work by testing a functional prototype with our users, incorporating their direct feedback to refine the tool. We also embedded comprehensive help commands within the CLI, providing users with on-the-spot guidance and documentation. This ensured that when we delivered the final product, it was not only user-approved but also self-explanatory and ready for immediate use.

Results

Enhanced Workflow Efficiency.
Our collaboration led to the development of a prototype that significantly streamlined our users’ workflows. Through multiple iterations and hands-on testing sessions, we honed a CLI tool that users reported to be highly efficient, reducing their operational time by an impressive margin. The deployment of our solution marked a decrease in setup and execution time for CI/CD pipelines, confirming our commitment to delivering time-saving solutions.
Increased Adaptability
The iterative feedback loop and extensive SME workshops contributed to a flexible CLI tool adaptable to various environments. Post-launch analytics demonstrated a notable rise in the tool's adoption across different platforms and projects, indicating its broad applicability. Users especially valued the customized help commands, which contributed to a 40% reduction in onboarding time for new users.

Lessons Learned

Simplicity Matters
Through the development process, we learned that user experience in CLI design hinges on the simplicity and intuitiveness of commands. Complex command structures often led to confusion, undermining efficiency. By streamlining commands and incorporating user-centric help documentation, we were able to enhance usability. This taught us that even in a non-GUI environment, the principles of clear design and minimalism are just as critical.
The Power of CLI in Automation
The project underscored the CLI's robustness over GUI in automation scenarios. We observed that our users valued the CLI's lightweight nature, which facilitated smoother integration with automation tools and faster execution times. This experience reinforced the importance of offering a CLI option, as it can be more conducive to professional and power users' needs, particularly when dealing with complex development environments and continuous integration pipelines.

The Design