Introduction
Have you ever wondered why IT teams, who excel at building solutions for others, often neglect to create tools to simplify their work? Automation is at the heart of our responsibilities—whether assisting customers or internal users, we constantly strive to make processes more efficient. Yet, IT teams frequently overlook opportunities to streamline their internal workflows. Aggressive business priorities and constant changes make it challenging to pause and consider how to simplify and automate routine tasks.
The Inspiration: AWS CLI as a Model
A few years ago, while working at an investment fintech company in Peru, I faced the challenge of building an IT department with a tight budget. Recognizing the inefficiencies in handling routine tasks, I knew we needed a centralized solution to simplify processes for everyone. One day, while working with the AWS Command-Line Interface (CLI), I realized how powerful and well-documented it was for building infrastructure. This inspired me to replicate a similar tool for our internal IT needs.
Building an Internal CLI for Development and QA Teams
The Initial Problem
During development, teams often needed to verify if a customer existed in the application or delete customer information. Developers and QA team members would query the database directly to retrieve or remove customer data. While this worked initially, these seemingly simple tasks became cumbersome as the application grew in functionality and complexity. Additionally, some developers created scripts for personal use, but these solutions were not shared with the entire team.
The Solution
To address these challenges, we created an internal CLI and treated it as a fully supported application. All teams could add, modify, or remove tools based on their needs, and we included these tasks in our product backlog to ensure transparency for business stakeholders. This allowed stakeholders to see the value of the CLI, such as increased team velocity and fewer errors.
Expanding the Concept: Multiple CLIs for Different Teams
This approach proved to be incredibly powerful. In my most recent fintech role, we expanded the concept further:
CLI for Developers and QA: Focused on tools that assist with development and testing tasks.
CLI for Tech Operations: Included tasks and specific controls for use in production environments.
Planned CLI for Tech Security: A separate tool to effectively manage security operations.
Separating security tools from other operations was a precaution to ensure better security management, and we expect to refine this approach further after implementation.
Benefits of Building an Internal CLI
Shared Knowledge
Any tool added to the CLI reflects the latest and most effective way to perform a task. For instance, deleting a customer might start as a simple action but could evolve into a multi-step process as the system matures. Having a centralized tool ensures everyone follows best practices.
Time Efficiency
When one developer adds a tool to the CLI, it enables others to perform tasks more efficiently, reducing redundant effort across the team. This collective approach saves time and accelerates project timelines.
Reduced Dependency on Individual Knowledge
Adding tools to the CLI helps mitigate the risk of critical knowledge being locked with one person. By centralizing tools, everyone can access the same capabilities, reducing bottlenecks and single points of failure.
Getting Started: How to Build Your Internal CLI
Identify Repetitive Tasks: Start by listing daily repetitive tasks your team handles.
Collaborate with Your Team: Involve your team in building and improving internal tools.
Treat It Like a Product: Manage the CLI with the same care as any customer-facing product, including documentation and regular updates.
Start Small: Begin with simple commands and gradually expand the tool's capabilities.
Conclusion
Building a CLI for internal use is more than just a convenience—it's a powerful way to scale IT productivity and foster collaboration. By automating routine tasks and centralizing tools, you increase productivity and create a culture of continuous improvement and shared knowledge. It's a strategy that has consistently added value to every team I've worked with.
Comments