View from the Ivory Tower

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

Brian Harry in Chicago

Posted by cbkadel on March 5, 2010

Just got out of a presentation by Brian in downtown Chicago.  Basically, Brian talked through how Microsoft does software development in the Developer Division from the perspective of using TFS 2010.  I think the major point in the presentation was driving at the value that TFS 2010 added to Microsoft’s development effort – given that they are an extremely large commercial software development shop.  Overall, it was a great presentation about the value the tool brings + with customizations.  Out of the box Microsoft includes an Agile process template and a CMMI one.  The metrics and reports that Brian talked through were primarily – it seemed out of Microsoft’s custom process template that they use internally.  I think this talk is a great example of what-is-possible with Team Foundation Server – if not somewhat about what the tools do for you out of the box.  As a consultant that focuses on the development process in teams, this was FASCINATING.  The following consists of a few high points in his talk.

How Microsoft Developer Division [DevDiv] Does Planning

Traceability – Brian talked a great deal about how the process has improved at Microsoft’s DevDiv since the releases of 2005/2008.  They have a hierarchical set of requirements traceability from core principles down to deliverables.  The high level core principles were called “Pillars.”  With 2010 – the core principles were Quality in Development and Testing.  So you can imagine many of the features that we’ve heard about – lots of them roll up into those two high level things.  While discussing “Requirements Management” – Brian really talks about three key parts of requirements management process:

Elicitation – there is not much support within Microsoft TFS to handle that.  The teams use 3rd Party or other MS applications in this phase still.

Analysis/Definition – the act of translating what was elicited into a solution – of what the applications could be.  Some synthesis and analysis happens here to transform problems into solutions for sign off/buy-in by business stake-holders.

Management – understanding traceability and completeness of the development efforts as compared to the requirements that were documented.

Brian covered a lot of the product realignment and SKU changes – many of which are have been talked about a great deal in Microsoft’s published documentation.

Peanut Butter – In talking about the context of how the process has evolved at Microsoft over the past 10 years, he described an effect where by Microsoft would say – ‘let’s release 2003 or 2005’ and the various distributed teams in the division would go back to their teams and decide what they could get in there, and as a result – the release of a product would consist of a lot of incremental improvements, but there was no real key pillar of why someone should go out and buy the toolset.  I think this has something to do with the way that Microsoft as they’ve grown have evolved to include vision as a key component of the planning.  Many enterprise teams today struggle here as well – and determine what is a success criteria for why a project succeeds or fails.  With 2010 – they clearly took a big look back if you look at all the improvements and understand what are going to be a part of the key business value improvements of the product.  Peanut Butter is a great term to describe this.  i have been involved on a few larger teams where synthesizing product releases took an hour to boil down.  It wasn’t because of distributed walls, but it was due to a lack of message from the beginning in the release.

No Repro Bugs – In talking through the development process there, Brian took a case study of how they improved testing and development quality – by wanting to eliminate “No Repro” bugs.  Those are the bugs filed by testers that the developer just can’t reproduce.  The developer says so and it just goes away – time wasted.  Brian estimated 30% time-waste due to this factor within the Microsoft Dev Div team.  Some of the key features around removing this situation that Brian talked about:

    • Video Recording – the tester as they are using Testing Professional [a tool designed explicitly for testers that is not based on Visual Studio] – a video is automatically attached to the newly filed Defect which gets sent to the developer.
    • Automatic System Information – Also as defects are automatically filed, the environment [CPU, RAM, OS, Browser] information are all automatically attached to the work item when this happens.
    • Intellitrace – While the tester is running through an application – the stack / heap is being recorded, and automatically attached to the bug – the way that Brian described was that this was better than an eventual stack dump/crash dump because it is dynamic and you can open up the intellitrace in an interactive debugger, essentially playing back the entire session of a testing situation to understand the cause that variables are some value or another.  This is like being able to run the application within debugger in Visual Studio – all the time – without actually installing VS on testing environments.  This one feature has definitely been talked about a lot – i was impressed how Brian talked about this one.  I really question any one that says that Microsoft does not innovate – because this really seems an amazing feature that will help countless developers.
    • Symbols Server – When a build is deployed and developers can step through the code execution after the fact, the source code that was used for that build can be used to step through.  You don’t have a mismatch between the code a developer has on their local machine and the build that was tested on.  Someone asked if there was a feature to automatically compare that set of code ‘with latest’ – and there wasn’t at this time, but maybe in another release.

