|
- or -
Management Likes Integration, But Nothing Works As Advertised!
Now let’s take a look at categories of tools that normally need to integrate with one or more of these components:
Project Management Tools
Development Tools
Build Management Tools
Packaging/Deployment Tools
Manual and Automated Test Tools
And finally, let’s list the presentation methods (interface types) that most organizations want to have available:
Of course, we want this to be able to be used remotely in a secure fashion as well as when the user is disconnected from the network entirely. Speed is of no concern, so long as no delay for any single actions or aggregate action exceeds half a second. And don’t forget that each tool suite needs to support processes, both formal and informal, ranging from Agile pair-programming to classic Waterfall with formal review and approval cycles. We now have enough for a three dimensional matrix, but even without going to that level of effort, this shows the scope of the problem. As a practical real-world example, I am currently involved in a modified Agile java development project. The core CM tools in use are cvs in pserver mode and a home grown DIET system. The cvs server is running under Linux and is release 1.11.14. The following “stand alone” cvs clients are being used in addition to the integrations into the Development IDEs: LinCVS, gnu cvs (command line), TortoiseCVS and WinCvs. ViewVC is also being used to present the cvs repository via a web interface. Development uses both Eclipse (v3.1 and v3.2) and Borland’s JBuilder (Developer and Enterprise, 2005 and 2006), for a combination of 6 development IDEs and 5 standalone interfaces. The build tools are Apache Ant and Urbancode’s Anthill OS, both of which access cvs via the CLI commands. The special features, wanted by Management, that are currently implemented include:
The problems? The current list includes:
So why don’t we change to a more integrated tool suite? The reasons are almost as numerous as there are people involved. A few of the more important reasons are direct and indirect costs, schedule impacts, inertia (which can also be read as “comfort level”) and stakeholder resistance. Again, as an example we did a quick and dirty cost analysis and found that converting from cvs to Subversion would have a NRE (non-reoccurring engineering) cost of about $100,000 (US). And this is with both tools being free! So having railed at the problems, what is the solution? First, let’s talk short term. If you can find an integrated tool suite that meets your needs from Development, QA, Business, Management and Process aspects and it is within your budget, get it! You will have problems, but you would anyway and at least once the suite is configured and deployed they should be manageable. There are two types of integrated tool suite vendors. The first is the one-stop-shop where everything is by a single vendor. The second is where a basic framework or IDE is advertised to work with a list of other third-party components of specific release levels. Both have the advantage of an active support organization. If you need to roll your own integration, if you have to fit existing tools into an existing process or an existing set of tools, or if you need to “bend” an integrated tool suite into doing things it was never intended to do, your problems will resemble mine. Now for a long term solution that I have proposed before: A consistent, open standard API for CM functions. Regardless of what one thinks of Microsoft, they at least came up with the SCC Interface that a lot of the tool suites work with. Unfortunately it is not only proprietary, but incomplete. An open standard interface specification is needed that addresses the CM components listed at the beginning of this article. For CM to truly be considered mature, we need to join the plug-and-play mindset. This should not mean that we should not be able to take advantage of specialized features in one or more of the component tools, it just means that we have the opportunity to be able to use them together when desired. Ben Weatherall is currently based in Fort Worth, Texas where he practices Practical CM on a daily basis using a combination of CVS and custom tools to support a modified Agile-SCRUM development methodology. He is a member of IEEE, ASEE (Association of Software Engineering Excellence – The SEI’s Dallas based SPIN Affiliate), NTLUG (North Texas Linux Users Group), and PLUG (Phoenix Linux Users Group).
Set as favorite
Bookmark
Email this
Hits: 8558 Trackback(0)Comments (3)
|
|
... Mario and Robert, I am glad both of you liked the article. While I am aware of the Eclipse ALF project, and am watching it fairly closely, it is trying to solve the problem of giving the tool vendors a consistent and open interface to develop against. I applaud the effort and hope it catches on! The problem is that it requires the tool vendors, both proprietary and Open Source, to actively support it. At this point, many (read that most) do not. Now if we can get the other IDE vendors to pick up the Eclipse ALF standards... Robert, I was not aware of the Polarion offerings, but I did look at them this morning. It looks like a fairly good solution if one is using Subversion and indeed would be worth a closer look for a great number of projects. Unfortunately, it is not able to work in a plug-and-play fashion with other components. I could not use ClearCase version control with Doors requirements management, BugZilla defect tracking, Anthill OS/Ant build management and Tivoli release management tools. (Note: These tools were picked off of the top of my head and in no way reflect specific recommendations!) I think in both cases we are working towards a better solution. -Ben Weatherall |
|
Mario Rousseau
said:
|
Considering Aclipse ALF This paper is very interesting. I agree with a standard on CM interface API. Today, CM tool is an important piece in Software Development organizations as those who adopt CMMI compliance and Sabarney-Oxley. For CM interafce API, what you think about Eclipse ALF project (www.eclipse.org/alf). The goal of ALF is to have a set of APIs (web services) to let Software Development tools to talk together. And there is some demos which demonstrate the integration with different CM tools. And the switch is very easy if the web services is available for each CM tools. To be considered. Mario Rousseau Senior Software Engineer |
|
Robert
said:
|
... Hi Ben, Thank you for your interesting overview and summary. Well, what you are describing was our basic design goal. We are trying to come closer to most of your requirements or expectations. We disliked also this advertizing thing over years integrating separated islands of automation. Now we have chosen a new way to bring the topics you listed together. Best, Robert Neher, Polarion Software www.polarion.com |
|



