views:

307

answers:

6

Do you ever face the problem that there are a bunch of programmers in your organization that you met at the coffee machine one day, but you have no idea what the heck they're up to?

Are you ever faced with a problem you're pretty certain someone in your company has solved before, but you don't know who, and how to find out?

These are some of the challenges I'd like to address, but how? Is there any decent "programmer's collaboration software" out there that offers blogs, discussion forums, file areas for code snippets, documents, white papers, and of course a knowledge base and more? We have Sharepoint and I do not feel it qualifies.

Any idea? Recommendations? I would think someone must have solved that problem before, but how do I find out?

Related:

Online collaborative environment (not only dev oriented)
What online collaboration sites do you know?
How do you collaborate with other coders in real time?

+1  A: 

Why not use some Wiki engine? Maybe with some additional plugins it could meet your desires.

Also check out http://stackoverflow.com/questions/247967/maintaining-a-programmer-wiki

Igor Brejc
Well, maybe it's a personal aversion, but I don't like Wikis. First of all, often they're rather cumbersome to use, they don't usually offer good output into print (PDF), and how would you keep a nice file area inside a wiki?
marc_s
Think of it this way: what is StackOverflow than just a pumped-up wiki? As for files, you just keep them somewhere on your web server and point to them using URLs. And I'm sure there are plenty of plugins to make this more "formal". I like wikis simply because of simplicity - compared to Sharepoint.
Igor Brejc
A: 

I think Trac and its vast array of plugins is perfect for collaboration.

Think of it like facebook for programmers.

  • Wiki
  • Tickets
  • Timeline of all wiki edits, ticket changes and source control checkins for starters.
  • RSS and ICal support.
  • Crazy amount of plugins
Ryu
Seems to be mainly an issue tracking system - we already have that and are happy with our current choice. What I really need is a "Sharepoint for Programmers" that doesn't suck :)
marc_s
+1  A: 

I work with small teams of up to 5 people.

Personally, I like unfuddle.

Here are other SO questions with interesting input for the 'collaboration' question:

Online collaborative environment (not only dev oriented)
What online collaboration sites do you know?
How do you collaborate with other coders in real time?

tharkun
Rich b: you don't need to follow me around and edit everything I write, ok?
tharkun
+3  A: 

How about standing up out of your cubicle and "HEY! HAS ANYONE EVER....".

To be fair, something more informal is likely better. Formal things take time. Time folks don't have. It's one of the dichotomies of development. We have time for interrupts, but not for anything else.

I would suggest relying on simply social networking. i.e. "Hey Frank, have you ever...?" "Hmm, no, but Bob might...".

Augmented by AIM or an in house IRC to help get conversations started, and then you can walk over or get on the phone to resolve the problem.

As far as knowing what others are up too, well, that's basically what the water cooler is for, and lunch times, and internal socializing, right? Unless you're the persons supervisor.

The larger the company, the larger the chance of duplication of effort. At the same time, YOUR time is basically set on YOUR project, not THEIR projects.

If you have a public SVN, then maybe you can crawl that as well.

The point being, rely on organic systems rather than something rigid, I think you'll have a better chance of success finding a happy medium.

Will Hartung
We're spread over three floor plus several customer's sites..... just getting up and yelling won't do :(
marc_s
+1  A: 

Wow, it's good to be in good company.

I have a similar situation on my job. In my case, I'm a "software task manager", and I'm trying to find the other people in my role in other projects. Whenever I meet one, the experience is great, and I learn a lot of good tips - but I want that to happen more often.

My company also has SharePoint, so it's good to hear that other people have the same problem connecting with this tool that is theoretically about connecting and sharing info.

I'm trying a collection of things to see what works. So far, the person to person connection, ennabled with email and our internal IM system are the best connections - but that involves a person to person invite.

Other stuff I had in mind:

  • Blogging via Sharepoint - still a challenge, since anything public involves a certain amount of care and tact, and the things I want to connect with others on do not lend themselves to the necessary level of corporate diplomacy needed to blog.
  • SharePoint site - for a topic area - our company has a few, we'll see how well they work. It seems best when there is a group that is the "owner", who provides some basic level content for everyone else to feed off of. Someone has to be first.
  • Company bulletin boards - we actually have these. Mostly they have notices for one time events. But one thing we have are "lunch and learn" sessions about specific technical topics. A similar session for a roundtable on an issue or technical area might be valuable - although it will only catch people in the local campus. I started doing a lightwieght version - I have lunch monthly with a friend who is a peer, and we are inviting others. Sooner or later, I hope we'll be the Software Task Manager Suport Group, and a natural place for like minded people to come hang out.
  • Corporate Social Network - I've been prevailing upon the SharePoint portal people (to no avail) to suggest that the difficulty with SharePoint is the lack of human connection. Social networks like LinkedIn, LiveJournal, Tribe, and Facebook all have the concept that you have "friends", "connections", etc. Through connections, people form traversible webs based on interests and shared friends. This is what I think SharePoint is most lacking.

For the really ambiguous need of finding people who know something about my current tasks and who might be able to help (or at least sympathize), I think that last one is the big one. As humans, we thrive on not just getting the info we need, but also being able to judge it against what we know about the source of information. A Wiki is great for factual answers, but the reason to interface with other humans to have that particular quality of interaction that is much messier than bare facts. To get that in an online context you need connection to others, lightwieght topic definitions, and a chance to make some things access controlled so that people can speak their minds without corporate fear.

bethlakshmi
A: 

Take a look to these pieces of software by the creators of Ruby on Rails.

tunnuz