Integrating developer tools - Intuition vs. Reality

This article was published in the CMCrossRoads.com June 2002 newsletter

Abstract

While many people intuitively feel we should integrate the development tools we use in our software development environment in order to control the development team better, the task of actually doing so can sometimes be as big if not bigger than the software project we are trying to develop!

"Warning - there be dragons here!" springs to mind when considering this subject. It's hard enough trying to implement individual software development tools while you are in the throes of building software, let alone get multiple sets of these tools to start synchronising and talking to one another.

In this article we explore the type of process and tools that should support the process. We look at the organisational issues you face in implementing tool integration. We look at the challenges we face with the tools in software development, the likely intersection and where the tools would be sharing certain information. We also spell out some of the dangers and issues that are likely to come up; with some suggestions to consider when implementing this integration...

 

Set the scene for what we would like to see

Before we start my assumption is we are working on a medium to large project, with a medium to large team of people.

So it seems a great idea for a person on a medium to large project to have functionality along the following lines (give or take the different team structures and sizes):

In the mean time:

What this needs is a lot of integration. It needs:

Do we decide to build something like this? Who says it should be done? How do we build something like this? In what order would we build it? Will the tools we have/decide to buy support this?

 

Organisational implementation issues

The type of organisation and projects they undertake (no pun intended) play a part in the decision to integrate tools. Obviously it does not make sense to spend months of effort integrating a set of tools if this development project is a one-off to the organisation.

Even if there is more than one project which would use the integrated tools once implemented, then if a project is say six months long and the integration effort is around the same length, that particular project will not see much of a benefit. In fact that project may well be stunted through all the actual implementation,  changes and learning curves, etc.

Essentially different approaches would be necessary according to the organisations particular situation and available time, knowledge, willingness to improve and budget. In some cases we may choose only to implement a simple SCM tool as the core product. In other cases we may choose to implement an integrated SCM and Change management system. We could have a strategy of integrating tools into the project as we go. it depends on what is already there and how well its integrated already.

The people who are responsible for making this change are varied:

 

Tool challenges we face in software development and tool integration.

The software development implies rather a large list of challenges, however within the context of the tools integration, the list below is a more scaled down set of challenges:

Challenge Explanation
Tools vendors getting integration to work
  • between their own product offerings same version
  • between their own product offerings different version
  • between other vendor offerings
On a typical large project there are probably going to be some tools of different versions because the were bought at different times, which do not quite work together sharing files, having stunted features, etc.

There will probably be one camp of people who like Modeling Tool X and another group who swear by Modelling tool Y.

Implementing integrated tools across different disciplines is non-trivial. People from different teams generally don't work together naturally, there is a feeling of "my teams ok we have our processes, don't impose your teams extra requirements on me."
Multiple Tool Databases of information. Each tool stores data in its own format. Some in simple files, others in Small databases, others in SQL database, some configurable others not.
Processes embedded in tools that may be ideal for one particular team may not suit other teams. The Vendor of a tool modelled their tool around some pre-conceived way of working. It may work well for the people who work this way. It may not work at all well for other teams who need to work differently because of their own particular situation.
Tools that don't accommodate externally defined process. Some tools can be configured for change. They have a meta definition ability, which after setting up certain attributes and properties will allow them to mould themselves around the users specific needs. Other tools are far more rigid in their approach and can therefore not be used easily or at all. Try and look for tools that can configure easily.
Different tool vendors and versions of tools around the organisation doing the same job. On a project, team A is using Modelling Tool X and Team B is Using Modelling Tool B. It now becomes much harder to share information, especially if both tools do not allow sharing of data. Even if they do, there is a whole extra set of processes to transform data from one file structure to another.
Budget available for buying the tools we really need. Some tools are very expensive and others are far more affordable. The price / performance ratio is not always the same. The real issue is once you find the ideal tools for your process, does your organisation have the budget to not only purchase the tools, but purchase the maintenance and implementation consultancy, etc? This could be a huge stumbling block. Make senior management aware of just how important a good process can be in producing quality software.
Multiple tool vendors jockeying for their own position of strength on the project Often a project will devolve into politics when multiple vendors are involved. It's quite common to discover that the vendors in these situations often start jockeying among themselves to try to grow their business, which can be a major problem.

A common strategy is for the vendors to put their own pet architectures or processes forward and then snipe at the solutions presented by the other vendors. The host company will want to actively manage these people. *1

 

 

Challenges in implementation between The Tools, The Project and the Process

In the Business Use Case diagram below, you can see the goals of each of the individual people in the Roles as drawn. In their own right they are each trying to do a valid honourable job of work. But each of the goals have a certain amount of conflict with the other persons goal, which inevitably causes problems both for the individuals and for the project as a whole if it is not managed properly. 

What are these three main conflicts?

Between Goal 1 and Goal 2 we have this conflict
Implement S/w Dev Process Build s/w for this Project The Programmers are working against deadlines. People are naturally reluctant to change and more so under pressure. They don't want to be told to do a new process in a different way than what they are used to, it will slow them down, put them off their stride and concentration.

The Process Engineer wants them to improve the process because it will help make the overall integration work better and thus the quality of the produced software more understood, reliable and controlled.

Implement S/w Dev Process Implement S/w Dev Tools The Process is defined by the Process Engineer according to the best overall way that will support the type of people, project, and software under construction.

The Tools may have been designed for use in a slightly different manner. The Toolsmith and training material will try and tell the people to work as the tool expects, which may be different from the process that has been defined for the team.

Compromises have to be made on both sides, but far too often the tools are rigid and the process has to change to accommodate the hardwired tools.

Build s/w for this Project Implement S/w Dev Tools The Toolsmiths have to try to understand the process from the process engineer, understand how to implement this in the tools, do trial tests to confirm the tools & products support the process, if not write scripts or plan work arounds. Once resolved they then plan an implementation and individual tool rollouts. Once done have to help the individual team member learn and use the tools.

The Programmers are under pressure to deliver working software and are reluctant to give up time on their workstations to have new tools installed and have to learn new software.

Development tool categories

Here is a list of tool categories*2 which are likely to be used on a large project.

Development tool integration points

Below is a rather spider web looking relationship between the possible tools on a project. This implies there are relationships between each tool and almost every other tool. (I'm sure there are more relationships and tools that could be added to this, but this gets the point across.) Look at the likely integration point and what is being integrated at each point. In some cases there are two way integrations.

Suggestions to consider when implementing integration

 

Conclusion

I guess the final message is; Sure we need to improve the integration between the SCM tools and all other development tools, but only when the tool Vendors make the tools configurable enough to be able to impose varying processes on the same tool, and when the products from different vendors can interoperate seamlessly together. Alternatively one vendor makes a suite that works together well.

These are high aspirations, but we have come a long way in the last five to ten years, I'm sure we will get a lot better in the next five years. It is a cause to champion though, and it will deliver far better quality software at lot quicker in the future once we get it right.

 

References

Firesmith, Don       *2 Open Process Framework Extensions Web -Tools List. as at May 2002.

Ambler, Scott        *1 Comments about multiple vendors taken off the RUP forum. May 2002.

Edwards, Charles    www.processwave.net May 2002.