Experience of Knowledge-Sharing on large Software Projects

First off I guess the project I'm working on isn't huge - 30-40 developers - but the software has been developed over a number of years and is an ongoing project of upgrades, new features etc.

A few issues I find are:
- going into areas of code I'm not familiar with can be daunting particularly when you come across something that doesn't seem to make sense;
- working on new developments where you want to ensure you aren't writing something that doesn't exist elsewhere;
- making sure that the way you are doing something in a standard, common, consistent way of working

To help with these sorts of problems we have a drupal-based knowledge base but I find it difficult to search on and perhaps the information isn't always organised as well as it could be.

I'm curious to know what products are out there to help with these sorts of issues, and what experience developers have of using them.
purplesoupAsked:
Who is Participating?
 
horkCommented:
Basically you need project management software (e.g., a platform or a portal) so that your developers and managers can participate in the discussion through your development cycle. These software tools help to facilitate knowledge-sharing (and encourage too) since most of them offer version tracking and posting follow-up discussions etc.

One of the cost-effective software I can think of is the BaseCamp project management tool where you post a comment to a topic and every member related to the project gets an email reminder, so each one never misses or forgets to read the posts.  On the other hand, you can go for those commercial EDMS portals which are full-fledged electronic document management systems that help to manage documentation as well as version tracking of software changes, etc.
0
 
TommySzalapskiCommented:
We use a wiki. Things change constantly, so everyone should be able to edit everything. The built in search is quite good and you can assign categories to pages.
We also create design pages on the wiki for each new feature as we create it so that it's well documented how it is supposed to work.

We have the same problem where the code base has a lot of scary parts in it. Any time I have to fix a bug or add a feature to those parts, I'll also add a wiki page briefly summarizing what I learned.
0
 
purplesoupAuthor Commented:
Thanks that's interesting - I think this seems a pretty good example of documenting a technology to make it usable

https://code.google.com/p/autofac/wiki/GettingStarted
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
TommySzalapskiCommented:
Yes. That looks very useful. And it's a wiki.

The other nice thing about wikis is that they are now something that most people (especially programmers) are already familiar with. In fact, many of your engineers probably have edited Wikipedia articles at some point so they already know how to use it.
0
 
purplesoupAuthor Commented:
I had hoped this would get a few more comments - no offence Tommy yours were very interesting - so I'm going to click the "request attention".

I guess this is a different type of question - it isn't a closed question with a specific answer, it is open where I'd just like to hear different opinions and experiences.

For example, do some companies have software "librarians" to organize and order technical programmer information?
0
 
TommySzalapskiCommented:
No offense taken. I also expected other input. There is no one way to do things.

do some companies have software "librarians" to organize and order technical programmer information?

Absolutely. Many companies have technical writers on staff whose entire job is to organize, write, and maintain documentation. In my opinion, we need more of them.
0
 
purplesoupAuthor Commented:
I've known technical writers documenting how to use a product, but the technical documentation for use by programmers has tended to be done as and when programmers get time, and in a fairly ad-hoc manner - it can get out of date or can have important parts missing.

I remember reading about SSADM many years ago which of course has/had huge amounts of technical documentation - I don't know how usable it was and of course was at the design level, I'm not sure it covered programming patterns - but some sort of easily searchable wiki of common coding patterns used in a programme, a big picture of the architecture of a system and with perhaps some record of design discussions - why things were done a certain way - would be a huge help for many projects.
0
 
TommySzalapskiCommented:
I agree completely.

the technical documentation for use by programmers has tended to be done as and when programmers get time, and in a fairly ad-hoc manner

Unfortunately, that is usually what I see too.
0
 
purplesoupAuthor Commented:
Thanks for all the comments.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.