Visual Studio Fun Fact #1 – there are 65 Million Lines of Code in VS 2010 today.

Layer Diagram – Apparently, we learned today there was some code in 2005 (TFS) on the server-side [that’s the part that runs in IIS as ASP.NET web services] – that was referring to the namespace System.Windows.Forms [yikes!].  The Layer Diagram could have prevented this by having a team establish limitations on the code and validating that the code written would conform.  I did ask Brian if the BCL (base class library) classes could be used in this diagram – the answer is ‘yes’ there.  I think most demos you see constraints on the application code, so it was nice to see you can enforce architecture for specific BCL namespaces and assemblies.

Multiple Process Methodologies – I think one of the things that I really liked was the fact – and given Microsoft is so big – that just as we as consultants don’t say that one process works for everyone, Microsoft released that this was true – even within the same organization.  I think they mostly have two types of features/deliverables.  Some are called ‘Dark-Tunnel-Features’ and others are called ‘Value-Added-Features.’  Dark Tunnel are those features that once you start, you can’t really stop.  They represented things that you can’t have ‘shippable iterations’ of.  An example of this in VS 2010 was the editor – and it makes sense, Microsoft couldn’t release a half-editor – it’d have to be committed to, or it wasn’t.  For those things – they mostly run those waterfall-esque (Microsoft Project, Phases, etc), for other features, Brian said the teams mostly developed with some Scrum Variant [not the same for all the teams, but each team did things probably a little different in each team].

What Was Not Good About 2010

So – I did ask what could be improved today within DevDiv – and Brian definitely had an answer.  Performance, Performance, Performance.  Here’s the big irony [and Brian also has said this in his blog], that this release of 2010 had more performance focus throughout the entire process than any other release of Visual Studio in history.  Yet when the Beta 2 came out, it was universally panned by the community for having many performance problems.  One problem that was attributing to this was the fact that the team, when developing performance tests, they geared towards making them repeatable, and in an attempt to remove the variations that can happen throughout running the application like [network, disk] and things that you can’t really control.  So in effect the team wrote their performance tests at the ‘unit’ level – small repeatable tests such as (i’m over simplifying):

  1. Boot up Computer
  2. Open Visual Studio 2010
  3. Open Text File [5 lines of code].
  4. Compile
  5. Save

Those tests were reporting throughout the entire development lifecycle that they were on track.  So – I think – this was akin to ‘writing the test to succeed’ – that can happen in functional unit testing if you’re not careful, or what arguably happens when you’re not writing unit tests in an automated fashion [developers just clicking through the happy path when testing].  Microsoft was planning on reviewing how they do performance testing for future versions of Visual Studio and TFS.

Posted in Visual Studio | Leave a Comment »

My Favorite Feature in VS 2010 – Add Reference

Posted by cbkadel on February 18, 2010

What’s my favorite new feature?  Is it MVC 2?  Is it the new flashy WPF editor?  No.  The feature that I love the best so far in VS 2010 [from a programmers perspective] is the simple, the boring, “Add Reference” dialog box!  It loads the ‘.NET’ tab asynchronously, so it immediately loads and it immediately displays data while it’s lazy loading all the possible references.  I’d say that VS 2010 is the “Windows 7” of IDEs.  It really seems that the product team for Visual Studio really has managed to deliver a very polished, responsive, and frankly beautiful IDE this time.  Rather than just calling it the Windows 7 of IDEs, I’d say they basically seem to have accomplished the feature ambition of Windows Vista with the polish and completeness of Windows 7. 

