View from the Ivory Tower

Chris Kadel's attempt at a blog with an ironic title.

Archive for the ‘Uncategorized’ Category

Valuing “Better” in Vacuums.

Posted by cbkadel on April 7, 2011

Architects. Fortune Tellers. Economists.

What do all of these people have in common?  They are all required to make forward thinking prognostications without having all the information.  Economists regularly are interviewed on television about the future state of economies around the world, and 99 out of 100 seem to have a different answer.  I’m pretty sure 98 of them are not completely correct.  Fortune Tellers – enough said.  And architects, particulary software architects, are often asked to help make decisions which in their judgment lead to the “best” solutions.

This post has a little to do with recent events, and a lot to do with how my thinking on architecture has evolved.  I do often think a lot about how to make projects run more smoothly and achieve greater levels of success.  Lots of thinking, of course, in the industry surrounds with the methodologies used by people involved in project delivery.  Also even more thinking about how architecture is defined, and who is an architect and who is not.  These are arguably important topics for consideration and a lot of great minds have been put to task on solving the problems.  In my business, focusing primarily on application architecture and Application Lifecycle Management, means asking a very key question – repeatedly – why do most IT projects fail?  Our engineering world is unlike any other out there (bridges, buildings, civil, highway management) in that, those projects achieve their desired result (yes, they may be on-time/on-budget or over), but a bridge that actually falls apart is quite rare.  Sure, in IT, we go over time, and over budget – regularly.  What’s even more surprising, is what we end up building sometimes doesn’t match objectives.  Why is this?

Some of the key decisions – in say building a bridge – are the thickness of the material, the amount of supports.  We even have a science that lets people determine how to answer those questions – physics.  Many of us learn some of the basics of this in high school and college – many of us that don’t even go onto “engineering” are familiar with some of the basic concepts of physics like (“there is gravity” and “friction”).  Yet, in software, knowing how to answer our analogous problems, is much more of an art than a science.  Forgive the cliché, but it is likely true.  Think about a little more granular discipline – such as application design – should we make this data driven, should we make these classes more re-usable?  These sorts of decisions are never made by project stakeholders (or I should say probably are rarely decided by them), but are made in de-centralized fashion by architects, designers, and developers.  But do we have rules of physics to help us – and do we interpret our nascent understanding of “good” in the same way?  Clearly, we do not.  There is no math equation that says how thick our “software steel” should be.

I have had someone – that I work with — recently tell me that “One should never do X, Y, or Z” and that “One should always install things in this fashion.”  Absolute statements always spark red flags to me.  Note: that might be the only absolute statement that I subscribe to.  I’ll try not to recurse any further so as to not break yours or my minds here. What I realized is that this person was able to have clarity of purpose – only by ignoring a lot of big picture considerations – such as cost, time to market, and efficiency of the teams.  And then I realized – we do this all the time – everywhere.  Hard code this – or don’t hard code that – those are decided at very low levels on our development teams across the industry.  Maybe that’s not a bad thing – I can only imagine the inefficiencies created by having everyone in management decide everything.  And that’s actually what makes software hard, and why IT sometimes has a challenge in conveying its success to the rest of the business that they work for.

On some level, this seems all very basic – here’s rules to live by – don’t be blind to the world around, and don’t stick with absolutes, unless you’re talking religion and then sure, go for it.  No one in our “bootcamps” for developers would ever advise the contrary.  But here’s my point – whether I’m serving as a developer, an architect, or ALM consultant – rather than starting with conclusions – I start with understanding the trade-offs.  We make a lot of decisions about what feels better, or seems like the right decision (you can watch for those catch phrases on your local project – everywhere).  I advise people I work with – start with possible tradeoffs available, and consider why they may be valid:

  • Sometimes what seems like a simple architecture – perhaps overly simple – might be actually the right decision based on business value (time to market and cost).
  • Sometimes the hard coded solution is what the business actually needs
  • Sometimes pushing to make more things configurable, or data driven, saves a lot in the long run.
  • Sometimes a single tier application architecture is right given a size and maturity level of an organization.

Some of those statements are tantamount to heresy – but remember – the software – or architecture – or design – is not the actual goal – in the enterprise application – ever.  We’re working to achieve something else entirely – it’s intangible, it’s tough to know sometimes, but it’s the concept of “Business Value.”

