Tearing Down Code Siloes

Enterprise Code Discovery for Fun and Profit

In the fast-paced world of software engineering, the emphasis is not solely on writing code but on the art of discovering, reading, and understanding existing codebases. This practice isn't merely a task; it's a skill that defines the trajectory of a developer's career. In fact, I’ve often been told by job candidates in interviews that they strategically plan their professional trajectories around opportunities to work side-by-side with leading engineers at top companies, witnessing firsthand how they construct cutting-edge systems.

The Power of Code Discovery in Problem Solving

Software engineers read far more code than they write. True software engineering power lies in searching for and finding relevant code. Solving problems becomes faster and more effective when developers possess the ability to navigate through existing codebases, discovering solutions crafted by their peers. When this goldmine of solutions is readily available, it accelerates the development process and ensures that solutions to similar problems are within easy reach. Indeed, anyone who’s been there will tell you that (Sushi Day aside) one of the best parts of working at Google was being able to efficiently navigate the entire monorepo to find that somebody far smarter than you has already solved your problem.

Code Siloes

Unlike Google, many large enterprises inadvertently construct impenetrable code siloes at the departmental or even team level, compelling their developers to reinvent the wheel and repeat the mistakes of their peers. These siloes not only hinder the natural skills progression of individual engineers but also impede the efficiency of the entire enterprise development ecosystem.

Beyond Simplified Examples

Almost certainly the most widely used code search tool in the world is Google, as in Google Search, maybe with a “site:github.com” or “site:stackoverflow.com” attached. This isn't nothing --in fact, it's invaluable in day-to-day work. But it's not a panacea for the problems introduced by enterprise code siloes. For while open-source repositories and online platforms like GitHub and Stack Overflow provide a wealth of code samples, they often fall short when bridging the gap between the nuances of enterprise code and the styles prevalent in open-source projects. The needs of open source, in terms of coding standards and approaches, can differ significantly from the requirements of large-scale enterprise software development.

Enter the Source Code Management System

A potent solution emerges in fully leveraging the capabilities of source code management systems, such as enterprise GitHub, BitBucket, or GitLab. These platforms, when embraced with a commitment to transparency, allow developers to navigate the enterprise code landscape. When coupled with search and (increasingly) AI, features like pull requests, code reviews, and issue tracking become not just tools for managing development processes but efficient conduits for knowledge transfer.

Supercharging Code Accessibility

Going a step further, enterprises can enhance their codebase accessibility by incorporating advanced code discovery and understanding tools like SourceGraph and OpenGrok. These innovative solutions go far beyond limitations of traditional code search, providing developers with a holistic view of the entire codebase, its dependencies, and the intricate relationships between different components from the programming language layer on up. This level of visibility empowers engineers to comprehend the big picture, accelerating their learning curves and fostering an environment where collaboration and innovation thrive.

AI Tools: The Future of Enterprise Code Discovery

Zooming into the increasingly-near future, it’s important to recognize the transformative role that will be played by AI tools like LLMs and ChatGPT. While an LLM trained on open source undoubtedly offers a huge boost to software engineering productivity, the efficacy of these tools in the enterprise reaches the sublime when models are precisely tailored to real code examples from your organization. Customizing LLMs with insights gleaned from your specific codebase not only streamlines coding tasks but also unlocks a richer and more nuanced repository of collective knowledge within the enterprise.

Cultivating a Culture of Learning and Collaboration

Tearing down code siloes is about more than just creating an efficient development process; it extends its impact to cultivate a culture of continuous learning and collaboration. Software engineers find inspiration and confidence from reading code, and the more they can explore high-quality, pertinent code, the faster they can arrive at superior solutions. By embracing the features of modern source code management systems, discovery tools, and AI trained on enterprise-specific examples, organizations can pave the way for a future where the exchange of knowledge is seamless and innovation knows no bounds.

Previous
Previous

Build vs. Buy — Costs and Quality

Next
Next

The Supposed Weakness of ChatGPT is a Strength for Programmers