Collaborative Development

Collaborative development: how did we get here?

by on October 14, 2013 9:47 am

I have been doing software development for over 30 years and it has been fun to watch how the idea of collaboration has evolved. In the early 80s, in one of my first assignments as a developer I got my very own cubicle. It was in one of the far corners of a cube farm that worked really well as a cave where I could go and get my work done with only a few distractions. I was near the printer and its constant buzzing, chirping, and groaning became a white noise I that I eventually got used to. Back then, we had 3278 terminals and the keyboards were not quiet; the sound of fifty keyboards all clickety-clacking at the same time provided another type of sound that drowned out the all-too-often personal chatter. Yes, we did need to get up occasionally and ask a fellow developer a question and even less frequently brainstorm about an idea. But on a normal day, we all sat in our caves sprinting towards all of our somewhat-connected individual goals.

As the years went by and I progressed in my career, I got to move into an office. The only difference in collaboration was that I could actually close my door if I needed to concentrate on something and those who hadn’t reached my lofty level would more often get up to come see me when they needed something. Back then, in the 90s, most communication was face-to-face or via email systems like PROFS and LOTUS NOTES. The advent of email was important because it meant you could make your point without being interrupted and it made it especially easy to take cheap shots at those you didn’t like since you didn’t have to look them in the eye. It also meant more of what you said was recorded for posterity, just ask Oliver North (if you’re under 40, you might have to look that one up). While email allowed us to communicate with our teams without having to actually get up and walk, we were still a long way from being truly collaborative.

Over the next decade, companies realized that office space was expensive and could be a lot cheaper if we could squeeze more people into less space. Cube farms started to return and people started sitting closer together again. Instant messaging began to arrive in the work environment and individuals had even more opportunity to mix it up with the other individuals that were closing in around them. People still loved having their own space, though, that they could personalize and sometimes hide out in.

But as office space concepts were evolving, so were ideas about producing high quality software on more aggressive schedules. Waterfall processes that were built on “walled off” teams that depended on expansive documentation as communication devices were being thrown out or at least altered in favor of iterative and incremental approaches. Lean practices used for manufacturing were being retrofitted for use in building software. And as the formal processes changed, so did the expectations for development teams and how they communicated with each other and other teams.

The new mantras are “be agile,” “eliminate waste,” and “collaborate.” No longer are individuals being rewarded by being cave dwellers. The concept of team goals over individual achievements has made those of us who were rewarded for outperforming the person in the cube next to us rethink what success means in our new development environment.

So here we are in 2013, no longer hiding out in our cubes waiting on the next assignment but, in some cases, sitting elbow to elbow with team mates. Are we now automatically collaborative? I would suggest we are not. As individuals, we still need our own space and our own time alone. Our skills as development team members are still founded in our problem-solving talents and while some problems lend themselves to brainstorming and team synergy, others require us to sit our desks and figure things out. However, modern-day processes like scrum or kanban expect us to be in constant communication with our team mates.So where is the happy medium?

Here are my recommendations for being the right degree of collaborative:

  1. Get to know your teammates (even the ones you wouldn’t normally hang out with). Yes, every team has annoying teammates (someone on your team probably thinks YOU are that person). As a team, you have to get over it and figure out how to engage everyone’s talents effectively. Be professional and try to be friendly to everyone.
  2. Listen up and speak up. Some people on your team have an opinion about everything (I fit this category) and some are quiet and reserved. Give everyone a chance to speak, keep an open mind, and don’t be afraid to offer up ideas.
  3. Offer help. Not everyone has your skills, experience or perspective. When others are struggling, help out by offering advice or insight, but don’t shove it down people’s throats. And when you are the one that needs help, don’t waste a lot of time. Once you’ve tried to figure out problems on your own, ask for help and don’t wait until the last minute.
  4. Be selective about interruptions. It’s a two-way street. Don’t ask the person right next to you to figure out every problem just because they are there. It’s good to work things out as a team, but try to consolidate your questions rather than constantly interrupting. If it’s something that two of you really need to conquer together, pair programming (or testing or designing or documenting) works really well.
  5. Get up out of your chair. Email, instant messaging, phone calls, and texting are good substitutes for face-to-face communications when necessary, but the best way to communicate is to get up and go talk to people. Hopefully, your work environment makes it easy to just turn around or stand up and look to find the person you need to talk to. If it doesn’t, then you have to make an effort. Don’t leave out those who are seated further away.
  6. Use high quality head phones. We all need our private time to concentrate and get work done. These days we sit in noisier, more interruption-prone environments and finding a quiet corner is impossible. Getting lost in your favorite musical getaway will often provide that solace you are looking for, but leaky head phones disturb those around you.

