Something tells me that the "facebook for programmers" angle is essential to selling the dream here. The so-called "network effect" of open-source projects has some inherent stickiness, but again, there isn't that much that ties a project to GitHub.
Something tells me that the "facebook for programmers" angle is essential to selling the dream here. The so-called "network effect" of open-source projects has some inherent stickiness, but again, there isn't that much that ties a project to GitHub.
Bitbucket is actually superior in many ways because of its tight integration with Atlassian - the real Microsoft Word of the Developer community.
Sourceforge had this kind of play at one point and look at it now.
Maybe they're going to start displaying ads for jobs for developers. Not sure that's worth 2B though...
Also, what does Github give you over Gitlab?
HipChat is playing catchup constantly with Slack (except the @here feature; Slack was behind the ball on that one). Slack's channel integrations are incredibly smooth. Message delivery is so much more reliable on Slack mobile than HipChat's app ever was (perhaps this was iOS specific?). Message management (stars, pinning, history links I can take from Slack and throw into Github issues, commits, or other SaaS team tools). The management of multiple teams in one interface on both mobile and mac desktop app (Slack handles this extremely well).
Github issues are enough for me to stick with GH. It Just Works. So you don't have to provide me with Github, Slack, etc as an employer. But it'll effect my decision to work there. I've interviewed people at my previous job, and they have flat out decided not to join when they were told we weren't using Github and had no plans to move to it.
When you're spending 8 hours (or more!) a day in tools, you expect them to be the best/easiest/most productive to use.
Slack: 1. I agree on the part about multiple teams, but since I only use it for work, it hasn't really been much of an issue.
2. I never really had any issues w message delivery, I'm on Android though, and it seems like you're on iOS.
3. I also don't remember having any issues w integrations, do you have a specific example of something that it wasn't able to do?
4. What exactly do you mean by "stars, pinning, history links I can take from Slack and throw into Github issues, commits, or other SaaS team tools"? Do you mean a bot or something that performed those actions on certain keystrokes?
Github: 1. I don't really care for Github issues to be honest. We don't use them at work, and for a lot of the open source repos, it's just a bunch of +1s with the occasional constructive comment sprinkled in somewhere.
2. Also, the comments on the PR don't have a way to mark someone's suggestion as accepted, and the comments aren't threaded either.
3. My biggest concern is that anyone can accidentally force push, though I don't know if Gitlab has a way of preventing that either.
My point is that for all the talk about meritocracy in the field of technology, when it comes to success and adoption, marketing and visual aesthetics usually outweigh the actual quality of the product. (also see: mongodb, beats etc)
I have a similar probably-not-well-enough-informed opinion of Github issues. Does anyone have a quick example of a (public) Github project using Github issues in an obviously useful way?
* Stars: the ability to privately star individual messages (so you can easily find them again)
* Pinning: the ability to publicly highlight specific messages within a channel, much like pinned posts in a forum (effectively channel-wide starring)
* History links: click on the timestamp next to any Slack message and it'll open a canonical URL for that message, allowing you to drop these links to specific messages or points in a conversation into other chats, GH issues or anywhere else you fancy.
Stars also seems like a useful feature, but I'm so used to pasting useful stuff in a google doc, never even thought of it
This is a bit extreme IMO. Tools should be a secondary concern for any developer. If a job is right for a person, such details should not matter.
Most important for me are the notifications. Slack lets you set per-channel notification settings. With Hipchat I'd either miss messages I wanted to see or have to get constant notifications. "More granular notifications" was either the #1 or #2 highest-voted issue in their feature requests for over three years, and they're only now getting to the point where they have a beta version of the feature.
Also, if I received messages while I had Hipchat closed and opened it back up later, there'd be no indication I had received a message[0]. With Slack, I can always quickly catch up on messages I missed in channels I care about.
It's possible to edit posts in Slack, which isn't as essential, but still very useful.
Hipchat would initiate laggy emoticon autocomplete after I typed an opening paren, which I found very obnoxious. My goal was almost always to add a parenthetical statement, not an emoticon. There didn't seem to be a way to turn the autocomplete off.
Hipchat uad miscellaneous minor bugs that I've never experienced with Slack.
The only real thing I see in Hipchat's favor is the integrated video/voice chat, but there are plenty of other ways for me to do that when I need to. Plus, hopefully Slack will have Screenhero integrated soon.
[0] If I was @tagged I'd receive an email, but the app itself still wouldn't give me any indication of unread messages.
Slack feels much slower.
In Hipchat you can edit your last message with Vim style substitution strings. i.e.: s/were/where/
The Channel/Group distinction in Slack is useless and annoying since you have to adjust team broadcasts to the channel you're in (@group or @channel).
Slack doesn't have @here (so offline people don't get pinged). i.e.: "@here Anyone up for lunch?"
I'd be much less annoyed with Slack if it let me rearrange Channels. But still. It seems like it trades obvious functionality for stupid meme integrations. Gets under my skin.
Personally, being in a ~20 person company, I really don't really care about per-channel notifications. YAGNI. If I don't want to be notified, I just don't join that channel. Otherwise if someone pings me with @group, I want to see it. And if it's important enough, don't depend on the chat app sending my phone a notification. Text or Call me. We're a Mac shop so that's just a keystroke away with the Messages app or FaceTime Audio if you're at your desk anyways. Don't tell me sites are down and the building is on fire through Slack.
/end-rant. :-)
Slack added @here a few weeks ago. Otherwise that would have been on my list of Hipchat pluses.
Being able to rearrange channels would be nice, but it isn't a big deal to me. I mostly use the "Jump to next unread message" hotkey in Slack to switch between channels.
Email in profile, feel free to get in touch if you want more detail.
While this is typically how it's been done in my experience I really don't agree. My take on JIRA is that it can literally do anything project-management wise but everything it does is cumbersome and slow.
I wish there were more alternatives that had SOME similar feature sets (certainly not all of the features; most of the JIRA ones can be interchanged with its other features) and was significantly faster to use.
(BTW, repos with very large numbers of forks, like Rails, aren't able to render a network graph at all.)
Yes, just click on the number of forks. It takes you to:
https://github.com/golang/go/network
Members tab is a simpler enumeration of all forks.
https://github.com/golang/go/network/members
(Similarly, to see the people who have starred a repo, click on that number.)
It's not even hidden in some advanced menu, just point and click.
I know GitHub has at least some considerations because if you press tab, it shows a hidden "Skip to content" button (which I thought was a bug, but learned it's for screen readers). But I can tell the Network tab doesn't look as reader friendly as the Members tab because it uses some non-standard canvas element or so.
I love Hipchat for having a native client.
I need to say that Confluence as a internal wiki works very well. And FishEye + Crucible do a really nice to do code reviews. The only weakness that I saw to Fisheye is that when do you do a search of stuff, can't spot the thing that you are searching inside of a source file. Only shows you the source file, enforcing you to relay on your web browser search that don't works well over FishEye UI.
Also, I try to search a open source (and free) replacement of FishEye + Crucible that works over our svn repository. I can't find anything that works on the same way.
BitBucket+Mercurial is sweetness as a developer. Better than TFS, far better than Git, and well, everything on the planet is better than ClearCase.
GitHub issue tracking is not good enough to manage any kind of large project, JIRA is a bit of a beast.
I'd prefer having an integrated JIRA any day, though I do still strongly DISLIKE JIRA. There's still opportunity for something better IMHO.
(For very small teams, I find that's Trello, but Trello isn't really for large groups)
As easy to use as Trello for small teams, but scales up as you grow (although we probably cap out at 100-ish devs right now, not quite to Jira's level yet.)
(Full disclosure: CEO/Founder)
I just requested a beta invite. Glad to see other businesses built on Clojure codebases!
We deploy multiple times a day right now. Clubhouse is built with the option of a hosted version in mind, but we'd have to get to the point where we felt that things were stable and complete enough to say "ok, let's call this 1.0 and ship it."
It is a powerful extension that add project management features directly inside GitHub.
You would enjoy Task boards, Burndown charts and many other features without leaving GitHub's website.
(Full disclosure: I used to work for ZenHub)
https://github.com/lally/org-issue-sync
Open source, free to use.
However, FogBugz has its share of problems, and I'd gladly move to something else, if only there was something better. Must-haves that many companies miss are:
* flawless E-mail integration,
* task numbers,
* API that lets me attach code commit links (linking to GitHub) for reviews.
As to why not FogBugz — a number of reasons and annoyances. It's slow, expensive, too complex in many places, we've encountered a number of bugs over the years, and Fog Creek strongly resists changing FogBugz. Even relatively minor changes (we wanted FogBugz to detect cases based on "#1234" case numbers not a "Case #1234" string, because if you don't write in English, writing "case #1234" is unnatural) are refused.
It lacks strong organizational features, categorization, issue templates, search, and ability to save filters.
I've seen a lot of projects use it for pull requests and then disable the issue tracker, which is good and bad - you get a better tracker, you miss probably half of the bug reports.
It all depends on how you set it up, because it can be setup in myriad of ways. My first job the PM set up all sorts of convenience links to see different issues in different ways (sprint, status, owner, priority).
Now at my new job they just tell us over skype what query they typed in. Nothing wrong with that, but it's a lot more work than if it was setup differently.
Furthermore, the number of states a issue can be in can be different too. And it can be confounding to have too many states which mean nothing, or too few that don't mean enough.
I doubt anyone is actually excited about using JIRA. It's usually the solution that just sucks the least and offers features for developers, project managers and higher management alike.
I beg to differ: 2-factor authentication[1], you can't change your credentials[2], it's not as easy to integrate with CI tools since most devs just focus in the integration with Github, and probably there are many more ways where Bitbucket is inferior in comparison with Github.
[1] https://bitbucket.org/site/master/issues/5811/support-two-fa...
[2] https://answers.atlassian.com/questions/176548/how-can-i-cha...
BTW, GitHub does NOT play well with most CI tools. It's memory management is downright abysmal. As someone who understands the deep workings of source control apps, I hate having to constantly work through issues with devs botching their check ins. I never have this with Bitbucket, and it's pretty clear why. It's because BitBucket doesn't use some mishmash of command line and poorly implemented GUIs.
As someone who used to have keys to a number of security-critical OSS projects, I would never use password-only authentication to protect write access to my repo.
It's not just the chance of someone sneaking in a change and its getting shipped to users -- although that's also awful -- but it's also the chance of someone sneaking in a change that pwns all of your developers (by running a script as part of the build).
And if you're using a private repository and care about keeping your source code secret, then you really, really, really want 2FA.
Um, if I need this, I'm not handing my data to github. Thanks.
I use 2FA on all my personal accounts that support it (Twitter, Github, Gmail, Namecheap, banks).
Slack ate HipChat's lunch, too. From the trenches it's hard for me to consider Atlassian the "standard" of modern development focussed organizations.
Github is so ubiquitous that it too has very good integration with Jira. It's popularity alone means that essentially anything that has version control integration has Github integration.
Here's the thing though: besides the many benefits of Github mentioned in this thread, such as the interface being MUCH nicer and more streamlined, 2 factor auth (which, yes, is VERY important) etc. the nail in the coffin for Bitbucket comes down to one very understandable feature:
After almost 4 YEARS, you STILL can't search through source code on Bitbucket. If there is any confirmation that Atlassian has no idea what developers actually want, that is it right there.
https://bitbucket.org/site/master/issues/2874/ability-to-sea...
I can't think of a better place to host my code.
It's worth noting that 10 years ago, this same statement was true of Sourceforge.
GitHub isn't a commodity that excels only because of it happening to be popular. People choose GitHub because it's both popular and good. It has competition, some of which are better for specific circumstances, but as a whole they don't execute as well.
Let me contrast with Facebook – it was only good, in my opinion, for a brief period starting in 2005 which happened to coincide with my freshman year of university. As it grew and changed, I found myself and very many of my peers hating each significant change. The only reason I've kept an account is because it's popular – it stores some weak social connections which would be otherwise lost.
I've never used gitlab, but I find bitbucket to be identical to github in every way that matters.
(Most of out repos are public but some things you want to keep private at first.)
It's way above being a simple repository storage which isn't a trivial think to setup to begin with just watch the various talks from BitBucket's core team.
As long as everyone else has to play catch up they will be fine. And i don't see sourceforge as being comparable unless you just look at a project hosting in it's most basic form in which Google Drive or Dropbox can also fit in that category.
Sourceforge offered shell access for SVN; Google drive and dropbox wouldn't support branching, merging etc. To say sourceforge is in a category closer to them than to github is ridiculous.
It's not really one particular feature, but a whole mess of little things that, collectively, will keep github 'default choice' for a lot of folks for a long time coming - it's inherently a bit more 'social'.
That said, I'm in agreement with your view that most other services have most of the main same features anyway - I prefer bitbucket for my projects, but... I'm in a minority. This sort of feels like MS Office vs OpenOffice 15 years ago. Yeah, technically there's a lot of the same stuff, but there's enough 'missing' features from multiple users' perspectives that the larger player still 'wins'.
But migrating issues is not so trivial. There are probably several other subtle points of incompatibility making switching a headache. If it ain't broke is the Enterprise mantra. They love to standardise. They will hang on for decades.
However, the real point is that $20/m/user is comparatively cheap for the enterprise. The github category is already far better than the old ways; to win, they merely need be slightly more attractive and/or better known than the category alternatives.
Yes git hosting is commodity, but if you switch away from GitHub you have to switch so many other things as well. That takes time (hence money) and can be very disruptive to your infrastructure.
So unless GitHub starts to suck while someone else comes up with a different awesome solution that solves most of it, GitHub it could be worth way more than $2B.
However, the name recognition that allows GitHub to charge a premium really is worth something, and I suspect they plan on leveraging that 250M to try and grow. In the end though it's not our money so we really don't have a lot of information on if it was a good bet or not.
PS: For an off the wall example, they may be planning to become a seed incubator.
There are folks delivering similar services, but nothing remotely of the same standard.
> there isn't that much that ties a project to GitHub
They don't need to have any stickyness if they continue to provide a service that's far superior to other's offerings.
New entrants will find it incredibly difficult to break through at this point because of the immense investment that'd be needed to rival GitHub's service, and the lack of achieving significant user base and income during that process.
> Something tells me that the "facebook for programmers" angle is essential to selling the dream here.
The network aspect doesn't really need to be their main selling point.
GitHub's value to development companies is dead simple: It's a more productive tool than anything else out there.
What does "exactly" mean in this context? I've looked at competing code hosting sites and could find none that does exactly what GitHub does. For example GitHub very good search function which can quickly search through all commits, pull requests, tickets and wiki pages in a project in one go. It's a very useful feature no other code hosting site has. And that's just one of dozens of features (the repo branch visualization tool being another) that other sites doesn't have or doesn't do nearly as well as GitHub.
In a way, back then, Gmail did "exactly" what Hotmail did.. But not really.
Git ~ Text Editor
GitHub ~ Microsoft Word
Sure, git is a commodity service, just like text editors are a commodity product. It's trivially easy to migrate a Git repository to a different service, but quite a bit less trivial to migrate all of the issues, integrations, hooks, wikis, CI services, etc.
When you look at the big picture, there are much fewer players doing exactly what GitHub does.
This builds a very tight feedback loop, and ends up with more developers using github. And I don't see anything disrupting this loop for the time being.
A GitHub profile page is a strong signal only that you have a GitHub account. Any other use is strictly off-label.
Arguably, word processors are the one piece of software that probably has had the most competition throughout the years.
I remember some of these products as being wretched, and Word was our saviour, even with it's terrible formatting sometimes.
Either way, you were making the claim that Microsoft Word had very little competition, while GitHub has overwhelming competition. This is very far from the truth. Microsoft Word has and has always had very healthy competition in much the same way that GitHub has plenty of competition. Like it or not, at this point in time GitHub is the golden standard, while the competition is riding in their coattails. Very similar to Microsoft Word.