I recently spent two days training a group of about 30 developers and DBAs out east. As with any sizeable collection of technologists, the level of expertise and the years of experience varied greatly (and don't always go hand in hand!).
I was pleased to see that everyone seemed to get along well, there wasn't any great reluctance to ask questions (that is, admit ignorance), and several attendees didn't hesitate to challenge my ideas and suggest other ways of doing things. Just the way I like it!
Yet, as with so many other organizations I'd visited, and developers I'd trained, they hadn't come up with any thorough and effective ways to share information, techniques and code among the various application teams.
I've always been surprised at this situation. In company after company, there will be dozens to even hundreds of PL/SQL developers working virtually side by side, yet also coding largely in isolation. Some companies will hold occasional, informal brown bag lunches, others might make some limited gestures at using Sharepoint or Lotus Notes or wikis to share some ideas. But it seemed that many developers would still end up reinventing the wheel, over and over again.
What a waste!
Now, I don't think this situation arises because developers don't want to share, or want to write everything from scratch. It can just be very hard to organize material, make it accessible, keep it current, create libraries or toolboxes of generic, reusable code, and so on. Everyone's busy and resources are limited.
I got to thinking about this on the plane ride home (yes, I am writing this at 37,000 feet) and realized that this situation is never going to change. Resources will always be tight. Time will always be precious. And expertise will reside largely in the brains of individuals, not written down on paper or deposited in some collaborative repository.
I had a revelation on the plane: if this is how it is going to be, why fight that? Why not accept reality and work with it?
So I came up with a simple idea that might actually help address this problem. For my full recording of thoughts on this topic, please visit my ToadWorld blog.