I recently read a post a friend shared entitled The Impact Github is Having on Your Software Career, Right Now…, and it irritated me a bit. Twitter wasn’t the right medium, so I figured a blog post was warranted.
Here’s the premise: Hiring in the next 2 years will be based on GitHub activity, so unless you want to be a laggard, you better get on board.
Not all projects are on GitHub
At my last gig, we moved from TFS on-premises to a cloud-based source control system. When we evaluated what was available, we ended up choosing Bitbucket. The main reason was that you can have unlimited private repositories at no cost. At that time, GitHub made you pay for private repositories. Given that gig was a medical device company, it was important that those repositories were not public.
My current gig uses TFS, and because our company deals with government contracts, having everything super-controlled is a must. We’re able to successfully make use of many of TFS’ features to maintain, manage, and deliver software that solves nation-scale problems. However, because that work isn’t publicly accessible, I’m somehow behind in my career?
Yes, GitHub definitely wins the popularity contest for code hosting and issue management. Just because it’s the most popular doesn’t mean it’s the only game in town. Different strokes for different folks.
Not all of us can open-source our projects
I believe one of the incentives for making the public repositories free is to foster the culture of open-source. There are many arguments for why our employers don’t want our software publicly shared — legal reasons, contractual obligations, trade secrets, etc.
I’ve seen some pretty good code during my career that will likely never see the public light of day. Does that mean it’s less worthy than what I can find on GitHub?
Not everyone needs to code outside of work
This is a rant for another post, as I’m fairly opinionated about the subject. In short, I think as an industry we need to respect people’s limits to work at work, and have their non-work time filled with activities that make their life meaningful.
If making some open-source tool/framework contribution on your evenings/weekends adds value to your life, awesome. If on the other hand, you spend your evenings volunteering in the community, spending time with your family, or teaching gym classes, why should you be less than those who do career-related things outside work hours?
People are multi-dimensional and aren’t code-generating automata
Commit history, frequency, etc. are just a few of the variables to measure. I would not make a hire/no-hire choice on this alone.
There are so many other factors that play into whether a developer would be a good fit for your company. A developer’s job is not to slam as many keystrokes into the computer per 24-hour period as possible. Do they try to understand their business? their customers? Do they foster good communication and mentor others?
Why do I feel I’m being shamed if I don’t contribute to open-source?
I hope I’m not being misunderstood as being anti-open-source. This very blog is run on WordPress, and I use (and have used) many open-source tools for my jobs.
The advantage of more things being out in the open is that the barriers to entry for people contributing is lower than ever. However, now that everyone can join the game, there’s lots of noise. To me, it almost feels like Stack Overflow, where there are a lot of questions I could answer; however, they’ve already been answered. Most of the low-hanging fruit has already been picked. If the project is a tool/framework I’m using for a job, it’s probably already popular and there are plenty of people higher on the pecking order that are dealing with the meaty issues.
The blog post says: “Smart people will take advantage of this.” So if I don’t contribute to open-source, or don’t want to deal with the masses of others already in the fray for the projects I’m using, I’m somehow not smart?
“It’s what people say on Github about your code that counts.”
I would suspect that popularity follows a power law. In short, there’s a few projects out of the multitudes that will be popular enough to warrant feedback. There’s that phrase people throw around about how most start-ups are failures. I’d hazard the same is true of public repositories on GitHub.
Sure, if most people are ranting against you, that’s probably not good. However, the lack of feedback somehow equates to something not being valuable?
I agree with the notion that if you can find work at your job to do publicly, you should do so. Some of us may not have that luxury, and also may not have the time, energy, or motivation to put in time outside of work to accomplish more work-related things.
When thinking about your career, there are a multitude of questions to ask yourself. I don’t think one of those should be “Am I a good developer if I don’t do work publicly or outside work hours?” We’d love for it to be binary so that we could categorize people into “good developer / bad developer” so it’s easy to make that decision when hiring. Humans are more nuanced than that. However, if you have the opportunity to work openly, I agree that it does provide provenance that travels with you.
(I also take a little umbrage at the author who has a title of “Legendary Recruiter.”)