Some time ago I had written about having too many roles in a software team. A similar issue that makes me think is, are there too many systems in a software team? The increasing complexity of the software development has been answered by an increasing number of tools for managing that development.
Accessing Five Systems Daily
Experience shows that a typical software team member touches a minimum of FIVE systems to get his/her job done. These include
- Defect Management Systems (JIRA, Bugzilla etc.)
- Document Management Systems (Google Drive, Dropbox, MS SharePoint, Confluence etc.)
- Version Control Systems (SVN, GIT, Bitbucket, TFS etc.)
- Collaboration Systems (Emails, Chats etc.)
- Project Management Systems (Timesheets, Scheduling Software etc.)
The issue is exacerbated because in many cases there are multiple installations of these systems in a single software project – One for the Customer and one for Internal tracking. For example, the customer might report their defects in JIRA and the internal testing team might log their defects in Bugzilla (we do not want the customer to see all the dirt, do we?).
Each of these systems have their own UI and advantages/limitations. Logging into and searching through these systems has a significant impact on the team’s productivity and customer response times. Also, the lack of full integration between these systems opens up many opportunities for miscommunication and user-error throughout the software lifecycle leading to lot of manual efforts and rework. The situation worsens if teams working on those systems are geographically isolated and on different time zones.
Searching Impacts Productivity
The research from industry leading market intelligence and advisory firms indicate that a knowledge worker spends more than 6 hours each week:
- Searching for information
- Waiting for information
- Recreating content because of not finding the required information on time.
What this means is that, effectively a 20 member software team is losing around 40 person months a year. This is a staggering loss of productivity!
Is it possible to avoid having these multiple systems in a software team? There are some who recommend Integrated ALM tools to overcome this predicament. ALM tools definitely have some benefits – seamless collaboration across systems, traceability across all phases and artifacts, providing a consolidated view to all the stakeholders etc. But, integrated ALM tools rarely have the best-of-breed tools. For example, if the requirements management tool is robust, the release management tool is not up to the mark and so on. So some compromises have to be made. Also, ALM tools come with their own limitations – expensive, rigid customizations, maintenance overheads etc. Small teams/companies might not be able to absorb these overheads.
So, what is the solution? Given the complexity of today’s software development environment, I don’t think there is a simple answer.
We developed Accio to help overcome some of these searching across systems challenges. It connects to multiple data sources and brings the search results to a single window so that users need not login into multiple systems to search for information and at the same time have a consolidated view. We believe this would help improve productivity of the software teams.