But it works on my PC!

The random thoughts of Richard Fennell on technology and software development

Great book on Kanban

I won’t bother to repeat what Gojko has said on David J, Anderson’s book on Kanban, other than to say I agree wholeheartedly.

I too have been looking for a good introduction book on Kanban as applied to software development (so Kanban as opposed to kanban, not the capital K). This is exactly what with book does. OK I know that this information is out there on the web (http://www.limitedwipsociety.org/); but there times, especially for introducing potentially non technical people to development methodologies, where you want to point people at an easily accessible introduction they can dip into. This is that book, have a look it is worth it

More on my Vodafone 403 errors – an explanation at least

The next chapter of the ongoing saga. I had the 403 errors again today when using my phone as a modem to test out firewall. As I was in the office I had time to call Vodafone support. As expect I had to speak to a succession of people:

  • Person 1 – call centre advisor, passed me straight onto ‘support’
  • Person 2 – support advisor but seem lost when I spoke about web protocols, I think it was more ‘making a phone ring’ support
  • Person 3 – 2nd line support, success, as soon as I explained my problem they said ‘yes that happens’.

The problem is down, as I had suspected, to congestion in their WAN network (not the 3G network, though the density of cells is a factor). When you try to use HTTP Vodafone route a request to their authentication server to see if your account is allow to connect to the site. By default they block a list of adult/premium web sites (this is service you have switched on or off with your account). The problem is at busy times this validation service is overloaded and so their systems get no response as to whether the site is allowed, so assume the site you asked for is restricted and gives the 403 error. Once this happens you seem to have to make new 3G data connection (reset the phone, move cell or let the connection time out) to get it to try again.

I have now had the restricted service removed from my account, we will see if this help. I fear it will not as any connection still has to ask the authentication server if the site is restricted even if my account is set to restrict no sites.

So it seems that volume of smartphones is really hurting Vodafone's internal network. They seem to have the 3G/Edge capacity, shame they have not got enough server wan/capacity to back it up yet.

What I don’t understand is why this has taken me so long to get a sensible answer. Can’t they publish a statement on this problem on their support forums or web site?

Looking for a good overview of Visual Studio 2010 and ALM?

Visual Studio 2010 provides many new features to aid Application Lifecycle Management. Learning its capabilities can be a bit daunting, especially if you are new to Team Foundation Server.

So enter the new book ‘Professional Application Lifecycle Management with Visual Studio 2010: with Team Foundation Server 2010’ by Mickey Gousset, Brian Keller, Ajoy Krishnamoorthy and Martin Woodward. This provides a great overview of all the the key features of Visual Studio and TFS 2010, presented with a view as to how TFS gives an end to end delivery of an ALM process.

Don’t go expecting this book will tell you everything about TFS, even at 600 pages it cannot be that detailed, it is a huge product, you think SharePoint is big, well it is just a subset of TFS! To address this potential problem the book contains many links of to relevant sources both on MSDN and blogs to fill in the extra detail you are bound to need concerning TFS and general development processes. Think of it as a “get you started” book, or a “what’s new in this release”, not a day to day administrators guide.

My one complaint, and it is very minor, is that it does read a bit like a collection articles as opposed to a single book. However, given it has four authors and the scope of the subject it covers this is forgivable.

So if you are are considering TFS 2010, whether as a developer, a sys-admin or manager this book will give you a good introduction into that you can achieve in your ALM process. Well worth a read.

 

51GBrWYIk1L__BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU02_

Stupid support suggestions from Vodafone about 403 server proxy errors

A while ago I blogged about the problems I was having with 403 error when trying to use my HTC phone as a 3G modem or using Opera or IE on the phone itself. When I initially complained Vodafone refunded my data fee for the month and said engineers were onto this known intermittent issue. No grief, Ok I did not want to see 403 errors but I was happy with the customer service, fast and no quibble.

But the 403 errors have not gone way, in fact I am seeing them more often and not just when in the square mile in London. When I complained again I got a different level of service, I got the ‘it is your handset’ response. This was even though I had clearly said FTP and HTTPS (to an Exchange server) were fine it was only HTTP again via the phones two browsers and from a PC using the phone as a 3G modem i.e. traffic that they proxy.

They outdid themselves today with this suggestion

1. Switch off your phone
2. Remove battery and SIM
3. Clean it with clean cotton cloth
4. Insert battery and SIM after 15 to 20 minutes

How this is meant to help a server side error how? 

Post AIC 2010 Thoughts

I was at the AIC 2010 conference yesterday, which I enjoyed more than last year. The most interesting session was Ivar Jacobson. He discussed how immature our industry is, with its disjoint between software engineers and academic computer scientists. Something I have commented on before when discussing if our industry should be licensed.

He discussed how we need to build our industry upon commonly agreed kernel of simple best practice activities, not upon some currently fashionable process whether it be Waterfall, CMMI, Agile, Lean etc. We must identify what are the best practices from all process (and all processes have something to offer) and teach them to students at University as this kernel of activities, as well as teaching how to compose them into more complex practices and hence whole development processes. Thus providing new entries to our industry with the base of reusable techniques that the can use for their whole career, irrespective of fashion. The key idea being that any current process model can be build by composing these kernel of basic activity.

So if this sounds interesting, and it does to me, have a look at www.semat.org. The signatories aim to have results within the year, if they achieve this aims this could well be the first step to making Software Engineering on a par with other chartered engineering disciplines such as Structural or Mechanical Engineering, with there is a long term set of industry accepted best practices that people can be judged against.

Post QCon thoughts

Interesting time at QCon yesterday,  shame I was only there one day, I do like the events that are not limited to a single vendor or technology. The multi presenter session I was involved in on Microsoft interoperability seemed to go well, there is talk of repeating at other events or podcasting. It is a nice format if you can get the sub-sessions linking nicely, like themed grok talks. 

Due to chatting to people (but that why you go really isn't it?), I only managed to get to one other session, but I was the one I wanted to see, Roy Osherove’s on using CThru to enable testing of monolithic frameworks such as Silverlight. It got a few things clearer in my mind over using CThu, a tool I have tried to use in the past but not had as much success as I hoped. So I think I will have another go at trying to build a SharePoint workflow testing framework, the problem has rested on the back burner too long. I think I just need to persist longer in digging to the eventing model to see why my workflows under test do not start. Roy’s comment that there is no short cut for this type of problem to avoid an archaeological excavation into the framework under test, I think is the key here.

Getting sick of seeing the Vodafone error “HTTP Error 403: The service you requested is restricted”

Of late I keep getting ‘HTTP Error 403: The service you requested is restricted’ when I try to use my HTC Diamond2 mobile phone on Vodafone. I see the problem whether browsing the internet with mobile IE or Opera and also when using the phone as a 3G modem  from my Windows 7 laptop. Seems to happen every other day of late.

image

Interestingly, when I got the error shown above whilst trying to browse to Bing, a connection, on the same 3G link, from my PC to our Exchange server was working fine.

This error seems to be a reoccurring problem judging from posts on the various Vodafone forums. In most cases the problem just seems to go away if you wait long enough, which is my experience. I can find nothing I can do or set on the phone that makes a difference. My guess is a proxy error in the Vodafone cloud. They really need to get it sorted out.

I have been a happy Vodafone customer for years, since I first got a mobile phone in the early 90s, but this is happening too often and it is seriously making me think of moving. Mobile internet is becoming too important to be to have it as such an unreliable service.

Is Pex and Moles the answer to Sharepoint testing?

I have got round to watching Peli de Halleux’s presentation on testing SharePoint with moles from the SharePoint Connections 2010 event in Amsterdam, very interesting. This brings a whole new set of tools to the testing of Sharepoint. I think it is best to view the subject of this presentation in two parts Pex and Moles, even though they are from the same stable; Moles being produced to enable Pex. But rather than me explaining how it all works just watch the video.

So to my thoughts, the easier bit to consider is Pex. If you can express your unit tests in a parameterised manner then this is a great tool for you. The example that Peli gives of an event handler that parses a string is a good one. We all have loads of places where this type of testing is needed, especially in Sharepoint. The problem here, as he points out, is that you need to use some form of mocking framework to allow the easy execution of these tests for both developers and automated build servers. I would usually use Typemock Isolator to provide this mocking, the problem is that Pex and Isolator at this time can’t run together. The Pex Explorer does not start the Typemock mocking interceptor, and thus far I can’t find a way to get round the problem.

So enters Moles, this is Microsoft Research’s subbing framework that ‘detour any .NET method to user-defined delegates, e.g., replace any call to the SharePoint Object Model by a user-defined delegate’. Now I find the Moles syntax is a bit strange. I suspect it is down to my past experience, but I still find the Typemock Isolator AAA syntax easier to read than Moles’. However, there are some nice wrapper classes provided to make it easier to use the Moles framework with Sharepoint.

So where does this leave us? At this time if you want to use Pex (and I certainly would like to) you have to use Moles (if you need stubbing). But you also have to remember that Pex & Moles are research projects. They are available for commercial evaluation, but at this time there seems to be no plans to productise it or roll it into Visual Studio, this means on effect no support. I don’t see either of these points as being a major barrier, as long as you make the choice to accept them knowingly.

However for ultimate flexibility it would be really nice to see Typemock Isolator being interoperable Pex, thus allowing me to use the new techniques of Pex against legacy tests already written using Isolator.

At last, my creature it lives……..

I have at last worked all the way through setting up my portable end to end demo of  testing using Windows Test and Lab Manager. The last error I had to resolve was the tests not running in the lab environment (though working locally on the development PC). My the Lab Workflow build was recorded as a partial success i.e. it built, it deployed but all the tests failed.

I have not found a way to see the detail of why the tests failed in VS2010 Build Explorer. However, if you:

  1. Go into MTLM,
  2. Pick Testing Center
  3. Select the Test Tab
  4. Pick the Analyze Test Results link
  5. Pick the test run you want view
  6. The last item in the summary is the error message , as you can see in my case it was that the whole run failed not any of the individual tests themselves

image

So my error was “Build directory of the test run is not specified or does not exist”. This was caused because the Test Controller (for me running as Network Service) could not see the contents of the drop directory. The drop directory is where the test automation assemblies are published as part of the build. Once I gave Network Service read rights to access the \\TFS2010\Drops share my tests, and hence my build, ran to completion.

It has been a interesting journey to get this system up and running. MTLM when you initially look at it is very daunting, you have to get a lot of ducks in a row and there are many pitfalls on the way. If any part fails then nothing works, it feels like a bit of a house of cards. However if you work though it step by step I think you will come to see that the underlying architecture of how it hangs together is not as hard to understand as it initially seems. It is complex and has to be done right, but you can at least see why things need to be done. Much of this perceived complexity for me a developer is that I had to setup a number of ITPro products I am just not that familiar with such as SCOM and Hyper-V Manager. Maybe the answer is to make your evaluation of this product a joint Dev/ITPro project so you both learn.

I would say that getting the first build going (and hence the underlying infrastructure) seems to be the worst part. I feel that now I have a platform I understand reasonably, that producing different builds will not be too bad. I suspect the next raft of complexity will appear when I need a radically different test VM (or worse still a networks of VMs) to deploy and test against.

So my recommendation to anyone who is interest in this product is to get your hands dirty, you are not going to understand it by reading or watching videos, you need to build one. So find some hardware, lots of hardware!