Starting a voluntary discussion group

I co-founded a lunchtime discussion group at work five years ago.  As we approach the fifth anniversary, I was reflecting on what went into it.  What worked; what didn’t; what would I do differently.  Our purpose was to have a place to discuss technology that we weren’t necessarily working on and to share knowledge/ideas across teams/departments.

Background

Technically the group started more than five years ago as a technical book club.  That didn’t work because everyone had to read from the same book.  Which requires preparation each meeting.  It also makes it hard to come back after you’ve missed a meeting.  The organizer of that group and I had an informal conversation near the cafeteria hallway about how to improve things and the new group was born!

The new group

We started meeting twice a month and switched to once a month over time.  We have a mix of moderated discussion topics and presentations with heavy Q & A.  At the beginning, we said we would cancel the meeting if there weren’t 4 people in the room.  This hasn’t been a problem in years.

What I consider key to the group’s success

  • We always meet the same day and time – this makes it easy for people to remember when the group meets.  For example, the first Tuesday of the month; the first and third Thursday of the month, etc.
  • Advertising – We advertise through an opt-in mailing list (don’t spam people), telling people who might be interested and putting up physical signs the day of the meeting.  Speaking of which these signs are always the same color/font/logo to encourage branding/memory.  People have even said “you are the blue sign people”.
  • Voluntary – This one is important to me.  Attending the group is voluntary.  Running the group is voluntary.  This means it is not a work thing and does not get billed to work projects.  It also allows the group to remain independent topic wise and FUN.
  • Informal – While we do have presentations, they are usually of an informal type. (Sometimes someone is previewing a formal presentation.)  Again, this is in keeping with the goal of things being FUN.
  • Size of group – We haven’t had problems with the size of the group per se.  We get between 6 and 20 people most months which is a good size.  We’ve been asked about including other offices in other states in the group.  We do have a phone bridge for people within the company and have invited people from one or two other offices on occasion recently.  And this is fine if it is small.  If there are too many from too many offices, it changes the spirit of the group.  And there are already company wide information exchange type groups in place.  This particular item is something we are going to have to monitor so we don’t become victims of our own success and lose the benefits of a New York based group.
  • Varying formats – Having a mix of presentations and moderated discussion has served us well.  Presentations are good when someone has a lot of experience with a technology.  (or can throw something together on it.)  Moderated discussion is good when multiple people have lots of small thoughts.  And the moderator doesn’t have to be an expert.  Just like at JavaRanch where I moderate the BlackBerry forum without knowing anything about BlackBerry development.  Whenever I moderate at the discussion group, I come with a list of questions/talking points.
  • Hook to real work topics – Most of the time topics involve technologies or emerging technologies someone in the company is working on.  Or planning to work on.  Or a cross cutting concern like performance.
  • Range of topics – You’ll notice I said most of the time.  Some of our topics have nothing to do with work.  There’s that FUN thing again.  We also select topics based on what attendees want to hear.
  • Emphasis on interactiveness – While we do have people who just sit and listen, most participants are actively engaged.  This keeps a good dynamic, keeps in informal and keeps it FUN.
  • Different moderators – Trying to have as wide a range of people moderate as possible is helpful.  It gives the group a changing voice.  It helps more people feel invested in the group.  And it gives people a chance to practice leading.
  • Group leaders changing over time – We have had 5 different people co-lead the group at different points it time.  (Co-leaders are good because it is less work and you don’t have to worry about vacations.)  One person left the company.  And two others (including myself) stepped down from actively running the group after getting job responsibilities that would have compromised the informal appearance of the group.  The two of us still attend/moderate and are plenty involved.  But we don’t run it or give the opening/closing remarks anymore.
  • Topic control – I mentioned we are an informal group.  This gives a stronger ability to decline topics.  At times, people from outside the group come to us with ideas.  Some are good ideas and we use them.  Some are “good ideas that don’t fit.”  (There’s no such thing as a bad idea; we like ideas; that’s how brainstorming happens.)  Being able to decline these ideas keeps the group FUN and interesting.

What to think about if starting your own discussion group?

  1. What is your goal?– Knowing what your goal/vision is for the group helps you set it up in a way conclusive to what you want to accomplish.  It also tells you who to advertise your group to.
  2. Do you want it to be official or unofficial?– Both are valid options.  They have different tones/topics/styles and deciding which you have is important.  (Incidentally, the reason I stepped down from running this group is because I became involved with an official one.)
  3. Do you want it to be voluntary or mandatory? – Even an official group is hard to make mandatory.  Beware of this option.
  4. When is good to meet?– Think about when meetings are generally scheduled in your company.  It is ok to change this until you stabilize.  But then try to stick to the same date/time.
  5. What is a good group size?– What is your target?  Is there a number that is too high or too low?
  6. How do you gain critical mass? – It’s much easier to run a group than to start one.  Think about what you can do to get people to come to your first few meetings.

Summary

I used the word FUN a lot in this post.  That’s really the vision for this group.  Good techies are passionate about technology.  While that doesn’t always come out amidst business activities, our group is an opportunity to channel that pure FUN for what we do.

time warner’s cutomer service

I’ve had the “pleasure” of dealing with Time Warner customer support two or three times in the last month.  (One time the queue was too long and I gave up.)

The one thing I liked

