Our team of developers are going to start holding monthly meetings for the purposes of cross training and knowledge improvement. We're looking for ideas for topics to discuss. We've already made a list of some obvious ones, such as discussions/training on specific applications, proper usage of TFS for source control, bug tracking and code reviews, coding standards, and corporate architecture.

The problem we're having is that we are a cross-platform development team so we don't want to look at topics that only apply to certain members of the team (Sql, .NET, reporting, third party apps, etc). We'll use sub-team meetings for those.

So what other topics that would apply across a broad development team would be good for these training sessions?

  • 1
    How do you provide "cross training and knowledge improvement" while limiting topics to only things everyone is already working with? Apr 29, 2011 at 19:26
  • I've used TFS for years and never once had any of the problems that the review you link to claims. The TFS plugin has never crashed. TFS has never failed to retrieve all the files in a solution. I've never had a problem moving a folder. And only once has a binding been lost. Setting up a workspace is a couple clicks more than it should be. Maybe the author should realize that when countless developers the world over can use something without the problems they claim, the problem is probably with them. And don't start an SVN flame war anyone. I love Subversion as well. They both work just fine.
    – BBlake
    Apr 29, 2011 at 19:39
  • @Jeff - That is the problem we have with the idea. How to make that work beyond the few overly general topics. I'm just hoping for a few other ideas to suggest to the boss.
    – BBlake
    Apr 29, 2011 at 19:42
  • My point was, doesn't cross-training mean Person A who knows X teaching person B who knows Y how to do X? Apr 29, 2011 at 19:46

3 Answers 3

  • Architecture overview - This would be the high level view of what is in each area and how to see each other's world from 30,000 feet. For some this may not be that interesting but it could be useful to ensure everyone has a shared understanding. Terminology may also be worth reviewing here as some terms may be quite overloaded and worth sorting out in a meeting to review what could be meant by some terms. Application and system being the really broad terms though other words could be just as loaded if the software maker is often used to refer to something like "Oracle does that" though Oracle makes more than a few different software products.

  • Communication/relationship skills - This is fairly general but could be interesting if someone wants to go down this rabbit hole of exploring how do people relate, communicate and other stuff. This can get a little personal along with being not quite so technical as people tend to be more shades of grey than black or white.

  • Team-building - This is slightly different as the idea here being that you may want people to get to know each other rather than discuss improving someone's specific skills. This does carry the challenge of framing this correctly so that rivalries are productive rather than destructive.

Those would be a few ideas that I'd have as there could be a few different dividends to be had from such meetings, if set up properly.


IF your application is database-intensive, all developers would probably benefit from performance tuning training to know which kinds of queries are likely to cause problems.

If you have support people and development people, it might be useful for support ot prepare a presentation on the kinds of bugs they are fixing. Sometimes the orginal developers can go along happily making the same mistakes because they aren't the ones fixing the bugs. Conversely, development can prepare a presentation to support on how to troubleshoot this new fancy feature we are adding.

That sort of appraoch can work well for several groups. The database people could benefit from learning what issues the application people are having with the database, the reporting people know about a lot of issues that the application people never think about when making changes to the application.


Having a cross-platform team actually enables you to have some platform-specific sessions that can be of interest to developers using the other languages/platforms. The only thing to keep in mind is that the sessions are oriented more towards discussions around usefulness and applicability than towards knowledge transfer (i.e. the sessions are to show how things work in general as opposed to teaching how to use some tool/technology directly).

For example, for non-.NET developers, it can be very interesting to see LINQ in action, as it will give them ideas about whether something like that would be nice to have (and maybe have them look around for libraries that do similar things in their environment).

Another example, a seasoned functional programmer can inspire C#-developers to make the most of lambdas, since most C#-developers have a background that hasn't put a lot of focus on those implementation patterns.

Not the answer you're looking for? Browse other questions tagged or ask your own question.