Sunday, July 26, 2009

A Call to Action: Please help.

Hi, I just dedicated a page to my Family Member Annie McNeill at LIVESTRONG Action.

This page is a part of the world's largest dedication book that LIVESTRONG Action will use to pressure world leaders to do more to fight cancer. Can you add your name to my dedication page? It'll only take a second, and you can help me reach my target of 25 dedications. Please click here, it only takes a second:

http://www.livestrongaction.org/dedication/annie-mcneill

Right now, Lance Armstrong is dedicating his ride in the Tour de France to the fight against cancer. And after the race, he'll send this dedication book with your signature to world leaders and pressure them to make cancer a priority in their own countries. It's our best chance to push for better treatment, more funding for cancer research and access to care for everyone around the world. But if people like us don't stand up, these leaders won't pay attention. Will you check out my dedication page?

Annie McNeill inspired me to take action - hopefully they'll inspire you to do the same:

http://www.livestrongaction.org/dedication/annie-mcneill

Transparency in Software Projects

Status and health reporting of a project are paramount at all times, earlier the better in order to ascertain that a project is on track.

When stakeholders have full visibility of the efforts on a project and the results of that project then they are more able to have confidence that the project is on track.

The converse of this is a project that is not healthy but organizational pressures cause overly optimistic status reporting which masks the issues that need to be addressed. Management should look for transparency and accept that all may not be well but ensure that care is taken to address the issue at hand. An unrealistic deadline cannot be able more realistic by throwing additional resources at it.

When project health is not as it should be it’s important to identify the resources that are effective, and seek to identify those that have a negative impact on productivity and address this issue accordingly.

The full suite of tools in Visual Studio Team System when used properly can ease the burden of status reporting and provide transparency as to the health of the project. The Scrum for Team System can provide several useful metrics which can help ascertain the health of the project.

First and foremost the sprint burn down chart should be used as an early warning indicator that productivity is not as it should be. There are 2 reasons for a flat lining burn down chart. No status from developers or no developer progress. Either of these when it happens is easily address.

The build health reports can provide status as to the quality of the software being produced. Lack of good builds, coupled with poor unit test results should raise alarm bells as to the quality of the software. Stakeholders should expect to see a good amount of early testing and for this to continue as the project develops. These tests should be able to provide assurance as changes are made to the software throughout its development.

An additional report that can be useful is the code churn report. This describes to the view the amount of lines of code that have been changed in the time period specified. If on a larger project this does not tail of it’s reasonable to assume that there are large amounts of new development going on late in the day. This means that large portions of the solution have not either been written or is in a large state of flux which is not good late in the day as it would suggest that defect counts aren’t going to tail off.

Transparency of all these aspects should allow key decision makers to make early decisions around scope or delivery dates which will allow expectations to be managed and avoid situations where teams not set up for success.

Monday, July 06, 2009

IIS6 – Network Service username under impersonation

Had a problem on trying to configure IIS6 to run a website under a specified service account.

Setting the account to use the service account as the anonymous credentials and identity impersonate to true in the web.config didn’t get rid of the symptom of the network service account being passed through to a remote SQL Server.

The trick is to set the App Pool to use the service account and adding the service account to the IIS_WPG group on the web server.

Not quite sure how I avoided hitting this problem before but delighted to suss it out!

Scot ALT.NET – ORM Evening

I had the pleasure of attending my first meeting of the Scottish ALT.NET community last Thursday.

It was an interesting and informative experience around the use of ORMs to assist with .NET development. NHibernate and Fluent NHibernate were presented, then subsequently we were treated to a smackdown of NHibernate vs Microsoft Entity Framework.

Although the comparison of the two frameworks was more geared around the features and usability, I myself can’t get away from the database first approach that stems from being taught Codd’s rules at university. Why would we use a relational database if we’re going to be primarily concerned with making our data model map to our object model? I feel a good software system is born of a good data model.

Tooling should be used to take away any repetitive tasks, which are both boring and error prone but it should not take away the need to have a good working knowledge of all the components of your technology stack.

It’s also plainly clear that right now, the Entity Framework cannot be taken seriously. Maybe v4.0 with VS2010 will change this, but I remain to be convinced.

To this end, I will be sticking with technologies such as Linq to SQL or CRUD stored procedures coupled with template based code generation.