views:

166

answers:

8

At my workplace we don't often discuss design patterns, best practices, common pitfalls, etc. You're just expected to know what to do and avoid mistakes without much direction. This might be because we're an overloaded group of four full time developers however I feel in a shop of any size you should be actively discussing topics to improve your architectural, design, and implementation abilities. Unfortunately, I have no one to discuss development with outside of work and so I've actively been seeking in-person and Internet forums for that reason.

So where do you get your discussion? At work or maybe a user group?

A: 

When I worked with a larger team, there were a bunch of us who enjoyed having these conversations. Now that I work alone, I'll either talk to myself or my two year old. At least now I never lose an argument.

JoshBerke
you are lucky ... I always loose when I get into a discussion with myself.
Jens Schauder
He probably does to, it's with his child he wins.
zodeus
I try to foster an environment where the discussion would be welcome based on practical realities were confronted with, but I seem to get blank stares. At least your two year old actually pays attention!
Eric H
A: 

I guess by now some colleagues turn the light down when they are late at work, because I'm known to wander office in the evening and get into discussions for an hour or two.

Jens Schauder
No one else in my office seems to really care other than me, it's awesome that you get someone once in a while.
Eric H
A: 

Me and my four colleagues have discussions and debates quite frequently. We find it very useful.

zodeus
Was this a culture that was in place when you joined the team or was it fostered? And did you have anyone who was difficult to get to join your discussions?
Eric H
I am the team lead, and founder of the development team and I can say it has definitely been fostered in through a collective effort of the entire team. People/Developers who cannot assimilate into the team after a while are let go. Entire teams can suffer from one bad apple.
zodeus
A: 

Interestingly, I do all of my design pattern "discussion" here on StackOverflow.

Robert S.
A: 

At my workplace we have user groups where interested developers can attend and share ideas on a variety of development topics. Usually members of the group will volunteer to present on a particular topic. This can be done informally at lunch time, etc.

I suggest setting up a brown bag lunch for you and your colleagues. Do some research on patterns, and give a presentation to the group to get the ball rolling, even if you don't get a big turn out, you'll learn a lot just in the process of preparing your presentation. And if you get a good turn out, turn it it into a regular thing with a new topic each meeting.

Millhouse
It sounds like you work with a large group of developers? I wonder if the number of people creates a critical mass of need that provides the impetus for a group to form.
Eric H
A: 

There's very little collaboration where I work. Everyone is assigned to a different project so it's difficult to debate the suitability of various design patterns for any particular project. My only chance to discuss design patterns, or anything programming related, is on stackoverflow.

Cybis
+1  A: 

There's a more than a few different routes for me in terms of picking up new knowledge, which design patterns can vary quite a bit, IMO:

  1. Microsoft directly -> There is a patterns & practices group that have articles regularly so I try to check that every 1-2 days.

  2. Blogs -> ScottGu and Brad Abrams are a couple of big Microsoft ones that I like to read and see what is up and coming within ASP.Net that I often use. Usually a few times a week I'll check these to see along with an ASP.Net debugging. CodingHorror and Joel on Software are also handy for the odd tidbit of knowledge.

  3. Local user group -> Sometimes there are code camps, open spaces, or deep dives that are where some patterns and practices can be discussed with at least one meeting a month.

  4. My team at work -> There is a scheduled practices and patterns meeting every 2 weeks where these come up in terms of how to use this or that pattern in our big project. There can also be daily discussions if there is a pairing where folks disagree on what to do and want to try to come to consensus.

  5. StackOverflow -> This site where I have a design-patterns tag marked as interesting since I like to pick up patterns as I find them interesting.

  6. CompSci ->Computer Science Canada also has some discussion boards that can have design patterns pop up from time to time.

JB King
Thanks for the ScottGU and Brad Abrams blogs, going to look those over. I'm an avid reader of the FogCreek guys.
Eric H
A: 

At work we started having a developers seminar every other week. Topics vary widely, some common themes are:

  • How to use a new library or software tool
  • New results from one of our research efforts
  • Open discussion about current development issues (such as what SCM system to use)
  • Technical talk by a guest speaker

We keep them short, under 45 minutes, and they usually generate some good discussion. A great one we had a few months ago was a "Bug Morbidity and Mortality Review", suggested by a programmer whose fiancee is a doctor. Four or five of us wrote up brief descriptions of a bug we encountered and our process of tracking it down and fixing it.

Often these are the sort of thing that devs might just talk about over lunch, but we have a distributed team and so providing an official forum for this sort of talk helps our cohesion. A talk on design patterns would fit right in and would probably generate some useful discussion.

jblocksom