I got a chance to take in a fair bit of the ALM EXPO this year... some good talks, still accessible. However, in the opening keynote, I was surprised at how the panelists responded to one of the questions pertinent to this month's journal. The question was: Does size matter for ALM? The answers tended to center around level of implementation and complexity of the application - are the teams operating globally; are they small enough for verbal communication; and so forth.
The implication seemed to be that ALM was not as important for very small organizations as for larger ones. Or at least that a less full implementation was acceptable. And at first glance, this seems to make sense - more people to manage, more files to manage, etc. And there is no question that ALM is necessary for large teams.
But let's put the question in perspective. You're a small firm. You have to produce and deliver a product which competes with those from larger firms. You have to have, not just as good a product as your competitors, but a better product. And you don't have the same amount of staff to draw from to get it done.
Which parts of the ALM function can you afford to skip? Which parts can you afford to do manually? Which parts can the larger competitors afford to do manually? None. None. Some. As a small business, you still have to compete on level terms. But whereas your large competitors can throw manpower at enforcing process, and can put manual processes in place if they don't have their tools quite right, you don't have such spare resources. A small business relies much more on strong tools, good processes and automation simply because it can't afford not to.
So yes, size does matter for ALM. But it's the smaller companies that need the more complete solutions. They still need to track requirements, customer requests, backlogs, builds, source code, test suites, documentation, problems, etc. They still need disaster recovery, backups, integration, etc. And then they need zero administration, strong pre-defined processes, higher levels of automation, and, of course, very high reliability. Who can afford the staff to deal with administration, process customization, lower levels of automation, or down time? Perhaps the larger firms, but definitely not the small ones.
So ALM is critical for small teams. On top of that, add another 20 team members to a small team and you've got a fair bit of change that you must adapt to - so your ALM solution better allow you to adapt. For a large team, 20 new members is hardly a blip, and if the ALM solution doesn't adapt, just throw some manual labour at it. Growth is another reason small teams need ALM.
So why did the panelists suggest that perhaps some ALM functions were less critical for small business? This is a key question and it tells us a lot about our industry - where it is.
The answer comes down to one of CM Generations. Most CM solutions today are mid to late 2nd generation solutions, with some elements of 3rd generation capabilities. But these solutions tend to come along with significant millstones:
- Heavy infrastructure
- Lots of administration
- Costly customization, in-house or contracted
- Significant data mining expertise
- High license costs
- Significant glue/glue maintenance for non-monolithic solutions
And the list goes on. Are they better than simple source code solutions? Definitely. Are they worth the extra costs? Definitely. Would I recommend them. Well... not so definitely. Why? Because 3G and 4G CM solutions don't impose the same big-IT requirements - there are no millstones around the project neck.
So if you're familiar with 2G systems, but not as familiar with later generation systems, you understand that small teams simply don't have the resources to implement full ALM solutions. They can't affort the administration, license and infrastructure costs, expertise for customization, glue, and data mining. I would have to believe that that was the perspective of our panelists. And they're right.
But if you're more familiar with 3G and 4G systems,