The incremental adoption of more agile approaches and Application Lifecycle Management (ALM) toolsets have begun to resolve many of the well-known during software development—problems ranging from lack of transparency to budget overruns, and even cancelled projects. An agile approach can mitigate a lot of these risks by increasing visibility into project progress, and providing an opportunity to re-evaluate direction and business value with every iteration.
Social collaboration tools have become an essential part of this approach. Here are some of the key ways these tools are improving the software development process:
Team rooms in ALM tools are the latest evolution of wikis, blogs, and discussion boards—and they used to be disconnected from the entire development process. They provide members a consistent way to discuss progress, ask questions, raise or clarify issues and risks in real time. They also provide an archive that is accessible to all team members, which works much better than silo email threads dispersed throughout the project.
The backlog view provides a breakdown of the work planned for each sprint. Team capacity is also represented at different levels: by team, project activity (i.e. design, development, testing, etc.), and team member. Another useful view is the task board, where project managers (or scrum masters) can easily move tasks from one status to another (i.e. To-do, In-progress or Done), change task assignments or level of effort.
Working across distances has become commonplace for software projects today. Interoperability and a familiar user interface provide strong motivations to integrate task-specific solutions and generic groupware into collaborative development environments. To support this, software engineers can choose from a wide variety of tools ranging from code editors and issue trackers to Integrated Development Environments (IDE) and web-based portals for hosting projects. Nevertheless, distance creates an additional challenge to development processes because of fewer opportunities for rich interaction and lower frequencies of direct communication. In order to support collaborative work on their projects, software engineers communicate both directly, through meetings and informal conversations, and indirectly, by means of software artifacts.
To achieve the expectations and requirements from the project stakeholders, testing needs to occur throughout the development phase. Adequate tool support is paramount for development teams in their continuous integration test efforts. The majority of these tools are focused on technical support for integration testing, but some also provide the possibility of social interaction. TeamCity is such an integration tool supporting different programming languages, several test frameworks and test coverage engines. It also offers various social possibilities such as product communities, webinars, blogs and multiple ways to instantly notify you about problems, defects or any other changes in your projects.
Javier Becerril, Jose Cortes, and Tjeu De Graff, Deloitte Digital practitioners, authored a point of view article on this topic called “Enabling Social Capabilities in the Software Development Lifecycle.” Contact firstname.lastname@example.org for more information or to read the complete paper.