Posted in Uncategorized | Tagged: , , , , , | Leave a Comment »

I’m Speaking at the Lake County .NET User Group–Feb 10th

Posted by cbkadel on February 1, 2011

This month, I’ll be speaking up in Lake County – at the .NET User Group up there.  I’m super excited to meet the group of developers up there.  This month, I’ll be demoing and presenting on the ALM features that are new in Visual Studio 2010.  To attend this event, you’ll need to register at http://www.lcnug.org/Home.aspx

Posted in Uncategorized | Tagged: , , , | Leave a Comment »

Test Case Management in VSTS 2008

Posted by cbkadel on October 19, 2009

I think the excitement for the Visual Studio 2010 (formerly known Rosario) has grown dramatically. With the announcement on October 19th, the Beta 2 was released, and now that we have a launch date (March 22nd 2010 for those of you not on the tubes of the internet) – I really could not be more excited.  I’ve always loved the tools, but now – love may turn into something greater.

 

One of the things many of my clients have found limiting/frustration is the manual testing & test case management story with the current set of tools.  My answer has been for a little while – wait until you see Rosario/2010.  Even with that, sometimes we needed something in place for a little bit of effort.  Here was my implementation of a rudimentary test management suite using 2008.

 

The solution must meet the following requirements: somehow test cases should be linked to requirements, we should be able to know how many test cases have been identified, authored, and executed, as well as some statistics about how many passed/failed.  Without spending a lot of time on the details on Work Item Type customizations, here was my high level solution.

 

image

 

Create a new Work Item Type called Test Case.

For minimal effort, a work item type can have a few text boxes to handle the steps of a manual test case, it’s state, and pass/fail nature.  We also created a Custom User Control here to handle the steps because sometimes that grid-like functionality just is irresistible to testers.  Let your end users link those test cases to requirements.

 

Create a Report [Test Cases by Requirement]

You can get more complicated, but this report can be used to identify gaps.  In this, you’d need to look at all Test Cases Work Items, and group them by their related Requirement Work Item ID.  Now – just a few implementation details here: Use the TfsWarehouse relational database.  It is your friend.  It contains work item relationships without requiring MDX.  Some have asked – can I use a query if we’re just getting a list of Work Items.  Nope – any time you need to deal in terms of work item relationships, crack open the SSRS/SQL skills.  You can now get for each requirement, the number and details of any test cases.  You can get fancy by putting coverage % there if you want, too.  Some teams need this.

 

Create a Windows Forms App – Test Case Copier

Testers do not run all tests just once.  Tests are meant to be re-executed in every test iteration, or cycle.  If you can get comfortable with the TFS API – you can have it iterate through Test Cases that perhaps meet a criteria (you can get arbitrarily complex depending on how your team breaks down their test cases), take that work item [one for each test case] – and copy some of the basic details (test description, author), but do *not* copy the state or the results.  You can then create a brand new Test Case for a new iteration.  A key point here – is have in your Test Case Work Item type have some indicator [a text field perhaps] for your test iteration.

 

Create a Report [Test Results by Test Iteration]

Now – back to SSRS – let’s create a report for our management that perhaps lists all the test cases that have been executed (that’s a TFS Work Item State you should have) – and the % that have passed / failed.  You can take [because we now know how to relate those test cases back to requirements from the earlier report] those %’s and tie them directly to your requirements.  You now can calculate how many of your requirements 1.) have tests written for them 2.) and the percentage of tests that are passing.

 

So – that’s your basic test case management solution in VSTS 2008.  Let me be clear, it’s some customization, but not a lot.  If you can wait until 2010 – you should because this customization – while probably will work in 2010, you will not want to when you see the features that are coming there!

 

Good luck, if you need any more details on this solution – http://twitter.com/cbkadel

Posted in Uncategorized | Leave a Comment »

Development Process – A Lesson From Microsoft

Posted by cbkadel on October 19, 2009

Often times in the media today, you read about the end-products of Microsoft such as Windows or Office, but not often do you get some insight in how those products were developed.  In the Online WSJ – http://online.wsj.com/article/SB10001424052748703816204574483533753673144.html – there is mention of how Microsoft re-organized its Windows development team.  I think there a few lessons that as a consultant or even a developer in corporate IT, we can take to heart.

 