You can read a quick post by Scott Guthrie about the Add Reference dialog here (http://weblogs.asp.net/scottgu/archive/2009/10/29/add-reference-dialog-improvements-vs-2010-and-net-4-0-series.aspx).

Posted in Visual Studio | Leave a Comment »

Managing Time and Tasks with Outlook – Part 4

Posted by cbkadel on January 28, 2010

It’s been a little while since I have blogged, but I thought this week that I’d get back into it.  Perhaps half of my future blog posts will lament my lack of blogging. 

Principle III – Make Writing ToDos as Easy as Possible

This principle is less about the need to do a Task List, and more about helping someone adopt the system.  If it’s time consuming to record what needs to be doing, you’ll spend more time recording and not actually doing.  I think the solution is very simple, and very deliberate.  My tool of choice, Microsoft Outlook 2007.  Outlook’s task list, of course has due dates, and a way to view those tasks based on the priorities that you assign.

This is key [for me at least].  Memorize the “New Item” keyboard shortcuts in Outlook

image 

Check out, New Task – CTRL-SHIFT-K.  I think this keyboard combination helped me the most adopt a system where tracking tasks was incredibly easy.  Something comes to me in an inbox, and I’m basically three keys away from prioritize a task to do later.  I think this took some time to practice, because at first, I did want to use the toolbar and the menu to go create a task, but it just didn’t stick.  I can set the task and stop having that hang over me.

Adopting the keyboard shortcut:

  • For me, I use the left CTRL and SHIFT key – they are right next to each other, leaving the other hand for that K.
  • Getting in the habit keeping the inbox down to zero where possible.  If you have some emails that you know you need to deal with, just not now, just copy those emails into the new task. 
  • CTRL-SHIFT-A – is to make a new appointment.  I think both of these are more memorable when you actually use both of these.

Principle IV – Make Checking ToDos as Easy as Possible

Now that we’re recording our tasks successfully – I don’t believe that it’ll be useful unless you consult that list [and reprioritize as necessary].  My tools here are two things: Outlook Today and a little Outlook customization to create a keyboard shortcut.  I try to make checking

Outlook Today – is a screen that displays your calendar, your tasks, and message counts in key folders in one page.  It’s become my central place to track what I’m supposed to be doing, or where I’m supposed to be.

Making Outlook Today Work For You

  • I set the setting to have Outlook start in Outlook Today when it’s started.
  • I set Outlook Today to sort my tasks by Due Date, and then by importance.
  • Choose a view for Outlook Today that’s concise and easy to look at.  My favorite is the Standard – Two Column.  [I don’t think having a third column to dedicate to the email folder message counts was important to me, remember I’m making the inbox less important as a place to check by forcing myself to use Tasks].  I think “Winter” and “Summer” are also good alternatives.

Here’s my settings screen for Outlook Today:

image

Getting to Outlook Today Easy

As far as I can tell, there’s no out of the box keyboard shortcut to get to Outlook Today in Outlook, so users are left to clicking on the small space in the folder tree for their PST or Mailbox.  I found this to be particularly annoying – especially if I was going to check this place often for my Tasks.  Here’s a little bit of Windows functionality that’s constant in just about all applications: any letter in the menu, toolbar, or window that is underlying, you can press ALT and that letter to shortcut that action.  Try pressing ALT-F in most of your applications, you’ll probably find the File menu pop open.  So then, I thought to myself, if I could find a menu item, or toolbar item for Outlook Today, and it was visible, I could get there any time, very easily.  Queue – the customization box:

1.  Show the Advanced toolbar, by right clicking anywhere in some empty space, and selecting Advanced from the context menu.

image

2.  Choose to enter Customize… mode within the Outlook Toolbar zone.

image 3.  When in customize mode, you can drag and drop any visible toolbar button to any other location within the menuing/toolbar system in Outlook.   You’ll see the icon for Outlook Today, you can now drag that up to the main toolbar, or even the menu bar.  I put this in the menu bar out of preference.

image 4.  Right click on that new icon, while still in customize mode, and choose Image and Text, which changes the icon from just being an icon, to actually showing the label for that button.

image 5.  Now, notice it actually says “Outlook Today”  In particular look closely at the ‘k’ – it’s underlined.  Now that this is in the menu bar, and is always visible, you can press ALT-K *anywhere in Outlook* and it will take you to that screen.  No more clicking on that small space for your mailbox title, just press ALT-K!

image

That’s all there is to it, Outlook Today comes on when you open up Outlook, and checking your to dos, is amazingly easy.

Principle V – Reprioritize and Complete Items on your To-Do list

I don’t actually visit the Tasks folder in Outlook all that much, when I’m done with a task, I simply check its checkbox on Outlook Today and that’s how I mark my tasks complete.  To change the due date on a Task, you can click on the actual title of that Task and it will open up that task directly.  Often, this is where I re-set the due dates for tasks.

That’s really it.  If you put in the effort to making these things easy to do, I think it’s a lot easier to make these practices habit forming.  If, on the other hand, you don’t commit to the keyboard shortcuts, and don’t actually focus on this for a few days, I believe, it’ll be difficult to adopt.

Next Steps

I’m always looking for new and better ways to do this.  Right now, this is the system that works best for me, but other systems might work better for you.  Either way, I believe that focusing on these 5 things will help you:

  1. Not let things fall through the cracks.
  2. Better understand where your time is going.
  3. Not feel overwhelmed by the many things you probably have to keep in your mind all the time.
  4. Take control of your life and get back to doing the things, you really want to be doing.

Either way, take it in small steps, trying adhering to these standards for an hour (consciously), and then a day, and then try one-week of really focusing on this.  It’ll be more effort to think about this stuff up front, but after a week, you’ll find you don’t need to think about it anymore, that’d be my guess.

Good luck, hope this is at least interesting, and hopefully helpful to someone out there.

Posted in Personal, Time Management | Tagged: , , | Leave a Comment »

ASP.NET MVC – Back to the Future

Posted by cbkadel on January 24, 2010

Having spent some time with the ASP.NET MVC framework, I must say that at the outset, I am impressed.  I like it, and I plan to write most applications for the web with that framework, rather than the old standby – Web Forms.  With the 2.0 release of MVC, it’s even more impressive now that they’re going to round out the rough edges [client side validation].  That said, I had a few reactions lately while building a few applications – just because of my experience on the Java side in the past…

  1. Abstraction Isn’t Always Good – Of course we take this is as a truism.  Everyone that’s been on one of those overly complex, and overly “object oriented” projects with v-tables that are 10 levels deep for method calls knows that this is true.  Something that Microsoft technologists started out to do back in 2001 – is abstract the web’s request / response model with ViewState and a great designer that made developing web applications eerily similar to building Windows Forms (Do you remember the default designer in VS 2002 or 2003 was using an x/y coordinate layout by default?).  We spent our time hiding away that request/response model with things like button events and post-back.  MVC throws this completely out.  I know you can argue this builds on top of ASP.NET and of course it does (aspx, ascx pages are all relevant still), but gone are the huge code behind pages.
  2. Competition is Good, but Leadership is Better – As the Microsoft developers move towards building applications with sophisticated MVC patterns, we’re of course seeing many new ways to solve problems [some problems that Web Forms at least provided prescriptive guidance on].  And this is a good thing.  In particular, I personally am a big believer in DRY (don’t repeat yourself) as a rule wherever possible, and client-side validation has been an area that I care a great deal about).  The ASP.NET validation controls with Web Forms did a nice job with the most basic validations of not requiring us to write the code for the server *and* the client.  Something that I think has happened in the Java community is that there became so many different ways to do MVC that it was more overwhelming for beginner developers.  Should they be looking at Spring, Struts, Grails, or Roll-Your-Own?  I think that has been the issue with J2EE (now JEE) – so many vendors, so many choices, that the world seemed quite fractured.  I think with ASP.NET MVC [and because they’ve done a great job at its design], and because Microsoft certainly has a strong voice with the Microsoft community, this is going to be prescriptive enough to move the community forward and in a roughly common direction.  That said, I think we’re about to see many new architectures and designs built on top of MVC, and this will be interesting to see what gains market share/what does not.