Time Warner lets you contact customer service via online chat rather than sitting on the phone.  It still takes forever, but at least one can do something else during that time.  The first time I was #41.  The second time I was #37 (and decided not to wait.)  Today I was #15.  The pace crawled today compared to the first time.   Now that we’ve gotten the good stuff out of the way, let’s go through what happened.

Contact #1

Saturday September 18th I contacted customer service to make sure they knew the cable was out in my building.  This was about a day and a half after a tornado hit my area.  Both Verizon DSL/Time Warner Cable were out in my building and DSL had just come back.  (luckily power was not affected.)  Now I figured someone else had already reported the cable being out, but was just checking in case.

Result: The rep said he would credit my account for the inconvenience.  That’s nice, but I have to complaint to get a credit?  They know the whole building didn’t have cable.  It should be automatic.  I’m a bit peeved you have to complain to get a credit.

Contact #1.5

My DVR was ok so I watched some recorded shows.  On Monday, I thought “surely it will have been fixed by now” and decided to reboot the cable box.  After all, it helps with computers.  After rebooting, my cable box couldn’t tell what time it was, what was on the DVR or that I was even a customer.  Not good.  I tried to contact customer service to ask about this, but the queue was too long and I gave up.

The high tech notification system

I found out the cable was back Tuesday when I threw out the garbage and noticed the super of our building put a sign on the elevator saying the cable was back.  Thank you!  I had tried when I got home and the cable was still out.  I wasn’t going to try again that night.

Contact #2

I got my bill e-mailed and no credit.  Sigh.  I thought we went through this on September 18th.  The rep I chatted with this time (Pablo) says there will be a credit of $19.42 on next month’s bill.  If  it isn’t done then, I’m giving up the time and calling on the telephone to speak to the supervisor.  That would be time to ask for *another* inconvenience credit for the time I’ve wasted with their lousy support.

False promises

The chat form asks if you want to be e-mailed a transcript.  I clicked yes and never received anything.  Why offer it if you aren’t going to send one?

And finally

And finally, I’d like to commend Con Edison,Verizon and the city/parks/etc for their prompt work in fixing things, removing trees/debris and overall making the area.

Pattern.MULTILINE

eclipse 3.6 (helios) – four good, 1 bad feature

Last summer, I wrote “eclipse 3.5 – four good, 1 bad feature“.  A year later and Eclipse 3.6 is out.   I didn’t try it earlier because I was busy with the SCEA part 1 and Core Spring 3 certifications.  While I may not be part of the official blogathon this time, I decided to use the same format as I did last year for Eclipse 3.5.  Another big difference is that I’ve only been using Eclipse 3.6 for a couple days this time.

Getting started

Quick install with favorite plugins:

My Eclipse 3.5 workspace was in a good state so I decided to use it for 3.6 development.  I did make a copy of it in case I wanted to go back to 3.5.  It wasn’t too time consuming to download/install “Eclipse IDE for Java EE Developers”.  The download was 206 MB, so I left that alone for a little while.  I also installed the plugins I use regularly as I wanted them installed before switching to do development in the new workspace.

  1. Sysdeo – For Tomcat with Eclipse.
  2. Ecl emma – For code coverage.
  3. PMD – For static analysis.
  4. Subversive – For Subversion connectivity.

Workspace setup:

None!  That’s right.  My settings were preserved.  Even settings for the plugins.  I was impressed with how smoothly this went.

Features

Favorite feature #1 – Subversive

The Subversive plugin was updated quite extensively with the Helios release train.  I have a lot to say on this so it is a whole other blog post.

Favorite feature #2 –Virtual Folders

Virtual folders are like a folder of shortcuts.  While you can’t put any “real” files under them, you can put other virtual folders and linked resources.  This has potential.  It means I can put related data together even if it lives in disparate places.

Favorite feature #3 – WORKSPACE_LOC

When you create a linked resource, you can define variables.  This has been the case in past releases too.  The difference is that you had to create a variable for the workspace location yourself.  Now it is built in.  Minor, yes.  But nice to not have to do.

Favorite feature #4 – Multiple quickfix

When writing Java code, “quick fix” is a convenient way to clean up your code.  Now if you have multiple instances of the same issue in a class, Eclipse offers to clean them all up at the same time.

And the worst feature

Code formatting. What happened? This used to work intuitively and well in Eclipse 3.4.  Yes 3.4.  You may have noticed it is my exact same pet peeve from Eclipse 3.5.  I was hoping they would fix it in Eclipse 3.6, but no such luck.  At least they introduce something new that bothers me more.

In Java, it gets rid of my careful placed (for readability) whitespace between lines. I checked the preferences and “number of empty lines to preserve” is set to one. HTML is much worse. If I format a bunch of lines containing one <input> per line, Eclipse turns this

<input type="hidden" name="action" value="moveAllSave" />
<input type="hidden" name="module" value="${moduleName}" />
<input type="hidden" name="source_forum_id" value="${sourceForumId}" />
<input type="hidden" name="log_type" value="0" />
<input type="hidden" name="log_description" value="bulk move from admin console">

into this
<input type="hidden" name="action" value="moveAllSave" /> <input
type="hidden" name="module" value="${moduleName}" /> <input
type="hidden" name="source_forum_id" value="${sourceForumId}" /> <input
type="hidden" name="log_type" value="0" /> <input type="hidden"
name="log_description" value="bulk move from admin console">

Huh? That didn’t happen before. I tried setting “never join lines” but it doesn’t take effect for HTML. I guess I’m not relying on the code formatting. Unfortunate as it will slow things down. But yuck. Just look at it.