Firstly, rigid silos within teams or between teams.  Microsoft worked on fostering communication among its teams to ensure that information was shared more effectively.  I think we all believe innately that silos in IT are “bad” but it is surprising how often they manifest themselves.  One cause, in general, is the environment that we work within.  We like to send email to people, we like to IM, and we like to have face-to-face conversations.  I think that those things, informally are absolutely critical in every project, but I do think there are some things that we should be using a structured way of communicating so that it gets captured for others.  It is one reason that I’ve been a big believer in Visual Studio Team System since v1.0.  By using task management and SharePoint collaboration, communication can be structured and viewable by all – that need to do it.

 

Just using the tool alone will not solve those issues, but I believe it can be a great enabler.  So – I think we should all be introspective, and look for those silos.

Posted in Uncategorized | Leave a Comment »

The New Visual Studio

Posted by cbkadel on October 19, 2009

Well, today was a big day for the Microsoft Developer Tools group for sure.  They packed a bunch of huge announcements.  I’m sure you’ve seen the big announcements for the launch date for sure (March 22nd, 2010).  Also the new product SKUs which hopefully will simplify the choices for most teams that have been accustomed to buying role editions.

 

What I think i find most interesting is how this will affect customers using the products going forward.  My guess is that – for most developers having what was called the Database/Developer edition functionality, now going forward “Premium” will be what’s needed.  I’m thinking this is really an awesome amount of functionality into the entry level Team System product line.  This of course includes a CAL (I’m assuming) and the improved database + developer functionality.

 

If you’re anyone else on the project, or a developer that plays a lot of roles, Ultimate becomes very attractive, as you get the development functionality, database functionality, testing, and architecture functionality included now.

 

It will be interesting to see how this is presented, I’m starting to wonder if more people should be looking at Ultimate:

 

How does the business analyst fit in?
How about the Business Analyst that is going to be doing heavy modeling?  I know this type of functionality was previously viewed as “Architecture” – but business people certainly are no stranger to the Use Case diagram. I’d say Ultimate looks like the edition for those people. If they do not do modeling per-se, using a CAL and Team Explorer may get them the functionality that they need.

How does the ‘do-everything’ person fit in?

The “Project Guru” – this is the person that probably is working as a developer as well as a liaison to the business. He/She has to write code, and model.  That person is going to want Ultimate.  

Testers?

Testers – They have a choice for the Testing Elements – which is the stand alone tool that is targeted specifically for testers, or they can get Ultimate.

 

For the most part, it seems that this change in product SKUs really brings the Visual Studio line more into line (though not perfectly) with other Microsoft products such as Windows and Office.  Both of those products sport names like “Professional” and “Ultimate.” So from a marketing perspective, I can really see the value.

 

One thing I think that is important to remember here too, before people did complain about the functionality changes in Windows Vista.  There were some more expensive versions that did not contain all the functionality of perceived lesser versions.  Vista business line versions did not include Media Center and a few other things.  Customers were somewhat confused because they had to make some hard choices: Do I want media center or AD integration?

 

The good news, I think is that each subsequently advanced version of Visual Studio now will have a superset of functionality than the previous one.

Posted in Uncategorized | Leave a Comment »

Presenting VSTS 2010 at the TSUG – Virtual Edition

Posted by cbkadel on October 14, 2009

Tomorrow, Thursday October 15th @ 7PM CST, I will be giving a talk on the Architect Edition functionality for Team System 2010.  I’m very excited to be presenting with that group and it should be a good lap around the functionality of the new tools coming out next year!

 

There is no official sign up, but if you go to http://www.tsug-ve.com/, you’ll see the Live Meeting link/invitation that you can use to connect.

 

Audio will be through Live Meeting so have your computer speakers turned on!

Posted in Uncategorized | Leave a Comment »

Pending Changes/Check In in Team System

Posted by cbkadel on July 19, 2009

If you’ve spent any time in Team System, and if you work on a number of projects concurrently, you may notice that the Pending Changes dialog (same as the Check In..) dialog box shows a lot of outstanding changes that may or may not have anything to do with where you might have right-clicked to check in.  The reason for this is that it shows all pending changes by default in your workspace (many of which are in other projects you might be working on).

 

 

