.Net 1.1, Visual Studio 2003, and TFS 2010


So, you have some old .Net 1.1 apps that you don’t want to upgrade, BUT you want to use TFS 2010 for your source control.  Well you are in for a treat! (kidding)

First, you’re condemned to using VS 2003, because VS 2005, 2008, and 2010 only deal with .Net 2.0 and higher.

Second, because of this, you’re condemned to using the TFS 2010 MSSCCI provider; which is a not very well documented, unsupported by MS free tool. 🙂 (Have fun)

This guy has a great post with screenshots to lead you through the gauntlet!

Third, heaven help you if you’re migrating your source from another source control provider like SourceSafe or PVCS.  You’ll need to unbind the code from the old source ccontrol provider and then re-bind it to TFS 2010.  A treachous course that shouldn’t be taken lightly.

But otherwise, have fun!

Great article on distinction between Software Engineering and Software Development


Even though this article is five years old, it is just as salient and relevant today as then.  The author’s main argument is that software development is applied software engineering.  What a great way to think about the two concepts!!!  I think he’s exactly spot on, but it’s hard to get to this idea because of our experience of engineering is applied physics and physics is applied math.  I’ve never thought about applied engineering!  I always thought it should be applied computer science, but I was never comfortable with that idea.  I rarely use concepts from CS.  Maybe algorithms, but that’s about it.  This really fits!!  I encourage you to read this article if you’re interested in how our field is shaping up in this century!

http://www.ibm.com/developerworks/rational/library/dec05/pollice/index.html

 

CMMI version 1.3 and Agile


Well, the Software Engineering Institute (SEI) just published the newest version of the venerated CMMI and there are many side notes in the CMMI-DEV version that touch on using an Agile methodology with CMMI.  I’ve always thought this was possible and I’m glad to see the SEI has taken the lead.

For example, here is the “Agile note” in the configuration management section:

In Agile environments, configuration management (CM) is important because of the need to support frequent change, frequent builds (typically daily), multiple baselines, and multiple CM supported workspaces (e.g., for individuals, teams, and even for pair-programming). Agile teams may get bogged down if the organization doesn’t: 1) automate CM (e.g., build scripts, status accounting, integrity checking) and 2) implement CM as a single set of standard services. At its start, an Agile team should identify the individual who will be responsible to ensure CM is implemented correctly. At the start of each iteration, CM support needs are re-confirmed. CM is carefully integrated into the rhythms of each team with a focus on minimizing team distraction to get the job done.

I especially like this one from the Requirements Development section:

In Agile environments, customer needs and ideas are iteratively elicited, elaborated, analyzed, and validated. Requirements are documented in forms such as user stories, scenarios, use cases, product backlogs, and the results of iterations (working code in the case of software). Which requirements will be addressed in a given iteration is driven by an assessment of risk and by the priorities associated with what is left on the product backlog. What details of requirements (and other artifacts) to document is driven by the need for coordination (among team members, teams, and later iterations) and the risk of losing what was learned. When the customer is on the team, there can still be a need for separate customer and product documentation to allow multiple solutions to be explored. As the solution emerges, responsibilities for derived requirements are allocated to the appropriate teams. (See ―Interpreting CMMI When Using Agile Approaches‖ in Part I.)

Download the latest CMMI-DEV and enjoy!

Upgrading from WSS 3.0 to SharePoint 2010 on TFS 2010


So, you installed TFS with the basic install and it just put WSS 3.0 on there by default.  No you want to go to SharePoint 2010!  Not so fast!  The install guide is not that helpful and can be right down misleading in this regard.  So, having just completed this ordeal in a shade under 10 hours (with MS support), let me give you my lessons learned.

  • You will have to do a database attach upgrade of SharePoint (in-place is not an option) with WSS.
  • Make sure to un-install WSS 3.0 AND un-install the TFS SharePoint extensions feature  BEFORE installing SharePoint
  • If you are unable to get TFS to recognize that you did indeed uninstall the SharePoint extensions, use this command: Tfsconfig setup /uinstall:sharepointextensions
  • If all else fails, you may have to manually install the TFS SharePoint extensions, which is really just a set of three SharePoint solutions.  Here are the commands to do so:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin\stsadm.exe -o addsolution -filename “c:\Program Files\Microsoft Team Foundation Server 2010\Tools\Templates\Microsoft.TeamFoundation.SharePoint.wsp”

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin\stsadm.exe -o deploysolution -name Microsoft.TeamFoundation.SharePoint.wsp -local -force

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin\stsadm.exe -o addsolution -filename “c:\Program Files\Microsoft Team Foundation Server 2010\Tools\Templates\TswaWebPartCollection.wsp”

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin\stsadm.exe -o deploysolution -name TswaWebPartCollection.wsp -local -force -allcontenturls -allowgacdeployment

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin\stsadm.exe -o addsolution -filename “c:\Program Files\Microsoft Team Foundation Server 2010\Tools\Templates\Microsoft.TeamFoundation.SharePoint.Dashboards.wsp”

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin\stsadm.exe -o deploysolution -name Microsoft.TeamFoundation.SharePoint.Dashboards.wsp -local -force