When I first opened up ASP.NET MVC, I was initially surprised how complete-ish it was as an implementation of a standard architecture that’s been around for years.  Although, we on the Microsoft are perhaps a bit late to the game to realize these benefits, I think this is why this framework is going to be successful.  The enterprise java community has evolved a great deal in the past 10 years, and all the developers on the Microsoft side, I believe, are benefiting from lessons learned.  Perhaps this is history repeating itself (JVM –> CLR).

Posted in ASP.NET | Tagged: , , | 1 Comment »

Managing Time and Tasks with Outlook – Part 3

Posted by cbkadel on December 17, 2009

So we’ve covered I think the high level ideas involved here, let’s talk about the ingredients before going further.

Ingredients

  • Microsoft Outlook 2007+ – The reason this application is at the core of my system is because it’s open all the time anyway for me.  This is where I manage my calendar, email, and contacts already. 
  • Windows Mobile 6.1+ – This keeps all the things that I use in Outlook with me on my phone.  On important aspect to this is that it’s using ActiveSync to synchronize those things, and that it synchronizes one other thing that I’ve not see done well in any other mobile platform, oddly enough.  The Synchronization of Outlook Tasks.  On the iPhone there is the ability to do that with 3rd party apps, but given it’s non-multi-tasking, this doesn’t work all that well, IMHO.  Android would be another contender, but the ActiveSync support isn’t yet complete, as far as I can tell.

