Monday 1 May 2017

How important is the tool choice?

I heard an interesting analogy recently from someone who was describing how your needs from a tool change over time. For example, when you first go to University you need a fork, knife and tin opener (and a glass). The things you cook may be limited but you learn about cooking over time. When you get your first house you may invest in a set of cooking utensils. If you really like cooking and you have the money you might splash out on some great knives.

It's a nice analogy but there are a few things to consider. Usually when one makes a modelling tool choice it's something you learn to live with because changing tools is difficult and people begin to invest their time, i.e. it's not simply the case of buying a new set of tools as there are people to consider (for example, the manager who stuck their head out to get the money approved).

While you might consider the modelling tool to be a set of knives there is also the bigger picture about the kitchen. For example, IBM doesn't sell knives, it sells kitchens hence a lot of people using a tool like Rhapsody are in big companies where the kitchen is in play, including wider issues such as interfacing with change management and requirements management tools.

I prefer to think of the analogy of a boat that you intend to tend you down river. You could choose a canoe or an inflatable raft. The chances however is that when you hit the rapids you won't have the luxury to change tools. You'll just have to hang on. That's not to say that your tool won't carry you there. You'll just need to take the rough with the smooth.

Something to remember though is that modeling tools are very different in their architectures. Some are repository-based, some file-based, some use Relational databases, some - like Jazz/Design Manager - use an ontological database. Some even have a file-based and repository-based option (Rhapsody, for example).

Chances are though that you won't find out the real differences until later. That's not to say that one tool is better than another. For example, when I was product manager for Artisan Studio one of the great things was how easy it was to collaborate on the same model as it had a Object-based database with very fine granular locking. This of course has benefits and disadvantages (e.g. what happens over a wide-area network?). Rhapsody has some really sharp aspects. Simulation is one. Configure-ability is another, or working with SCM.

The thing is whichever tool you choose, you're provably stuck with it for a while. I'd recommend therefore that you learn it very well (or get someone that does). Play to your tools strengths but don't be surprised if at some point you see others shooting down the river on different boats, at different times, or occasionally you find you need to portage a waterfall in a few years.