I was thinking today, observing how our multiple teams (spread across many customer projects) at Oasis Digital and Expium collaborate. There is an interesting pattern of collaboration that spans the very different types of work at these two firms I’m involved in.
For background, the work at Expium is all about Atlassian products, and the work at Oasis Digital often touches Angular in some way, in conjunction with other full-stack technologies, because we are most well-known for Angular. I don’t think today’s thought really depends to any specific technology, but I’ll tell it from a software development point of view.
We have been using Angular for about as long as it is possible to do so. We started back in the Alpha sequence and have built a great amount of code for many customers since then. We’ve trained thousands of developers. And personally, I have written a lot of Angular code, including code used in teaching Angular Boot Camp, which means it is example code, very heavily scrutinized and polished.
Yet even in this context, I (and many others) benefit greatly from routinely chatting (text, video, voice, whatever) with fellow developers about any even-slightly-interesting coding issue that comes up. There is always someone who has a particularly insightful or experienced suggestion. The result is more, better polished, more correct, useful code in less time. The other result is more shared and cross-pollinated experience. We are all getting better, faster, together – a tremendous benefit for us, for our projects, for our customers.
Yet often, it takes a conscious effort to keep the process moving, to help anyone new to our team join our technical community in an ongoing (rather than sporadic) way. It can be very challenging for some people to both keep primarily in context on a specific project, while also participating in project-neutral technical discussion.
I’d love to hear about other technical teams’ experience on this kind of thing. Do your teams stay in touch cross-project, and ask each other for tips on little things? Or does everyone try their best to solve each problem without having to talk to anyone, and only reach out to others as a last resort?