IISRESET /noforce

  • Do not use “Claims” authentication for your SharePoint web application
  • Make sure the TFS Admin account is also put as a Site Collection admin

Otherwise, easy-squeezy, lemon-pleasy 😉

TFS Agile 5.0 Planning Worksheets


Want to get the planning worksheets outside of TFS?  Here they are:

Product Planning

Iteration Backlog

Follow these instructions from Aaron Bjork to use:

Product Planning Workbook

To bind the Product Planning workbook to your team project follow these steps:

  • Open the Product Planning workbook.
  • Place your cursor in cell A1 of the Product Backlog worksheet.
  • Switch to the Team ribbon and click New List.
  • Select your Team Project and click Connect.
  • From the New List dialog, select the Product Planning work item query.

Your Product Planning workbook is now connected to your team project and ready to use.

Iteration Backlog Workbook

To bind the Iteration Backlog workbook to your team project follow these steps:

  • Place your cursor in cell A1 of the Iteration Backlog worksheet.
  • Switch to the Team ribbon and click New List.
  • Select your Team Project and click Connect.
  • From the New List dialog, select one of the Iteration Backlog queries.  The query you select must be a Tree query and must contain a parent/child relationship between User Stories and Tasks.

image

  • Save the workbook locally.
  • Close the workbook and re-open it.
  • After re-opening, the workbook will attach itself to your Analysis Services server and set values for a series of document properties use by the burndown worksheet.
  • Save the workbook again.

Your Iteration Backlog workbook is now connected to your team project and ready to use.

 

Software Engineering isn’t dead yet, BUT….


Tom DeMarco wrote an article a couple of years ago proclaiming that Software Engineering was dead that caused a real stir in the software field.  I opposed his view then; but sadly I’m beginning to think he had seen a glimpse of the future.

Today I did my last search for SWEBOK (the Software Engineering Book of Knowledge) in hopes of actually finding something coming out of this incredibly slow and opaque group.  My expectations were met, as they once again neglected to tell anyone where exactly they are in their unpublished process.  If any democratic process was run like this, we’d see Wisconsin style protests.  But alas, this is a dying beast that is finding its way to the bottom of irrelevance.

I think it started with the Agile Manifesto.  Almost none of the signatories came from Academia and it has shown.  They don’t publish in IEEE Software.  They don’t need to.  They get things done.  Which, of course, is what many academics in Software Engineering can’t do (see Exihibit A – SWEBOK).  I don’t want to paint too wide of a stroke.  There are of course exceptions like Mary Shaw and Tao Xie.  But many academics published articles are much like science fiction, somewhat entertaining, but not really useful.

This stems from the fact that most are tenured and have never worked a day in their life as a REAL software developer.  Its like writing about sex while still a virgin.  Exciting for the writer, but woefully invaluable for anyone else.  Let us look at the present month’s edition of IEEE Software, their leading journal. Oh wait, that will be $20 an article (because we all know they are just that valuable).  A requirements article, that looks potentially useful.  Oh it’s about GORE and SORE.  You don’t know about GORE and SORE !?! Oh you better get in the know; because that’s the new rage in software development.  Yeah, Dr. Seuss invented the terms.  Wait, an article on Architecture, now that should be promising.  “Unusable Software is…”  wait for it….. “Useless”.  Woah!!!  What a find!  20 years from now we will definitely be talking about this one.  And wait, you get more,  it’s only Part I!!!!

We don’t even use the term Software Engineering any more in the field where we actually create software.  We call it software development.  We can’t even agree on the same term!  IEEE Software went downhill after Steve McConnell (someone who HAS written real software) left and it may have been an omen that Software Engineering is going down too.

 

Google Chrome Extension to switch between multiple monitors


So I have dual monitors and I love my UltraMon tool.  It puts a little button on every window that immediately puts the window in the other monitor when clicked.   Every window, except Chrome!!!  I was hopeful that I could write an extension to do this, but unfortunately I don’t think it is currently possible.  The windows api looked to be the best bet, but it came back with the minimized window width and height instead of the maximized window’s width and height.  This seems to be a bug to me.

But even if they could do that right, it still doesn’t seem possible.  Chrome’s extension api is very young and immature right now, which I can see from both the api and currently available extensions.  I hope it matures quickly!!!