Principle I – Keep a To-do List

Keeping a list of things that need to be done, seems somewhat common sense at some level.  Some of us try to keep that all up in our heads, some of us have a written on a post-it system.  I think if those work for you, that’s great.  For me, just because I have so much to keep track of.  What you may not be aware of is you probably have to-do lists and not be consciously aware of it.

  1. Your Inbox – Your inbox represents things you need to take care of, perhaps.  Everyone in your inbox that comes in – probably needs to be either replied to, forwarded, read and discarded, or causes you to take some other action. 
  2. Your Calendar – It’s telling you to go some place, or call into some phone number (conference call) all the time. 
  3. Your RSS Reader – It’s doing the work of finding things for you to keep on top of in a list.
  4. Outlook Tasks
  5. Post-It Notes

A good To-Do List, I think should have :

  • An easy way to tell you the things you need to do.
  • An easy way to help you see what’s most important and what can be done later.

With those things in mind, the Outlook Task list can be an excellent choice, and in fact, is my primary choice to track those things that need to be done and in a priority.  Each Task can have a “Due Date” – which when those tasks are sorted by “Due Date” can provide an excellent view of what needs to be done and when.

The Outlook Inbox is an inherent to-do list by itself.  The problem with most people’s is that it’s “Full” containing hundreds or thousands of items in there.  It’s not easy to see what’s something you need to deal with vs. something that can be looked at.  Secondly, items are usually sorted by date of receipt, not when you need to deal with them.  If an email comes in that I need to deal with, I deal with it, and delete the email, so it’s no longer in that ‘list.’  Is this scary – I’d argue ‘no’ – it’s still in Deleted Items, you haven’t lost anything you’ve just moved something out of your list of things to do to another location.

My tips for working with my inbox vary depending on the type of email that comes in:

  • When an email arrives, if dealing with it will take very little time, deal with it as soon as you can. 
  • If an email requires a reply, I try to do that reply and delete the original.  If you want to remember to follow up on it, add an Outlook Task with a proper Due Date to make sure you follow up, sometimes I’ll even copy the text of the email into the task itself.  But either way, I delete that email as soon as I can.
  • If an email requires a forward, the same rules for reply [for me] apply.
  • Sometimes an email requires that you schedule an appointment, I do that, and also delete the original email.
  • Sometimes an email just requires that you do something, and if it’s not quick, I create an Outlook Task with a due date – and yes Delete the email.

The net result of those things are that my inbox’s size is as close to zero as possible.  Which means – if something is in there, it means, I need to deal with it.  I don’t have to search through a long list, or even mentally try to figure out how far back I need to look for something that I need to take care of.  The inbox is a poor ‘to-do’ list – in general, which is why I deal with what’s in there, and get things out of there.  Having a good sense of an items priority is so important – and we know the inbox does not do that well at all.  A nice side effect – other people see you as someone hopefully that is at least responsive to email, and not one of those people that forget things, don’t reply back, and you just never know if they are taking action, or at the very least – reading and considering your email.  I strive for that, but I’m not sure how effective I am; I suppose others will know better than I.

Principle II – Prioritize your Tasks

In some ways, I think this goes without saying.  I personally, feel that it can be overwhelming if I’m looking at a list of things that I need to take care of – and it’s huge.  I think sometimes leads people to organizational paralysis.  Sometimes, it’s tough to know where to start, or sometimes you figure you might as well start somewhere – and are focusing on the wrong things.

