1 Apr
2010

Social Media as a Software Development Tool?

One thing about software development I have always struggled with is inter-team communication. As I develop, I am often thinking things like “I need to make sure I tell Elvis I moved this method” or “The team is really going to like the reduced friction of this new implementation”. I have used various methodologies to try and address this, most of which you have probably tried too:

  • Detailed check-in notes (no one reads unless they are tracking down who broke something)
  • Code-reviews (*yawn*)
  • Stand-ups (wrong medium, too high level)
  • Pair programming (exclusive to 2 or 3 developers, and is too expensive to do at a high frequency)
  • IM (Too exclusive, temporary, can be distracting)
  • Shouting “Hey dude check this out”
    All of these can be valuable, however none of them offer the signal to noise balance I am looking for. I want a mechanism which promotes and enables a different form of communication. So what about a form of social media? Wikipedia tells us:

“Social media is media designed to be disseminated through social interaction… Social media uses…technologies to transform and broadcast media monologues into social media dialogues. It supports the democratization of knowledge and information and transforms people from content consumers to content producers.”

Personally I have gotten really adept at tracking and participating in twitter conversations, IM, email etc while I work. I am ready for a social client that lives in my development environment. A tool which enables me to informally talk to my team as I am writing code.

I have a bunch of ideas around what this could look like, and I think implemented properly it would make developing software better.

So is anyone out there doing anything like this? What sort of features would make it useful?

15 thoughts on “Social Media as a Software Development Tool?

  1. Great idea!

    You’ve just articulated something I wanted on a subconscious level.

    At one place I worked, all the developers hung out in an IRC channel, and it was great for morale and developing shared in-jokes 🙂

    So a developer-focused “chatroom” would be great.

    And to let people know about new things you have done, or things you have noticed in the code, it should allow you to include in your conversation links to files, or regions within files, in source control.

    E.g. “holy crap this is bad: SwissArmyKnife.cs:123-445”, clicking the link would open the file and jump to that region in the file, or perhaps just display the offending lines in question, with some context.

    Or…

    “just fixed #12234”, which would be a link to the issue in the issue tracking system.

    And lastly, a “timeline” of interesting activity, e.g. check-ins, CI build failures, for people who missed out on the chatroom activity.

    Yea/nay?

  2. Hey,

    Why don’t you try to check out project Kenai? I think they are doing, or have done the same thing. Haven’t checked it out myself though, it’s just something I’ve been reading about.

  3. We had that exact same issue, and decided to try Yammer with our team. Our group is only 5 people, so we haven’t really stretched it out to see how it would work with more, but it does the trick for us. It works kind of like Twitter with the live feed, but it is private, and you can create groups (we have one for each project, along with “I’m working on”, even “Lunch Plans”, etc). Each user can subscribe to receive emails depending on the group it’s posted in.

    The other thing I like about it is that you can post via email, so it is easy to integrate with project management or svn. So, in response to Leon: “just fixed #12234? is automatically posted when I mark it as done in the project manager (we use Pivitol Tracker and hooked into their API to automatically send the email). Also, if it sends an email to me, I can just reply to the email rather than having to open up the web client.

    Leon Breedt :
    “holy crap this is bad: SwissArmyKnife.cs:123-445?
    “just fixed #12234?

    Using a web svn client, I usually just post the link to the SwissArmyKnife.cs. That would be very cool if it could automatically build a link, but I’m not sure how you would indicate the path to the project, file, branch etc in a way easier than just finding the link and posting it. Maybe it could be built into the IDE?

    Yammer has worked pretty well for us – maybe check it out to get some ideas. I would be interested to hear what other people have used.

  4. @Leon Breedt
    Yes, these suggestions are on the right track, exactly the kinds of features I am thinking of.

    @Mihai
    I checked out Kenai, but couldn’t find anything. Do you have a link?

    @Brian
    Brian, yes I am familiar with Yammer, and know of one other team that is using it. Sounds like it is working well for you guys, that is awesome.

    I initially mentioned it in my post, but cut it out as I wanted to see if someone brought it up 🙂


    “Start at yammer, then get more integrated, more development/design team centric. This tool would be part of my project, where I could store and index my conversation logs as part of the source control, set up triggers/filters based on keywords and events etc.”

    Thanks for your comments guys!

  5. I really like this idea.

    I have actually been thinking about this for a while. I really wanted a chat client that is programming language aware, so that you could interactively work on a piece of code.

    The more I think about it, it would be awesome to have an IDE that is a social media IDE. Think about it if there was a neat way to see what people were doing in different parts of an application, while you were working and you could collaborate to develop a method or a class.

    I like the idea of being able to store some kind of wave like meta data about how some code got written. Perhaps some kind of annotations from a chat that happened live in the IDE that don’t get in the way of the code, but you could see if you wanted when you are in that area of code.

  6. I for one am really liking this idea, I have been contemplating upon this communication problem a lot during the last year where I have gone from being in the center of complete chaos to being isolated from everyone.

    Yammer is trying to solve some problems here but it’s not complete. I want integration in Visual Studio (or IDE of choice). The main problem with Yammer is that it’s just another chat client.

  7. Oh almost forgot, We have been using Skype and “Groups” pretty successfully for instant communication but what is lacking with Skype is functionality to #tag things and to #search things. It is also not possible to send out #notifications from Skype to email when something has been discussed.

    Heh, I might keep posting ideas and thoughts I remember / come up with since this is one of the most exciting ideas I’ve heard of for a long time!

  8. Great discussion.

    We have setup a Twitter account for our dev team and our .NET issue tracker (CounterSoft Gemini) has a simple Twitter plug-in that pushes all issue updates/comments into Twitter.

    Provides a simple feed of changes as they happen.

  9. In my previous team (6 members) I used News from Atlassian Confluence and it worked pretty well with RSS readers, because you can generate/select your own RSS feed. Simple interface with two sections: topic and body, was sufficient enough to keep everyone informed.

  10. Have you checked out Campfire? It’s part of the 37 Signals suite and I hear it’s quite good at what it does. I’m sure it integrates nicely with their other products like Basecamp as well.

  11. @John Sonmez
    Good ideas. I hear you describing almost ‘pair programming’ 2.0, maybe even ‘team programming’, with the ability to capture that stream along with the code.

    A ‘team map’ is a good one too. Like an interactive map of where people are working?

    @Mikael Henriksson
    Agree, it cant be just another chat client. If we could make it integrated enough to where it is less ‘task switchy’, so we wouldn’t lose productivity.

    I mean lets face it, people are doing social media at work. Lets focus that towards the software right?

  12. A lot of good suggestion on here for simple things people could do now move in this direction (rss, twitter etc).

    Some of the products suggested are getting close. The Novell Pulse feat @Alex Covic is quite interesting, and as an enterprise/corporate tool socialcast looks really complete.

    @Tommy Seems like everyone I know has been moving to github over the past 6 mos. It must be pretty cool, because they all love to talk about it 🙂

Comments are closed.