Software development is a team sport and today’s developers, perhaps more than any other types of workers, have a need to collaborate with others to get their jobs done.
In the past, when software development cycles were up to 18 months and longer, developers could afford to go heads-down and work solitarily on their piece of code or on their portion of a project and submit it at a required time.
But in today’s world of Agile application development and continuous delivery, developers need to be in constant contact with others to know where everybody is in the process and what’s going on when.
In short, software development, which many observers view as the world of sometimes anti-social geeks, has gone social.
Developers are using all sorts of social media and tools to support collaborative projects, including Twitter, Facebook, and Google+. Or they are turning to developer-centric sites like GitHub, Stack Overflow and Reddit. Then there are social platforms like IBM Connections and Yammer. Meanwhile, developers’ tools, including major integrated development environments (IDEs), are evolving to feature more social components to become collaborative development environments.
“Developers work in teams and require rich interaction,” said Al Hilwa, an analyst with IDC. “This is especially so as approaches shift to Agile methodologies involving continuous delivery of software. So it stands to reason that they want collaborative tools that can keep up with that intensity, and indeed, social tools are increasingly being used to support the development process.”
In addition to collaboration tools like Atlassian’s JIRA or forums like Stack Overflow, “social capabilities are actually being integrated into developer tools as features. I expect tools for project management, bug tracking, testing, and for almost any phase of the development process to sport profiles, discussion forums, wikis, message streams, etc.,” Hilwa said.
Mik Kersten, who based his computer science Ph.D. around the concept of collaboration between developers and others in the IT environment, said social is becoming ever more relevant to developers. Developers are both the creators and the first adopters of social media technologies, Kersten said.
“Building software is inherently a creative and social activity,” he said. “Yet if you look inside a typical organization, you’d think otherwise, due to the mess of disconnected tools you see developers using and switching between to get work done.”
Kersten created Eclipse Mylyn, a task and application lifecycle management (ALM) framework for developers, and went on to found and become CEO of Tasktop Technologies, a maker of ALM integration tools.
What inspired Kersten in the early 2000s was seeing that the social media future was forming in the hands of open-source teams. Passionate individuals who were scattered across the globe created tools that externalized their social interactions into a social landscape built around code, he noted.
“Tools like Bugzilla, Git and Gerrit are little more than social activity streams that organize conversations around code and builds, rather than selfies and cat videos,” he said. “All that Mylyn did was to give the developer a social task inbox where they could connect to all the activity streams for projects they contributed to or followed.”
How Software Developers Use Social Collaboration in the Agile Age
When talking about social media and development work, “I think it depends on how you categorize your social media sites,” said Robert Treat, CEO of OmniTI, a Fulton, Md.-based development and consulting shop.
“For things like Facebook, Twitter or Google+, those sites have replaced other sources as a traditional place to find out new information on industry trends, new papers being published, or new software releases. Occasionally, folks will also use those methods to post specific questions, but it is less common than you might think, primarily due to other, better options,” Treat said.
However, Treat told eWEEK, “The real darlings of social media and collaborative development for developers, especially in the context of those leveraging open-source code, are GitHub and Stack Overflow.”
“GitHub provides a means for collaborative code exchange, and Stack Overflow provides Q&A support around technical topics, and has a large archive of questions for people to search. I’ve definitely had developers mention that they will often turn to Google to search for answers to a problem, and many times they find that answer by way of Stack Overflow.”
Yet this should not be seen as a knock on the traditional means of collaborative development such as email lists and Internet Relay Chat rooms, Treat said. “These are still wildly popular, and for focused topical discussion I think they still beat other forms of communication. The conversational nature of both forms and the ability to easily include code examples really helps foster development.”
Meanwhile, major vendors are applying social both to their products and incorporating it into their internal development environments. “The key in all of this is collaboration,” Aaron Bjork, principal group manager of cloud development services at Microsoft, told eWEEK.
“We make sure developers are connected to the people they need to be connected to to make good decisions, to write great code and continue to get their jobs done. We’re spending a lot of time in the IDE as well as in our ALM toolset to make sure we’re creating those collaboration points for developers very naturally.”
One of the social tools Microsoft’s development organization uses is UserVoice, which provides organizations with insight into what their customers are saying about their product.
“We use tools like UserVoice to really get a sense for what we need to go do next and what customers are telling us their pain points are,” Bjork said. “UserVoice gives me this place where I can at-a-glance focus on what should be at the top of my backlog. That has become a really important channel.”
How Software Developers Use Social Collaboration in the Agile Age
On the flip side, however, Twitter has become an “amazing tool” for Microsoft to learn what people are saying about its products—what they like, what’s difficult and what’s really good. “A great example of that is with our service business; we release updates every three weeks, and we’ve been doing this for a couple of years now,” Bjork said.
“We’ll see the Twitter traffic trend up immediately after an update. And you can see if a new feature we put out there is exciting people. And when you’ve got something going wrong with a service or you’ve got problems, you instantly know by looking at different Twitter feeds and following different people and different tags. We watch Twitter to see how people respond to a new release.”
From a personal development perspective, Bjork said he uses Twitter to collaborate with folks around the world, to trade different coding patterns and different ideas that they have. He also noted that developers in his group spend a lot of time on sites like Reddit and Stack Overflow to make sure they’re getting the right answers to questions and to make sure they’re up on the latest ideas.
“I see developers using that in their daily lives, but I don’t see it being a center of their lives,” he said. “It’s not something they rely on every day; I think it’s something they leverage as needed.”
The sites are not only useful for finding information but for finding and meeting other developers.
“As a product manager, I could not know all the developers out there,” said Luis Benitez, product manager for IBM SmartCloud Connections and IBM Connections. “But by using a platform like Stack Overflow, where I get to meet developers from all over the world, I get to learn interesting use cases of how people are using our APIs and SDKs to build whatever they want. So it’s a good way to collect information and then funnel it to one of our developers,” Benitez said.
OmniTI’s Treat concurred. “The one value that continues to hit home by all of these methods is that the larger tech community can provide you with more help and information that you can find within the walls of any company you might work at,” he said. “Being able to collaborate with others and having secondary avenues to explore for knowledge are of great value to developers and really of value to business, as well.”
Moreover, the developer’s social network world has turned into a massive mess, much worse than for typical workers trying to reconcile their Facebook, Google+ and LinkedIn streams, Tasktop’s Kersten asserted. “Their Agile project manager uses one tool; they use their own issue tracker; much of their social communication happens in code reviews; and defects and requirements are tracked [elsewhere] while conversations with customers happen in a ticketing tool,” he said.
How Software Developers Use Social Collaboration in the Agile Age
“The sheer proliferation of these tools, each with their own functionality, has meant that we are seeing many developers fall out of that elegant word of collaborating on social streams in their issue tracker, and back into handling their interactions via email,” Kersten said.
In Kersten’s estimation, the grand problem becomes how to connect all of these social networks so the developer can get the benefits of the many new best-of-breed tools that exist for the application lifecycle, without needing to maintain and track activity in each one independently.
“With that vision of how great social collaboration in open source was when we first created it, and the promise of all the new developer-centric social tools appearing on the market today, I’ve dedicated myself entirely to creating a new federation infrastructure layer for social collaboration across the software lifecycle,” he said. “I see it as the only way to avoid having developers go insane as the complexity of our code bases and collaboration needs continue to grow.”
To add to the collaborative nature of its toolset, last fall, Microsoft introduced a new feature called CodeLens in Visual Studio 2013 , which is a heads-up display for code. The heads-up display takes developers through their code and tells them whether there are any upcoming changes or other issues that might alter the code.
“That’s an example of how people are using a lot of the data they have inside their ALM platform to create collaboration points in that platform and to make those points happen early instead of happening when there’s a bug in the code,” Bjork said.
Another thing Microsoft has inside Visual Studio Online and Team Foundation Server is a virtual team room, which is essentially a rich data feed of all the builds that are happening inside of a development team. “This is all coming to you in a feed, and you’re able to chat and have a conversation in the context of all that data,” Bjork added. “It creates a collaboration point for a group of people working together.”
In addition, the Visual Studio work item system has become a platform for a lot of other collaboration. The work items include the items in a developer’s backlog or the tasks they perform; even the code reviews and test cases become work items.
A classic example is a digital burn-down chart that is displayed and developers can access from anywhere. Burn-down charts, often used in Agile software development methodologies, are graphical representations of work left to do versus time.
“In Agile, we always talk about ‘failing fast.’ It’s kind of an odd thing because failure is viewed as a bad thing, but it’s ultimately something you can learn from and it can ultimately help you get to your destination,” Bjork said. “I think a lot of these collaboration tools help us do that, as well. They help to connect you so that if you’re going to make a mistake, you’re going to make it early before it gets to the main code that customers are using.”
How Software Developers Use Social Collaboration in the Agile Age
Microsoft also provides a code review tool that allows you to initiate a code review before you check something in and take that through a series of reviews with people and they can comment on that code and approve it. This creates a workflow that is collaborative. Microsoft also provides a lightweight code commenting feature that enables developers to annotate their code and share it with others.
“It’s powerful because it creates an interactive time-shifted conversation,” Bjork said. “You can see who has made different comments on the code over a timeline, and you can learn from that. That lightweight ability to enter a piece of code and mark it up is really powerful for developers and is a great collaboration tool.”
Other major vendors, such as IBM, do things in a similar manner. However IBM employs its own collaborative development environment, Rational Team Concert, along with its social business tool, IBM Connections.
“What happens is, every time a new product is created, we associate that with a community in Connections,” IBM’s Benitez said. “That way, developers can interact seamlessly. We’ve become more agile because the sales people or the field teams can post questions on Connections and the developers can get answers directly from the platform where they live. They live and die inside Rational Team Concert,” he said. “We also use Connections to create a community of developers where they can all communicate with each other, ask questions, share best practices and share tips and code,” Benitez said.
Konrad Lagarde, manager of partner integrations for IBM’s SmartCloud Social Business, said developers at Big Blue also use IBM Sametime to communicate with each other in real time and ask and answer questions as well as to share pieces of code in real time.
“We have large customers out there using these products for the same purpose,” Benitez said.
“What’s neat is it’s more than just developers” who need and use these tools to collaborate, Lagarde said. “You’ve got the product managers, the release managers, the testers, etc. You’re breaking down the barriers between these teams that were passing things over the fence before. Now everybody’s in it together.”
Like Kersten, Microsoft’s Bjork said the movement toward Agile and open-source development has drastically changed the software development process.
“The Agile movement has pushed us to find new and better ways to help development teams,” Bjork said. “And that’s not just developers, but that’s software engineers, that’s testers, that’s product owners. We want to create ways for those people to interact, collaborate and talk about their work all the time and find low-barrier-to-entry ways to do that,” Bjork said.
Moreover, “the open-source movement has created a different conversation around code.” he added. “Where it used to be a different conversation about protecting my IP and not letting anybody see my code before, now it’s about sharing my code and getting it in the hands of others. Because I know if I get my code into the hands of other people, the code will get better.”