Very important in this, at least for me, is to re-prioritize at least once a day.  I say – when setting a task for yourself, choose a realistic due date, and do your best.  But the thing is – I don’t think I’m always successful at knocking out everything that I had planned on a particular day.  Things come up, unexpected plans happen, and in general – change happens.  The only thing worse than a huge list of un-prioritized things, is a huge list of Overdue things.  Not only does it become overwhelming [not knowing where to start], but it also subtly [or not so subtly] says – “failure.”  And that’s not helpful at all.  So here’s what I do:

  • Be realistic – make sure due dates are a best guess on what you can/should be doing today.
  • At the beginning of each day, I look for those tasks which I should have done already and are overdue.  Change their due dates.  Are they still the most important thing to do today?  Can they be done tomorrow with everything else that might be on your plate today?  Either way – the due date should never be left in the past.  Make them due today, or in the future.  Either way, be realistic.
  • As you get going through the day, periodically determine if what you have left to do today is still realistic – change the due dates of those things that you don’t have to to today to the future.
  • This one is more controversial – when setting the due date, I try to set the due date as late as possible, while still being responsive.  I don’t know if it’s procrastination, but either way it’s deliberate for me.  It just so happens that on any one day, I just have a lot to do, and trying to be optimistic, sometimes leads me to trouble.
  • Break Up the Big – If a task is so big that it itself is overwhelming, perhaps something like “Finish Marketing Plan” might be several days of activities.  Take the 5 minutes and break this down into much smaller chunks.  When estimating big projects, as a consultant, that’s what I do too – break the big things down to more granular levels so they can be comprehended.  For me – for example, any one task is no longer than hour or two.  This can vary depending on your type of work, and your tolerance for the big.  I enjoy checking-off those things which I can complete, so I get to the 1-2 hour of granularity.

What happens when you finish your tasks that you set up for the day?  Do you move onto tomorrow’s tasks?  Sure – if you have the time, but when you finish today’s tasks, take a step back – value your time, do you need some more time with your family or just to relax at home?  You’ve accomplished what you set out to do today, that itself is a great accomplishment.  You may have earned a break.  If I’ve been “on a roll” sometimes I’ll go ahead and get ahead for tomorrow – if i have the time, other times, I do take a break.  Either way – and this is perhaps the most important thing I can say – you’ve given yourself a few moments of control, you’re going to make that decision deliberately, and not be controlled by your task-list.

Posted in Time Management | Tagged: , , | Leave a Comment »

Managing Time and Tasks with Outlook – Part 2

Posted by cbkadel on December 12, 2009