Sometimes the file(s) that are relevant – such as within the Solution you’re working on, are at the end of a very long list.  The more projects you work on concurrently and have outstanding changes on the more unwieldy this can become.

 

There are things that I do often to make the view more manageable:

  • - Switch to hierarchical view from flat view.  This doesn’t shorten the list, but at least shows only top level files/folders first – which are a much smaller set.

image

 

  • - There’s a button on the toolbar of this window called “Filter to Solution.”  This button will shrink the list even more so, if you’re a developer working on multiple solutions with outstanding changes.

image

 

When working with the source control integration with Visual Studio Solutions and the source control, you’ll notice that it does have some contextual awareness.  Only those files that are below the folder/file that you might have right-click will be checked, but that the list shows everything in the workspace.

 

I might suggest in the future to show by default only those things under the right-click, with the option of viewing the workspace outstanding changes should the user need to do so.  That would probably fit the 80 – 20 rule of how I work and I think a lot of people do.

Posted in Uncategorized | Leave a Comment »

Visual Studio 2008: “Associated Work Items” in Manual Tests

Posted by cbkadel on July 17, 2009

So, firstly, let me say that it has been a long while since my last post.  It’s been quite a year at Polaris.  A lot of good things, but enough that has kept me from blogging.  I will make a self resolution to do a better job.

One of the things that is not too well documented is what happens with the field – Associated Work Items within the test view.  I created a test for the purposes of this post called ManualTest1 as shown below:

image

When using the Test View you can select tests and are presented with this properties pane within Visual Studio 2008.  Notice, you can press the … button to the right and it will even give you the standard Visual Studio Work Item Query screen.  You can even choose one or multiple work items to associate with this test.

One might expect that this to manifest itself as a ‘link’ within the work item to this test definition, similarly to links to other work items or source control assets.  It is not.

It’s also not in the vsmdi file, the sln file, but where is it?

In this case, a manual test, you normally open up the test (either text or mht), you’ll notice that there is no meta data about that test visibly within the IDE.

Well, it’s actually hidden.  Open up that mht with the Source Code Editor (right click on the test in the Solution Explorer and select Open With…)

image

Now you’ll see where that Associated Work Item really is!

image

You’ll notice if you look at this file, these fields are in a commented out section of the MHT file which are not rendered in the default editor.

So – if faced with the challenge of associating “Test Cases” back to Requirements or other work items, just know that they are stored within the asset itself and if you’re use this information programmatically – get to know the Version Control APIs, be ready with some recursive programming skills, and know how to parse the embedded XML.  It’s not readily available through SSRS or typical reporting techniques in Team System 2008.

Hope this helps!

Posted in Uncategorized | Leave a Comment »

Chicago VSTS Users Group – I’m Presenting VSTS Architecture 2010!

Posted by cbkadel on July 15, 2009

Well, to blatantly plug my next speaking engagement, it’s this one.  You can click on the link to register below.

 

User group: Chicago VSTS UG
Event name: July 2009 Meeting: Architect Tools in VSTS 2010
Time period: 7/23/2009 5:30 PM till 7/23/2009 8:00 PM (GMT -6)
Location: 200 E Randolph, 2nd Floor. Chicago. United States.
Description:
Chris Kadel from Polaris Solutions will speak on the new Architect Tools included in VSTS 2010. These tools have undergone amazing transformations in the 2010 release which will make them indispensible for solution and enterprise architects. This session will involve an overview and demonstration of the Team System 2010 architect tools with a practical focus on how you can actually use these tools to create value in your organization.
Bio:
Chris Kadel has worked in the IT industry for over 10 years and has consistently worked with Microsoft technologies as a developer, designer, and architect. Chris is a co-founder and owner of Polaris Solutions, a Microsoft partner and leading provider of ALM Solutions including ALM Assessments, Implementations, and Process Consulting. Polaris has deployed Global TFS environments as well as have assisted small/medium size clients benefit from Team System.
Chris is most passionate about the Microsoft ALM tools such as Team System. His certifications: MCAD, MCSD, MCTS: SharePoint Server 2007, MCTS: Team Foundation Server

Posted in Uncategorized | Leave a Comment »

 
Follow

Get every new post delivered to your Inbox.