Rewrite project - requirements SWAT team

In my current project we have had a problem. The project is a “rewrite” project that shall “convert” a VB6 application into a VB.NET version of it. I put those words in quotes for a reason; here-in lies much of our problem in my mind. From the business-side of the project this has been viewed as technical problem and project. It’s a 1:1 conversion (the word “re-compile” has been used at more than one occasion). We all know that this is not the case. And even if it was that simple and you actually could do a 1:1 conversion it’s a waste of time. But that’s another story. In any case, we have had problem to get the business to engage in our project. (When I say business here it refers to people with the knowledge and power to decide on what the system should do). And that’s not the...

Read More

TF203007 Cannot create the label because the version controlled item […] already exists or has been specified more than once

OK – I just broke my old “longest blog post title” but this was a problem we ran into today.

As I understand the message some kind of duplication has taken place, but I don’t know what to do about it. Well I found this on a msdn-forum:

This error is cause by one of your developer was deleted file and added exactly same file back in instead using undeleted feature, and in the backend database, TFS give this file new file id which has exactly same server path; therefore, when you are trying to label, it throws an exception which complaining file already existed. To work around this issue, you have to manually open label and remove […] Then you should be able to label again.

OK. One of those - “That’s strange, but it works”. Thank you Andy Pham.

Read More

Using ATDD in conversion project

I have been involved in a lot of conversion project. More specific it has been converting legacy VB6 applications to .NET applications. I’m not sure why or how but I have found myself in many project like this.

Common scenarios in conversion project

Very often these project has an ideal picture that “it’s just a conversion”. “This is 1 to 1 project” is a very common phrase in many of the projects I have been involved in. That can be understood as: “just convert it in the new language – with the exact same features”. I have even been asked to do bug conversion – that is to also convert any bugs I find into the new language.

Moreover, these project very often lack interest, time and effort from the stakeholders/customers/business people. To non-technical persons conversion is purely technical thing. “Just recompile it – let me know when you’re...

Read More

WCF, MVVM and good client design

Up to now most of my assignments has not been client-related. Often the project description and main focus is on the layers beneath the GUI. But lately I have seen a shift in the industry and more so in my own interest. Client-side stuff is coming on strong.

And it’s hard work to design a well structured client application. There are a lot of patterns but the frameworks and “recommended” ways up to now often doesn’t lend themselves well to those patterns. Ever tried to do proper MVC with WebForms or WinForms – it’s not easy.

But that has also shifted. I have written a lot on ASP.NET MVC – that of course supports the mother of all client patterns, MVC, in a great way. So enough said there.

But for “fat clients” such as windows clients there’s been a hazy mystery for me. I know...

Read More

Configure WCF in IIS for anonymous access

This case may sound strange and I have seen loads of post that describes how to get out of this behavior. But we have a case where we want to allow anonymous access and the let a external component manage the security validation.

This turned out to be very hard to figure out and required some wizard-like skills of Anders Granåker amongst others.

OK – the case is very simple. I have a WCF Service that I want to allow anonymous access to. I don’t care about message and transport security (for now). Just allow anonymous access – I’ll take care of the authorization in code.

Here is what I had to do to get it to work on Windows 2003 R2:

  1. Create a account on the server
  2. Put that account into the IIS_WPG group
  3. Create a virtual directory for my WCF service
  4. Create an application in that virtual...
Read More

Specification by example – the missing link?

I’ve been thinking. That statement alone will be sure to put fear in the heart of a lot of you… But if you have continued on this far, here we go.

Learning programming stuff

During the last year or so I have been reading a lot. I have read stuff on XP, on good design DDD and TDD. This reading has affected me and my coding style way much more than I first thought. I simply cannot write code anymore without the test first, interface first, thinking of SOLID etc..

Learning lean stuff

At the same time I have change role at Avega. I am now an AvegaCoach. This means that my time is divided between my regular (often coaching) assignments with customers and Avega and Elevate. Since my fellow AvegaCoaches (Joakim and Christophe) and me are interested in agile...

Read More

Calling SOAPUi Test script from MSBuild

Yes, I know that I have written about this before, with several updates. But I have now solved some issues with setting different endpoints for different services and thought that I might need to update the MSBuild-script to be able to call with those parameters also.

Again – the script I am starting off is written by Todd of the Tar Pit. I’ve just tweaked it to take project property as input. That was the recommended way to change the endpoint for one service, to set the endpoint to a project wide parameter.

So, here is what the new MSBuild targets looks like.

And here is a DOS-command that runs the MSBuild-target TestAll with the project property set to a endpoint.

Please note that I was running this on a 64-bit Windows 7 and got some strange paths (Framework64) that...

Read More

Home with children – everything’s fine

We have now been home for a while and things are settling down over here. Actually, it’s working pretty well so far.

Gustav and Arvid - in that order

Gustav is much better – he’s completely cured, to be honest. Both Arvid and Gustav are gaining weight and are generally happy, unless you change their diapers…

Arvid and Gustav - in THAT order

Small children sleep a lot, which is nice when you have another one to take care of as well. Albert is very loving towards Arvid and Gustav and enjoys holding them… with us watching closely. He can lose interest very quickly ;)

Gustav, Albert, and Arvid

So, all in all – we’re doing just fine. Thanks for all the greetings and congratulations (is that even a word?). We’ll soon come out of our cocoon and see you all...

Read More

Changing endpoint from the command line when testing services with SOAPUi

I have been singing SOAPUi’s praises lately and it’s really great for testing services. In this post I describe how I made the whole thing work for testing WCF Services. But, as stated in this post, there was still one more thing to be solved… The endpoints from the command line.

You want to use different endpoints in different environments. And in my specific customer case I want one of them to stay the same all of the time, since that endpoint points (sorry, could not resist myself) to a “singleton” kind of service. Luckily the SOAPUi team also have some great support (Thanks Ole, who replied in Swedish!).

So here you have it – how to change the endpoint for one of your services under test from the command line – which in my case means the build...

Read More

Status of work items – where to keep it

This is a question that arises very soon or sometime even before you start doing work with a board; Scrum, Kanban or Scrum-but.

Where should the status be? Or more often – “let’s use TFS” (and keep the work items in TFS/SharePoint/Excel and then make copies of them to use on the wall).

A variant of the question is; “we are a distributed team – can we still use the same board?”

Well of course there is not a yes or no answer to that but here is my take on it:

Low tech rules

First I think that no electronic system will ever beat the flexibility, simplicity and agileness of a board. See this for some examples. There are some that have come close but a low tech board communicates so much information with the added flexibility to move things around very...

Read More