At GitHub Universe in November 2019, GitHub CEO Nat Friedman outlined a bold goal: 100 million developers on GitHub by the end of 2025. With a little more than 40 million registered users at the time, this goal seemed incredibly ambitious. Perhaps even unachievable.
Just six months later at GitHub Satellite, however, Nat announced that GitHub had registered its 50 millionth developer. Now, with continued love and support from the global open-source community and the backing of one of the world’s largest companies, GitHub seems well-positioned to not only meet but exceed that goal by 2025.
A future with more than 100 million developers worldwide using GitHub is incredibly exciting, and as I think about this future, several questions come to mind.
How will the definition of a “developer” change as barriers to entry diminish and educational opportunities abound? How will developers collaborate and work together on code? How will developer tools evolve to aid developers? And perhaps most importantly, how will the way software projects are managed need to change?
Today, the way we manage software projects is complex and confusing. Picking from myriad tools and frameworks is daunting enough, let alone implementing them across a team and ensuring they’re properly used. As a result, many software teams spend more time on managing and coordinating their projects than actually building software.
This cannot be the case as we move towards a future where software is more mission-critical to businesses than ever before. Far too much is at stake.
The Evolving Definition of a ‘Developer’
Not too long ago the widely accepted definition of a developer was someone who had a formal computer science (CS) degree and whose role was based on authoring logic and writing complex code by hand. Over the past several years, however, a couple of trends have emerged that have forced us to reconsider this traditional definition.
For starters, fewer developers are graduating from traditional CS programs, instead of learning to code through in-person or online boot camps and schools. Further, a growing cohort of developers is teaching themselves how to code through free online materials and tutorials, especially in emerging software markets like Africa and Asia.
Another trend is the growth of “Low Code” development platforms. The visual approach of Low Code removes the need for individuals to handwrite code, allowing those with little background in software development to build and deploy applications without the support of an ops team.
So how will we manage software projects as the number of people working on them swells, and those people all come from such diverse educational and experience backgrounds?
Automation: The Future of Project Management
Today, software project management is a complicated space that isn’t exactly friendly to newcomers. Teams don’t always know what methodology is the most appropriate for their project: Scrum, Kanban, eXtreme Programming, the list goes on. Even the most experienced teams can have a difficult time reaching a consensus on frameworks.
Furthermore, project management tools today are either built for the highly experienced audience — the traditional CS-degree carrying developer — or they aren’t built for developers at all. The result? Software teams are often forced to compromise their process in order to fit their way of working to tools that aren’t built for them.
As I look towards the future where 100 million developers are using GitHub — many of them brand new to development — it’s clear that a different way of working will be necessary. Project management solutions that automate away complex processes will play a key role in helping these teams — new, and less experienced — organize, become more efficient, and deliver faster.
What are the areas where automation can create the most impact?
One of the most hotly debated areas — and one of the most complex — is estimation. At its core, estimating allows teams to objectively look at a project during the planning phase to determine the level of effort associated with each task. Unfortunately, there are so many variables and unknowns that making data-driven, reasonably accurate estimates can feel impossible.
Automating estimation and making it easier for developers, can remove barriers to entry as they embark on new projects. In fact, most project management solutions already have a wealth of historical Issue data that can be used to provide a better starting point for discussion — supplementing the team’s opinion to help create a more accurate approach to estimating.
A topic that is not debated at all — because everyone agrees it’s a pain — is workflow management. Throughout the lifecycle of a development project, there are typically several hand-offs that occur between different parts of the team, such as in moving from design to development or development to QA.
Each hand-off represents an opportunity for delays if teams don’t realize the next phase of work is ready to begin. Automating workflow management is a boon for project managers and stakeholders, who no longer need to ask developers to provide updates or hold meetings with multiple teams to understand and verify the state of a project.
Sprint planning also requires a lot of manual work: set-up, take-down, carrying over of unfinished work. Automating sprint planning can remove this manual overhead for project managers. The creation of upcoming sprints can be automated on a recurring schedule set by the team and unfinished work can automatically be carried over to the next sprint, eliminating accidentally forgotten issues, improving efficiency and flow of the entire team.
The future of software project management is open, intuitive, and automated. It removes manual overhead and bridges the gap in communication between developers, project managers and executives. Every company is becoming a software company and modern project management tools will need to place the developer experience front and center.
So as GitHub reaches for that 100 millionth developer, all who came before and all who come after will search for a project management solution to help them move faster and become more agile without taking them out of their preferred platform. Automation will be the key in enabling these up-and-coming developers focus on high-value work that truly matters — building software.
Feature image via Pixabay.