|
Agile Skip forward to today and one finds that “Agile” is being scaled up to the point where it bears little relationship to the early days. According to Wikipedia[i], Agile include the following well known methods:
And to this list I should probably add Kanban. One of the things that happens when any of these scales up, is that parts of the process that had previously been abandoned have to be reimplemented. Such things as increased documentation, multiple parallel development efforts (variants, sprints, etc.), active management, difficulty in getting the proper stakeholder feedback due to the shear increase in the number of potential stakeholders, and the need to support multiple release tracks for existing releases. None of this means that “Agile” will be going away anytime soon. What it does mean is that increased infrastructure (tools) will be put in place to facilitate the changes and that the tools themselves will force procedures to be followed. Either that, or human resources will have to be used instead. ALM and BMS BMS tools are primarily solutions to running builds of various types (for example: normal, pre-flight[ii] or Continuous Integration[iii]). Many of today's FOSS[iv] BMS systems are tailored towards the Java language and may support Ant and/or Maven “build scripts.” An example of an up-and-coming FOSS BMS is Hudson. BMS tools provide an infrastructure, or framework, in which multiple CM tool chains (including integrations to Version Control, DIET[v] and reporting tools) can coexist and that multiple codebases can be supported. ALM tools provide all of this plus gate-keeping (electronic approval validation and capture), post-build test execution and results collection, and Release Management functionality. They also are not normally limited to a single language. The biggest problem with ALM tools is, since they are inherently more flexible and powerful, they currently take more to set up and administer. Technically and philosophically there is no reason for both tool sets to coexist, but Management typically wants to settle on only one tool set. Since BMSs are simpler, have a lower overhead and administrative cost and are often “free,” the tendency is to use them. From there it is only a matter of time until efforts are made to either extend them to provide ALM functionality or to add additional tools to provide the missing functionality. If this happens, it will end up costing much more in the long run, even if the ALM tool set is a commercial offering. A smaller, but no less important problem is when multiple development efforts are ongoing and not all of them require the overhead of an ALM. This becomes a problem when development team members are responsible for setting up, configuring and administering ALM tools for their efforts instead of there being a central person or group responsible for performing these functions. Unfortunately, even when there is a CM person or group within an organization they are overloaded and don't have time to do per-project customizations. This is unfortunate from the organizational level too as it means that things like security, traceability, required retention and auditability will probably not be implemented either correctly or consistently. CM in the Cloud
This all looks good, but there are corresponding disadvantages too:
For FOSS development projects or for small, low overhead projects, using CM in the Cloud is not a bad option. For larger or multiple projects, an organization should consider bringing CM in-house as it will eventually cheaper and will be more secure. In Summary [i] The Wikipedia link is http://en.wikipedia.org/wiki/Agile_software_development#Agile_methods [ii] Pre-flight builds are those that are performed prior to allowing changes to be committed to a Version Control repository. Whether or not these builds are performed depends on a lot of conditions, including the amount of time and/or resources a build requires or if CI builds are also performed. [iii] Continuous Integration, or CI, builds are performed any time the content of a codebase is changed. There is often a slight delay in initiating a CI build to allow multiple commits to the same codebase to be made, especially when file changes are being tracked instead of Change Sets. [iv] FOSS – Free/Open Source Software. [v] DIET – Defect, Issue, Enhancement Tracking. Tools in this category include Bugzilla, Jira and Rally – though Rally also fills a role as a Project Management tool. About the Author Ben Weatherall is currently based in Fort Worth, Texas where he practices Practical CM on a daily basis supporting a modified Agile-SCRUM development methodology. He uses a combination of AccuRev, CVS, Bugzilla and AnthillPro (as well as custom tools). He is a member of IEEE, ASEE (Association of Software Engineering Excellence – The SEI’s Dallas based SPIN Affiliate), FWLUG (Fort Worth Linux Uscers Group), NTLUG (North Texas Linux Users Group) and PLUG (Phoenix Linux Users Group).
Set as favorite
Bookmark
Email this
Hits: 1090 Trackback(0)Comments (0)
|




For 2011 I picked three topics to focus on: Agile up-scaling, Application Lifecycle Management versus Build Management Systems and CM in the Cloud. These seem to be to me the three things that are garnering the most Management attention these days, so it seems appropriate...