I doubt we will ever go back to the days when we were encouraged to go off and solve problems on our own, at least on medium or large teams. To that end, always remember, software development is a team sport; continue to play hard and support the team.

— Keith Shakib,

  • Share:

4 Responses to “Collaborative development: how did we get here?”

  1. Lou Mauget says:


    Well-said, and accurate.

    -Lou Mauget (sent from my workbench in a big room full of occupied workbenches – picture available upon request)

  2. Srinath says:

    Nice article on collaboration through the early times to the current day. Liked the recommendations on how to be more collaborative in our teams !!

Leave a Reply

Things Twitter is Talking About
  • RT @JIRA: #Agile teams webinar starts in 30 mins. It's not too late to register:
    October 23, 2014 at 1:35 PM
  • Pssst... Our free monthly newsletter comes out tomorrow with dev tips/articles via email. Not on the list? Sign up:
    October 22, 2014 at 1:46 PM
  • How do we harness the power of callbacks without the confusing mess of nested functions in #JavaScript? Promises -
    October 21, 2014 at 2:18 PM
  • Pssst... Our free monthly newsletter comes out tomorrow with dev tips/articles via email. Not on the list? Sign up:
    October 21, 2014 at 12:05 PM
  • Did you know today is Clean Your Virtual Desktop Day? It really is: Celebrate by organizing your desktop files.
    October 20, 2014 at 4:50 PM
  • Don't miss the newest post from @bricemciver: Make Me a Promise - #JavaScript
    October 20, 2014 at 10:43 AM
  • RT @DZone: #Docker 1.3 Releases with Security, Signed Images, and Process Injection by @bendzone #devops
    October 17, 2014 at 10:04 AM
  • If you have 15+ years #Java exp, you don't expect to be puzzled debugging a null pointer exception. See an exception:
    October 17, 2014 at 9:51 AM
  • Many on our team attended the #Royals victory last night & @cdesalvo even got a selfie with the Gov. Go #KansasCity!
    October 16, 2014 at 3:39 PM
  • Interesting ExplainLikeI'm5 talk: Why do companies develop iOS first when Android holds 70% of the 'Smart' Market?
    October 16, 2014 at 12:26 PM
  • We're looking for a top-notch #Java developer to join our team. Learn more about our company culture & the role -
    October 16, 2014 at 9:08 AM
  • Want to learn to create custom #Java annotations & process them using the Reflection API? @jhackett01's tutorials -
    October 15, 2014 at 11:43 AM
  • Happy Ada Lovelace Day! It's a celebration of the achievements of women in STEM - if there's a woman in tech that you admire, tell her today
    October 15, 2014 at 9:13 AM
  • .@fpmoles We absolutely agree - thanks for reading!
    October 15, 2014 at 8:13 AM
  • With 15 yrs exp, @bmongar didn't expect surprise when debugging a null pointer exception. Why it puzzled him - #Java
    October 14, 2014 at 11:20 AM
  • #Royals fans with tickets to tonight's canceled game, here's what you need to know -
    October 13, 2014 at 4:23 PM
  • RT @UzilitySoftware: Watch as Wayne explains to the boss, Marvin, what an agile board is about. #scrumalliance #scrum…
    October 13, 2014 at 12:01 PM
  • Getting started with #MongoDB? (Flexible #NoSQL for Humongous Data) Here's a free cheat sheet from the folks @Dzone -
    October 13, 2014 at 11:10 AM
  • Brad Mongar's newest post is live on the Keyhole blog - #Java and the Sweet Science
    October 13, 2014 at 8:59 AM
  • RT @housecor: If users have share links to your web app like this: "Go to here. Then click here. Then here." You're doing it wrong. #de
    October 10, 2014 at 2:18 PM
Keyhole Software
8900 State Line Road, Suite 455
Leawood, KS 66206
ph: 877-521-7769
© 2014 Keyhole Software, LLC. All rights reserved.