So in Part 1 of this post series (http://cbkadel.polarissolutions.com/2009/12/12/managing-time-and-tasks-with-outlook/) – I talked about the need to have some sort of system to keep up, otherwise things get forgotten and people are disappointed.

In this post, I want to talk about more about the principles of such a system.  The title gives it away no doubt, but I think these principles might apply to whatever system you might think is useful for you.

  • Principle I – Keep a To-do List or Lists.  Having some place that you use to keep those things you need to do is important.  The act of “writing it down” can be tremendously useful in causing you remember those things.  And consciously know what is a to-do list for you, and what is not.
  • Principle II – Prioritize your To-dos. It’s only somewhat helpful to know you have a lot to do and what has to be done, if you don’t give yourself a hand in knowing where to start.
  • Principle III – Make Writing To-dos as easy as possible.  If we’re talking about building habits for working, you’re not going to adopt them unless it’s easy to do.  If the level of effort of “writing something” down is high, there is a diminishing return on the value it creates if managing that list or lists takes a lot of time by itself.
  • Principle IV – Make Checking your To-Dos as easy as possible.  If you have to open up some program you don’t use all the time already just to check what to do, you’re probably not going to do it.
  • Principle V – Reprioritize and Complete Items on your To-Do list.  If you have a system for checking what to do, if you don’t keep it clean, its usefulness is diminished.

You might have more key issues, these were the ones that I had in my mind as I set out organize my self.

Posted in Time Management | Tagged: , | Leave a Comment »

What’s On Your Podcast List?

Posted by cbkadel on December 12, 2009

Since I’ve gotten the Zune HD, I love keeping up with podcasts for those long drives or commutes in the morning or afternoon.  Sometimes I do get asked what am I listening to, so here’s my list of podcasts that I attempt to stay current with.

These are all available in the Zune Marketplace – and probably in iTunes store, but I don’t go there much/ever.

  • .NET Rocks! – Carl and Richard cover new topics in development, .NET, and other Microsoft technologies.
  • APM: Sound Opinions – Jim and Greg are music Critics out of Chicago that review music / bands as well as keep updated on the happenings in the music industry.
  • EconTalk – Russ Roberts, the host, is a professor of economics at George Mason University.  He’s a Chicago-School/Hayak follower for the most part, but he’s an excellent host that extracts some great economic opinions out of his guests regardless of theirs or his positions.
  • Mad Money (Full Episode) – Jim Cramer is the stock picking guy at CNBC – his full show in video is available.
  • NPR: Planet Money – This show started out focusing exclusively on the financial crisis of 2008, but now covers all sorts of issues that are in the news from a financial/economic perspective.  They go into way more depth than anything else I’ve seen on the news.
  • Radio TFS – Paul, Martin, and Mickey talk about the latest in Visual Studio on a semi-regular basis.
  • Security Now! – Steve Gibson and Leo Laporte talk about the latest news in computer security as well as go into depth on issues of interest.
  • The Ric Edelman Show – Ric is a financial advisor with a syndicated radio show that is podcasted.  He provides financial news.
  • This American Life – Weekly show from NPR which takes a theme and has several stories about that theme.  It’s neither necessarily technology or economics, but feels like an audio documentary.
  • Windows Weekly – Weekly show (hence the title) about Microsoft and Windows hosted by Paul Thurrott and Leo Laporte.

I guess someone’s podcast list can say a lot about them.  In my case – technology and economics/finance.  I think it would be interesting to see what others are listening to as well.

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

Managing Time and Tasks with Outlook

Posted by cbkadel on December 12, 2009

As most of my friends and family know, I’m in the consulting business.  This means usually doing a lot of things at the same time.  Consulting is not simply being a developer, or managing, or providing audits.  Consulting means doing those things, doing them well, and doing them all nearly in tandem.  I think there’s an analogy to processor time slices here, but I won’t make it.

In order to keep everything straight in my life (which means focusing on the important things – including my family and time at home), I have had to develop a system that helps me manage all those things to do, and my time.  I primarily use Microsoft Outlook 2007 to help me with this.  The next few posts that I plan to make, are going to be a departure from Visual Studio, .NET, or development, but focus on this important aspect.  It’s a system that I use to help me… that doesn’t mean it works for everyone, but I’m hoping this is useful to at least one person.

Posted in Time Management | Tagged: , | 1 Comment »

Welcome

Posted by cbkadel on December 11, 2009

I’ve decided to move my blog off of SharePoint to use WordPress.  After evaluating a number of blogging engines, I kept coming back to WordPress – which certainly has a very mature platform.

While I have been blogging for a few years, I feel that I wanted to get more frequent with this.  Most developers out there, including myself, run into things all the time, that isn’t solved quickly and must take some thought and problem solving.  Since I know we’ve all been there, I intend to post here on new things that interest me, problems I figured out – in case that helps someone else.

A little bit about myself… Yes, I do focus mainly on Microsoft technologies.  I have been a fan since I was in college and in that environment Microsoft was clearly the underdog – most people there were doing their development in Sun or some other Unix variant.  Microsoft helped sponsor the “Microsoft Programmers Club” there and gave us a bunch of free software – including Visual Studio.  I fell in love with that IDE and have been using it every since.

Today, I’m primarily working as a consultant and partner in Polaris Solutions (http://www.polarissolutions.com).  Usually, I am on projects implementing Team Foundation Server and helping organizations adopt Team System, though that name is significantly downplayed in the 2010 release.  While focusing on TFS and process methodology, I have been focusing primarily on Agile methodologies because of their emergent predictability.  I do believe that predictability within IT organizations is a very valuable aspect.  Some times it can be achieved by fiat, but organizations will fall into habits/ways of doing things that may be contradictory to that goal.  I mostly feel that with the adoption of Agile, it becomes easier for a group to become predictable because Agile embraces change – and in many ways where adopted – embraces simplicity.  Those things, they are constant, and I believe, essential for a successful IT organization.

Posted in Development Process | 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 »