Lately I have been playing around with the Distributed System Designers in VSTS. Distributed System Designers are cooked into VS.NET 2005 and is comprised of 4 different designer surfaces; Application Connection Designer, Logical Datacenter Designer, System Designer, and Deployment Designer. I can’t help grinning while using them. I love drawing pretty pictures – I love it even more when those pretty pictures come alive and do something useful for me. I intend to write a whole whack of comments about these designers in posts to come – but generally speaking they represent yet more powerful tools that will help my projects be successful technically. They excite me because I think these tools will become as useful as SQL Server’s diagram tool – we always found ourselves creating our models on that surface and as you know the table diagram designer went out and actually created the physical implementation under the hood for you. Now, there were some DBA’s who were very hesitant on using that design surface because they were set in their ways (which is cool – don’t get me wrong) – and because of this I have always thought that the tool was under utilized. I find the TS designers fairly intuitive – however, I’m positive that it will take getting used to on real-life projects. I’ve used them very successfully so far to create and connect my skeleton projects together. I haven’t, however, had the chance to take it through a full lifecycle on a real project.
I’ve been a Borland Together user for some time now (by the way, there is a new release of CaliberRM for those of you who care) and I was wondering about where a tool like Together might fit in now with TS. I have no idea what Borland plans on doing with Together and VS.NET 2005 (if anyone knows – please ping me) – but right now I only see a very small overlap in functionality – the class designer. Borland Together provides me with tools that I can use to perform requirements analysis – allowing me represent my problem space, refine the problem definition and get to the design stage using UML (use cases, sequence diagrams, activity diagrams, etc). However, I’ve always felt that UML has some big walls around it making it difficult to transition between analysis and the various levels of design – what it generated usually didn’t help me develop any faster. The Team System Designers will give me the ability to technically design the logical and physical layers of my system – taking it that last mile that Together doesn’t do well. In earnest – I hope Borland keeps doing what they do - supplementing the features that TS already provides. Heck, they should extend TS to provide for a more rounded lifecycle experience that allow you to truly go from Requirements to Deployment – TS claims to be extensible… why not. I like the work item concept in TS – but in reality CaliberRM is much better at managing Requirements I like the way you can tie TS Work Items to a Check-in of Code for example – in CaliberRM you can configure traceability to projects and code files that might accomplish something very similar. CaliberRM seems to have the versioning aspects that I want and need on most of my projects as well – to date, I don’t see good versioning in the Work Items for TS – especially having the ability to take a baselines (etc).
What I still find missing in so many products are tools that help you get the requirements correct. Typical run of the mill modeling tools just don’t do this well. Requirements Management solutions come closer and so far my favorite is CaliberRM. Once we know what we have to build – we can usually build it. Sometimes, and in my world that would equate to “most times” – understanding and agreeing to what we are building is a real tough problem.