Sometimes it seems we are awash with tools. Invariably these tools are single-point solutions that are designed to support just one stage of the lifecycle. Often we try to integrate these tools into a comprehensive and connected infrastructure that gives us traceability and automation. Of course there are mega-tools designed to solve every problem for every stage of the lifecycle but they usually only solve basic problems in a basic way.
But if we were to pare it all down to the minimum set of tools what would we choose? We’d need somewhere to collect requests and requirements from the business (Incident and Requirements Management). A way to track items we’d decided to work on (Project and Task Management). Something to design, develop, build and test the solution we create (Integrated Development Environment, IDE). And there’d have to be a way to deploy it (Change and Release Management). So, if it were just you, you’d need not very much, you could get it all from Open Source Software (OSS) solutions and the only cost would be your time to download, install and configure it.
So what about all those other tools out there? Enterprise Architecture, UML Modeling, Project and Portfolio Management, Code Analysis, Test Automation, Software Configuration Management, the list is endless.
Which tools are only appropriate to the large enterprise organization? The question has to be asked another way. What issues does the organization face that they want to address with technology. Highly regulated organizations are going to be looking to automate processes, get visibility and track approvals. Fast-time-to-market businesses will be looking to automate as much as possible and optimize processes. Mission critical businesses where human life is at stake will be looking for support for anything that improves clarity of requirements, facilitates the transparency of processes and drives up quality. An organization focused on the internal costs of developing software is going to focus on tracking activity and charging back.
Large enterprises have large problems: tools are the only way that the volume and scale of their issues can be managed. For most enterprises their toolset has evolved over the decades and frequently they have multiple tools doing the same job as a result of mergers and acquisitions (and clever vendor sales people). When you are the lone entrepreneurial developer you can be effective with a few light-weight tools downloaded for free. When you are a multi-national public company you’re going to need a few more.