Editorial Note: I originally wrote this post for the SmartBear blog. You can check out the original here, at their site.
Developer news sites, blogs, books, and tutorials tend to speak at length about how developers should collaborate with one another to maximize team effectiveness. The subject of how developers should collaborate with people outside of their team often gets shorter shrift, however.
Personally, I find this to be a shame. I think it tends to reinforce the stereotype that developers do a poor job of human interaction and need an organizational layer of people to translate between them and normal humans. I would prefer to live in a world where people didn’t draw distinctions between “the developers” and “the business” because it was simply assumed that software development was part of the business.
For this reason, I’d like to offer some thoughts on how you, as a developer, can most effectively collaborate with non-developers — people outside of your team. I will offer the caveat that some teams, particularly Scrum teams, are cross functional and thus include non-developers in the team itself. I understand that, but for the purpose of speaking to the broadest audience, I will presuppose that your team is specialized in the sense that it is made up exclusively of software developers. Besides, if your team does include other disciplines, it isn’t as if advice on how to collaborate with those folks magically becomes invalid.
Before getting into specifics, I want to mention two universal principles. The first I will call out only briefly now and not again because it should be common sense and go without saying. But, in case it doesn’t, treat these colleagues with courtesy and respect. They are intelligent knowledge workers that simply have a different specialty than you do, and you ought to treat them as such. If you can’t do it simply as part of being a decent human being, do it because acting like a primadonna is career limiting. The second principle I’ll mention is that, because these collaborators are intelligent knowledge workers with a different specialty, you should endeavor to learn from them to improve your own work.