DevTools Brew #16: GitHub Story: Democratizing Coding and Building a $2B Business, How Google Measures and Manages Tech Debt, 7 Resources to Learn How to Market DevTools on Hacker News...
Dear friends, welcome to DevTools Brew #16!
My name is Morgan Perry, co-founder of Qovery, and this is DevTools Brew newsletter, a weekly roundup of the remarkable stories and insights in the infrastructure and devtools world.
In this edition #16:
📈 GitHub Story: How They Democratized Coding and Built a $2B Business
💻 How Google Measures and Manages Tech Debt
⭐ Star History Weekly Pick
🤖 7 Resources to Learn How to Market DevTools on Hacker News
I hope you will enjoy this sneak peek.
Let's dive in!
📈 GitHub Story: How They Democratized Coding and Built a $2 Billion Business
Few platforms have left as profound an impact on the world of software development as GitHub. What started as a weekend project by three friends in 2008 has since transformed into a global phenomenon, democratizing coding, and revolutionizing collaboration.
Today, let’s delve into the captivating story of GitHub, tracing its history from humble beginnings to its acquisition by tech giant Microsoft and exploring its growth and challenges.
Key Highlights:
GitHub History
Three friends, Tom Preston-Werner, Chris Wanstrath, and PJ Hyett, started GitHub in 2008 as a weekend project.
GitHub aimed to transform how people write and share code, becoming more than just a side hustle.
By building a SaaS service around Git, an open-source project, GitHub provided a solution for collaboration on code.
GitHub's success led to its acquisition by Microsoft in June 2018, despite Microsoft's previous struggles with the open-source community.
Evolution of GitHub
GitHub evolved from a version control system to a social utility for programmers and eventually became the platform where code lives online.
It changed the way software developers think about programming by making coding easier and enabling collaboration.
GitHub identified an urgent need in the market and created a product that became indispensable to developers.
The Need for GitHub
Prior to GitHub, collaborating on code was challenging, with limited options like Subversion.
Git, an open-source version control system created by Linus Torvalds, addressed some collaboration issues but lacked collaborative tools.
GitHub solved the problem of sharing code between programmers, making collaboration effortless and seamless.
GitHub's emergence was driven by the need for a platform to host entire code libraries and facilitate collaborative coding.
GitHub's Early Development
GitHub was initially developed by Chris Wanstrath and Tom Preston-Werner as a tool for their own work.
Wanstrath and Preston-Werner identified major problems in forking code branches and collaborating on programming projects.
They worked together, with Preston-Werner handling design and Wanstrath implementing features, to create GitHub.
GitHub launched in private beta and received positive feedback, leading to its official founding as a company.
GitHub's Business Model
GitHub's freemium model played a crucial role in its success.
Hosting public repositories on GitHub is free, while private repositories and proprietary code require a paid subscription.
GitHub's clear differentiation between free and paid features prevented cannibalization and encouraged adoption in both personal and professional contexts.
The transition from a freemium product to a paid subscription was seamless, leading to widespread adoption and recommendation.
GitHub's Rapid Growth
GitHub attracted its first 100,000 users through word-of-mouth within the software development community.
The product's stickiness and ability to solve significant problems led to rapid growth and a 95% increase in public repositories in five months.
GitHub's impact went beyond solving technical challenges; it also provided a platform for collaboration, showcasing programmers' skills, and enabling recruitment.
Social Aspect and Recruitment on GitHub
GitHub offered a social aspect that allowed programmers to publicly host their code and showcase their projects.
It became a valuable recruitment tool for recruiters to identify potential hires and review applicants' projects.
GitHub's introduction of the Organizations feature in 2010 further catered to corporate users, providing centralized repository management.
Global Expansion, GitHub Goes to Washington (State)
By 2015, GitHub had become more than just a version control platform. It served as a social hub, programmer portfolio site, and professional networking hub. It hosted code from small open-source projects to major technology companies.
In 2015, GitHub faced a significant DDoS attack originating from China, targeting projects related to circumventing state surveillance. Despite the attack, GitHub raised $250M in Series B funding and expanded internationally, opening its first overseas office in Tokyo, Japan.
GitHub's Growth and Challenges
Scale and Dominance: GitHub reached milestones with over 9 million users and hosting more than 21 million repositories by July 2015, solidifying its position as the world's largest code repository.
Competition and Revenue: GitHub faced competition from Bitbucket and GitLab, leading to a slowdown in user growth. However, revenue increased rapidly, driven by enterprise expansion. Over half of the largest US corporations used GitHub.
GitHub Enterprise Success: GitHub Enterprise's revenue contribution grew from 35% in September 2014 to 50% by August 2016, with revenues tripling during that period.
Microsoft's Acquisition of GitHub
In June 2018, Microsoft acquired GitHub for $7.5B. The acquisition caused protests and concerns among users, with some pledging to migrate their repositories to competing platforms.
Despite the acquisition, GitHub's industry-standard status ensured its continued relevance, survival, and growth as a product. Microsoft aimed to gain the ecosystem of developers associated with GitHub.
Possible Future Directions for GitHub under Microsoft
Integration with Visual Studio: GitHub's integration with Microsoft's popular developer tools suite, Visual Studio, was seen as an inevitable move to align with Microsoft's cloud-based services.
Expanded Developer Tools: GitHub could develop additional tools to address coding problems, enhance efficiency, and potentially replace existing QA workflows with AI-driven applications.
Appeal to Professionals Beyond Developers: GitHub could introduce features and functionality targeting professionals beyond software engineers, such as integrated project management tools, aligning with Microsoft's enterprise application focus.
Lessons to Learn from GitHub
Solve Big Problems: GitHub's success stemmed from solving big, broad problems faced by software developers, which attracted a larger potential market.
Continuous Problem Solving: GitHub's growth was driven by its relentless focus on solving painful problems experienced by all developers, leading to the reshaping of software development practices.
Cultivate Company Culture: GitHub recognized the importance of culture early on and deliberately created its own, contributing to its success. Intentional culture-building and alignment with company values are crucial.
—> Read the full story here, published on Nira Blog.
💻 How Google Measures and Manages Tech Debt
Thrilled to bring you a behind-the-scenes look at how Google approaches technical debt. Over the years, Google observed a significant percentage of engineers facing hindrances, sparking a proactive initiative to delve into the nature of technical debt, explore measurement approaches, and devise improved management strategies. Let’s dive into the key highlights.
Key Highlights:
Defining Technical Debt
The researchers at Google aimed to understand technical debt from engineers' perspective, interviewing subject matter experts and incorporating their insights into the quarterly engineering survey.
They identified 10 categories of technical debt, ranked by the level of hindrance to productivity.
1. Migration is needed or in progress: This may be motivated by the need to scale, due to mandates, to reduce dependencies, or to avoid deprecated technology.
2. Documentation on project and application programming interfaces (APIs): Information on how your project works is hard to find, missing or incomplete, or may include documentation on APIs or inherited code.
3. Testing: Poor test quality or coverage, such as missing tests or poor test data, results in fragility, flaky tests, or lots of rollbacks.
4. Code quality: Product architecture or code within a project was not well designed. It may have been rushed or a prototype/demo.
5. Dead and/or abandoned code: Code/features/projects were replaced or superseded but not removed.
6. Code degradation: The code base has degraded or not kept up with changing standards over time. The code may be in maintenance mode, in need of refactoring or updates.
7. Team lacks necessary expertise: This may be due to staffing gaps and turnover or inherited orphaned code/projects.
8. Dependencies: Dependencies are unstable, rapidly changing, or trigger rollbacks.
9. Migration was poorly executed or abandoned: This may have resulted in maintaining two versions.
10. Release process: The rollout and monitoring of production needs to be updated, migrated, or maintained.
Measuring Technical Debt
Google utilizes their quarterly engineering survey to measure the rate and impact of technical debt on engineers.
Slicing data by product areas allows for targeted interventions based on specific toolchains and areas of the company.
Although attempts to develop metrics using engineering log data were not successful, the survey remains an effective tool for measuring technical debt.
Additional questions were added to the survey to help identify the types of technical debt teams struggle with.
Managing Technical Debt
A coalition was formed at Google to systematically address technical debt within teams.
A technical debt management framework was created to establish good practices, inventory technical debt, assess impact, define roles, and adopt measurement strategies and tools.
A technical debt management maturity model and assessment were developed to evaluate and guide the organization's capabilities in managing technical debt.
Classroom instruction, self-guided courses, community forums, and a technical talk series were organized to promote best practices and continual engagement.
Tooling was developed to support identification and management of technical debt, providing indicators for poor test coverage, stale documentation, and deprecated dependencies.
Success and Results
Google's efforts resulted in a significant reduction in technical debt, with a majority of engineers reporting only slight or no hindrance from technical debt.
The organization witnessed the largest trend shift in the five years of running their engineering satisfaction survey, indicating the effectiveness of their approach.
Final Thoughts
The paper provides a valuable process for leaders to follow in order to improve team productivity by managing technical debt effectively.
It offers insights into the categories of technical debt and how to measure them, enabling leaders to assess their teams' struggles and prioritize efforts.
The paper concludes with several tactics that can help organizations reduce technical debt and enhance overall productivity.
—> Check out the full article on Engineering Enablement
⭐ Star History Weekly Pick
The Star History Weekly Pick is:
Memphis: “Next-Generation Event Processing Platform.”
⭐️ 2.7k stars reached
🤖 7 Resources to Learn How to Market DevTools on Hacker News
Shared by Jakub Czakon in the Newslepear blog, here are 7 resources to learn how to market devtools on Hacker News 👇
𝗛𝗼𝘄 𝘄𝗲 𝗵𝗮𝗰𝗸 𝗛𝗮𝗰𝗸𝗲𝗿 𝗡𝗲𝘄𝘀 𝗮𝗻𝗱 𝗰𝗼𝗻𝘀𝗶𝘀𝘁𝗲𝗻𝘁𝗹𝘆 𝗵𝗶𝘁 𝘁𝗵𝗲 𝗳𝗿𝗼𝗻𝘁 𝗽𝗮𝗴𝗲
• Hacker News Thread about Simple Analytics strategy shared by Iron Brands𝗧𝗼𝗽 𝗼𝗳 𝗛𝗮𝗰𝗸𝗲𝗿 𝗡𝗲𝘄𝘀 𝘄𝗶𝘁𝗵 Anh-Tho Chuong 𝗳𝗿𝗼𝗺 Lago
• Scaling DevTools podcast from Jack Bridger𝗕𝗶𝗹𝗹𝗶𝗻𝗴 𝘀𝘆𝘀𝘁𝗲𝗺𝘀 𝗮𝗿𝗲 𝗮 𝗻𝗶𝗴𝗵𝘁𝗺𝗮𝗿𝗲 𝗳𝗼𝗿 𝗲𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝘀
• Hacker News Thread and article from Lago𝗦𝗵𝗼𝘄 𝗮𝗻𝗱 𝗧𝗲𝗹𝗹 (Fly.io 𝗛𝗮𝗰𝗸𝗲𝗿 𝗡𝗲𝘄𝘀 𝗹𝗮𝘂𝗻𝗰𝗵)
• DevFirst newsletter by Francesca Krihely
It’s already over! If you have any comments or feedback, Let’s talk about this together on LinkedIn or Twitter.
Thanks for reading,
Morgan
Please share DevTools Brew with your friends, and subscribe