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, asktheteam@keyholesoftware.com

  • Share:

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

  1. Lou Mauget says:

    Keith:

    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
  • Have a happy & safe holiday weekend!
    August 29, 2014 at 3:55 PM
  • Useful #JAXB primer that illustrates the power from tools & frameworks that unobtrusively interact with POJOs - http://t.co/J1s5DpcsCp
    August 29, 2014 at 3:19 PM
  • The Keyhole team fantasy football league begins! Huge thanks to our commissioner @zachagardner. Good luck to all in the virtual gridiron!
    August 28, 2014 at 5:30 PM
  • Shout out to last year's winner of our Keyhole #fantasyfootball league - Adi Rosenblum (@adidas28). Will his reign continue? :-)
    August 28, 2014 at 5:30 PM
  • @dashaun That is the perfect way to put it - we are very excited! Great to meet you officially.
    August 28, 2014 at 4:53 PM
  • Check out a quick intro to Functional Reactive Programing and #JavaScript - http://t.co/4LSt6aPJvG #FRP http://t.co/m6G1Kqbwyi
    August 28, 2014 at 4:06 PM
  • When you pair #JAXB & #JPA, you can expect some "gotchas." Here are techniques to help you overcome the hurdles - http://t.co/J1s5DpcsCp
    August 27, 2014 at 1:56 PM
  • Interesting perspective - Famo.us talks big, but jQuery Foundation isn't worried: http://t.co/o9lLpPoh2G Thoughts?
    August 27, 2014 at 12:41 PM
  • We are delighted to say that RJ (@RJvXP) & Donna (@dkbdevlab) join Keyhole today. Welcome to the team!
    August 27, 2014 at 9:22 AM
  • RT @codeproject: Learning MVC - Part 5 Repository Pattern in MVC3 Application with Entity Framework by Akhil Mittal http://t.co/z603gpAH…
    August 27, 2014 at 9:15 AM
  • Know a bright new grad looking to learn? We're seeking a team member on our business side of the Keyhole house - http://t.co/GDvFVmoMF9
    August 26, 2014 at 3:29 PM
  • When you pair #JAXB & #JPA, you can expect to encounter some "gotchas." Techniques & learning to overcome hurdles - http://t.co/J1s5DpcsCp
    August 26, 2014 at 11:12 AM
  • Don't miss Mark Adelsberger's newest post on the Keyhole blog: #JAXB – A Newcomer’s Perspective, Part 2 http://t.co/J1s5DpcsCp
    August 25, 2014 at 1:21 PM
  • A huge welcome to Mike Schlatter who joins the KHS team today!
    August 25, 2014 at 12:33 PM
  • Never used JAXB? Check out a simple usage pattern that pairs #JAXB’s data binding capabilities with JPA - http://t.co/Ki9G04pLR6
    August 22, 2014 at 8:35 AM
  • Check out a quick intro to Functional Reactive Programing and #JavaScript - http://t.co/YGSsz5eynl #FRP http://t.co/m6G1Kqbwyi
    August 21, 2014 at 11:32 AM
  • Our team is riding #BikeMS to support the fight against Multiple Sclerosis. Get involved - http://t.co/GGObSd073P http://t.co/vZpWRXkQ3z
    August 21, 2014 at 9:09 AM
  • @dtkachev Thanks for the tweet! The server is back up now - sorry for the inconvenience. Have a good day!
    August 21, 2014 at 9:03 AM
  • RT @m_evans10: @joewalnes A SQL query goes into a bar, walks up to two tables and asks, "Can I join you?"
    August 20, 2014 at 3:55 PM
  • Have you read @wdpitt's newest book? - Web Essentials using #JavaScript & #HTML5. Free PDF download via @InfoQ: http://t.co/lesuPJ770I
    August 20, 2014 at 2:31 PM
Keyhole Software
8900 State Line Road, Suite 455
Leawood, KS 66206
ph: 877-521-7769
© 2014 Keyhole Software, LLC. All rights reserved.