2

In a software development organization doing contracting work, where there are typically only a handful of developers working for any one customer and there is a fairly large number of customers, what are good ways of building a common culture and developing the skills of the individual developers?

Work practices within each project are typically largely set by the customer (though it might be possible to exert some influence) and the projects tend to be full time and long term. This means developers have more attachment to the customer than to their own organization and each learn idiosyncratic ways rather than a common culture. Many of them are rather junior and will therefore be easily influenced by what they see in a project.

An obvious idea would be to have team meetings where teams can exchange experiences and discuss best practice, but I'm not sure how to keep these productive. Team members will also tend to be reluctant to bring up problems in their projects at such meetings.

Any ideas or experiences?

2

There is no silver bullet for this (either). And much of the answers that people are going to give are contextual to their organizations. I'm going to offer one viewpoint since we're in kind of a similar situation with most of our people doing sub-contracting and thus working very closely with our client organizations and not spending time with our own people.

The simple answer is this: You have to lower your expectations on how many hours they can charge the customer for in order for them to spend more time together. We have a policy that we aim for maximum 80% chargeable work - so we can spend the rest 20% spending time together and work our organizations culture. That means at least on day per week. We're also aiming for people to rotate out of sub-contracting and into our own projects on regular intervals so people can actually work together.

What I've seen from other companies is that they arrange lunches for their people working at client's offices etc. and some even organize regular evening activities for people.

Whatever you do the key is to get people together. You don't have to have a set agenda for those meetings. Just arrange a hack day or whatever and just let people talk and get to know each other.

1

I work for a mobile app development agency working as the "remote software development team" for about 75% of its clients. And although the majority of us work together 5 days a week in the same office building, it's just a couple of us working on the same project. So I get what you're saying.

In order to ensure people connecting throughout the agency, we organized 2 weekend escapades this year alone. The first one was a full on team building weekend, while the second one, one from which we just got back, was the agency's 4 year anniversary weekend.

I have no idea how much money the company spent for these two escapades, but what I can tell you is that it was totally worth it. We also go out at least once a month as a team, just out for a drink, and we organize movie nights at the office; and we have Secret Santa and a Christmas Dinner coming up. Building personal relationships will definitely improve the work the team does.

  • 1
    Thanks for sharing your experience! I can totally see that such events generally encourage bonding and create a feeling of "us", but do you feel it also led to increased learning from your colleagues? Would you be more likely to go ask someone a technical question because of it? And did it help spread best practices? (i'm not being polemical, i'm genuinely wondering) – ehrencrona Nov 28 '17 at 11:22
0

You should take some time to read through the blog at Trello. They post fairly regularly on the topic as they are a very remote-heavy employer.

I read an interesting blog post from Trello recently on how they manage to have off site team building days on a budget that had some interesting ideas.

The key seems to be getting people together, and making sure they have time to do so.

Be sure to pay close attention to that second part: making sure they have time to do so.

As my own anecdote, I worked for a contracting firm that would regularly have team-building events for its employees, but they still expected 100% billable to the client. This resulted in the billable employees being chained to their desks while the rest of the company took a half-day to barbecue. Not surprisingly, this led to resentment among the billable employees since the rest of the company was "getting paid to party" from the money the billable employees were earning. Overlooking the need to allow time resulted in the events doing more to harm the culture and camaraderie than it did to help.

0

You can try some of the following :

  • Checklists. Create checklist for frequent and important tasks. Make sure everybody applies them.
  • Standard procedures. Create and document standard workflows for the main services offered by your company.
  • Sme methodology. For example use the same flavour of agile development for all projects.
  • Guidelines. Document, train and enforce guidelines.
  • Common tools. Whenever possible use for all customers the same tools. For example use the same bug tracking software.
  • Rotation of employees. Relocate senior employees to a different project for 2-3 weeks per year, to promote knowledge sharing and bonding.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.