»

[24 Mar 2010 | 0 Comments]

MicrosoftCrm4Logo It is quiet clearly stated that the deployment tool with the Microsoft Crm Dynamics Toolkit does not work on 64bit servers but I always like a challenge. I worked with Dave Blake and Alex ‘The Genie’ Bojenko on solving this problem for the current CRM project I’m working on.

After a lot of digging around and trying various solutions I have come up with a workable solution, although it is not particularly pretty.

First: Update the deployment framework to use the latest version of PSExec.exe as version that comes with the tool does not work on 64bit environments. I’m using v1.97.0.0. The path to the file is:

<solutionroot>\BuildScripts\bin\Deploy\1.0\Framework\bin

Second: The core problem is the 64bit operating systems of Vista, XP, Windows Server 2003, Windows Server 2008 has two branches in the registry one for 64bit entries and one for 32bit entries. If you install Crm on a 64 bit server puts its settings in the 64bit branch and the MSCRM Toolkit deployment tool looks in the 32bit branch which causes the error.

I looked at various ways to change the deployment tool to read the right branch but they were very complicated and required a lot of rework as the problem is it is not possible to specify which registry branch to read with .Net 3.5. However .Net 4 does allow you specify which branch to read so I am hoping that Microsoft will update the Microsoft.Sdc.Tasks.dll registry classes to enable the reading of specific branches.

So what is the answer:

1) Export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM from the registry

1-ExportCrmRegistry

2) Edit the exported file and put in the 32bit path which is:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSCRM

2-EditExportedRegistry

3) Run the edited registry file so that it is added to the operating system’s registry

That is it! You will now be able to run the deployment tool.

It is interesting that Windows Server 2008 R2 and Windows 7 do not used the same approach for 64bit and 32bit registry keys so it is possible that the tool will work out of the box on these operating systems.

PS. – If you are using IPv6 do not enter ‘localhost’ to run the tool but the servername otherwise it does not work!

»

[16 Mar 2010 | 0 Comments]

I was reading an article in the Evening Standard on the 10th March 2010 called ‘Forget the degree, go for the gap year’ about the lack of value in getting a university degree in subjects like English and History. The general thrust of the article was that one of the City’s leading professional bodies were saying that only degrees that teach vocational skills, such as medicine, law or architecture are worth doing as you can use those skills to get a job. If you get an arts degree like English or History you run the risk of only having the skills to get a job asking ‘do you want fries with that?’ This got me a little annoyed; I believe that people get really valuable skills out of studying subjects such as English and History that enables them to be more successful in whatever career they choose later in life.

I studied History A Level at school so that is the subject I am writing about, which is supposedly not worth studying anymore. I will say why I believe studying History is more valuable today than it was 16 years ago, before the dawn of the commercial Internet, and I will also say why I think that employers are being very short sighted and blinkered if they disregard people that study this subject.

Why is learning about the historical events useful?

The quick answer is it is not at all useful in everyday life, perhaps it is if you are at a pub quiz or get on Who Wants to be a Millionaire but that is about it. What is useful are the skills you are taught and use during your studies.

What are the skills you learn when studying history

To study historical period in any detail you need to look at a lot of primary evidence, evenElizabeth_I_450 more secondary evidence and even more analysis and debate of this information. One of the periods of history I studies was the Tudors, lots happened during that period in the UK which shaped the world we live in today, The Spanish Armada, discovering America, leaving the Catholic Church to name but a few. So why is this useful? I cannot remember needing that information, however I found it taught me how to collect, analyse and rank large amounts of information to make informed decisions on who to believe and create a reasoned argument supported by evidence.

The easiest way to get these skills is to study a period of History which is well documented. The events and their consequences are known and perhaps more importantly evidence of the motives of those involved has come to light. This then allows lots of debate and analysis around the events and the supporting evidence. The history of Tudor’s has had 100’s of 1000’s of hours of analysis done on it, countless books and documentaries created, feature films, fierce debates rage about the interpretation of the evidence. So in summary there is a lot to get stuck into, it is a very stable set of information and having good Information Management skills is critical.

Some questions should you ask about evidence

  • How do you know you can trust it?
  • Why does it says what it says?
  • What has motivated the author to comment?
  • Why should you believe them?
  • Are they well informed?
  • Do other subject matter experts reference their work or use the evidence?
  • Are there other people that have similar views?
  • What does the Primary evidence tell us?
  • Should you do your own research and analysis on the Primary evidence?
  • What are the consequences of this information being wrong?
  • Who will benefit from you believing this information?

Why these skills are more useful than 16 years ago

We are now living in the ‘Information Age’ and these information management skills are so much more important now and will become even more important for the foreseeable future.

ghostbusters1216 years ago there were established ‘Information Gatekeepers’ who filtered out the bad and the ugly information then published the good to the masses via what we now call Old Media. For example The Encyclopaedia Britannica, other published books, documentaries, news papers. The information gatekeepers are highly skilled in ranking, gathering and publishing information so the masses did not have to be.

Then the Internet arrived and the rules changed, suddenly anyone could publish a website with whatever they thought on it. This lead to a new breed of Information Gatekeepers, the search engine. The key to Google’s success has been to rank websites based on the relevance of their content. The more relevant and referenced a website is the higher it’s Google ranking. This meant that the masses could still use this filtering mechanism to trust their sources but now needed to do a limited amount of assessment of the information they looked at.

However the rules have changed again in the last few years with the rise of services likegoogle-facebook-twitter Facebook and Twitter which we can call Social Media. These platforms have allowed individuals to share their own and see other people’s information, views and experiences in a completely unfettered way and this time there is no Information Gatekeeper at all. It is down to the individual to have the skills to be discerning about the information they are reading. People need to ask the same questions of Social Media information as a historian would ask about historical evidence. These Social Media platforms provide a number of tools to help people do this, such as the number of followers a Twitter account has, but have people been trained to know how to use this information?

In Summary

Those that believe subjects such as History are outdated and irrelevant in the modern world are being naive and short sighted. The skills gained in these subjects are becoming more important than ever before. Learning things is hard and so trying to teach people on a moving platform, such as the Internet, is a really bad idea. By using a stable platform, such as a set period in History with lots of high quality information, makes it much easier to teach people how to become effective Information Gatekeepers.

If you are an employer wanting to hire someone, you should consider giving more weight to the skills people have from non-technical subjects. Most people learn industry skills on the job and someone bringing skills learnt from subjects such as history is more likely to bring quality to the information used in their work and your company. This could in turn well lead to more quality to the business decisions that are made.

Remember, there’s a lot of crap on the Internet, it doesn’t mean you need to tread in it.

Software Developement, programming, Scrum »

[5 Mar 2010 | 2 Comments]

I have been following a new blog by Tim McOwan called www.devballs.com and it focuses on delivering software using a Scrum Process.

His latest article, Guess What? Scrum Developers should be cutting code, period! has provoked some interesting comments and my comment turned out to be so long I decided it should become an article in it’s own right. The comment I was replying to was from Jason Gorman, in a nutshell it was that Business Analysts are not required developers should work directly with the customer.

While I understood what was being said I could not agree with that point of view and it seems that it would be throwing the baby out with the bath water. It sounded very Us and Them which is a bad place to be and seemed to be describing problems associated with a waterfall approach rather than scrum.


I'm a developer and have learnt some very hard and expensive lessons over the last 2 years about the holistic success of software projects, not just [more] the technical success. This has given me a very different view and appreciation of what non-technical people bring to the overall success of a project, essentially removing that developer chip on my shoulder.

I strongly believe:
1)    That BA's can have an important role but are not always essential.
2)    Having a good manager is a must
3)    Using Scrum properly means that everyone knows and values what everyone else is doing.

The Manager

The reason you need a good manager / scrum master is to protect your developers from the customer and enforce the Scrum rules. They ensure the bits of the project jigsaw will fit together. They should be masters of the political game, they should be setting customer expectations, organising the customer's people to be available, keeping them up-to-date, making sure that the developers don't have any impediments stopping their development, keeping an eye on the team, settle any disputes etc. They don't need to cut code they just need to pull it all together. And if they are good nobody notices how hard/well they are working. (well I notice nowadays).

The Business Analyst (BA)

It is a common experience that developers have of a BA who don't deliver great information. However they do get a first version of this information and that can be a full time job in itself. It is hard to organise meetings with the customer. How many times at a first meeting do you ask someone what they want and they just have not thought about it. How many times does one department know what they do but are not really sure what other departments do and fit in. There's another meeting to organise and another then another. Finding out who does what is really really hard and takes a long time. As a developer I don't want to do that for days or weeks at a time, I want to be cutting code.


Where there is complexity and uncertainty in the business requirements let the BA's at it so that an overall picture can emerge and prioritisation of what delivers the most business value can happen. However if it is a fairly small, well defined business requirement I don't think you would need a BA and letting the developer engage directly with the customer would work very well.


The BA also serves another role which is essentially after sales / customer care. Once the software has been written and made live the BA should go back to the customer and see how well it is working. It could be the new software has thrown up some unforeseen problems. This is all very time consuming and having a highly skilled developer doing this makes little sense. It requires a personal and working relationship between the project team and the customer again this takes time to develop. Let the BA’s do this which frees up the developers to write software.

The Developer

We like creating stuff, we like solving technical problems playing with latest technologies, new software packages, coding techniques. Letting a developer loose with the customer to get requirements could quickly turn into an indulgence of what we want to do rather than solving business problems. We will be coming up with the technical solution to a problem before the problem has been properly thought through. It is fairly easy to persuading the customer they need a more complicated solution than is required.


By giving the developers a first version of the requirements and then let us think of the solution is a much more sensible approach. Yes the requirements will consist of nonsense and contradictions but the general direction has been set and we just need to work through the detail. The BA’s and customer will be on hand to help navigate this minefield.

Scrum

Here’s the kicker, using scrum properly ensures high communication and visibility between everyone involved in the project. There should not be “developers in meeting rooms  gassing about it with analysts and managers”. The analysts should be on hand to sit with you when you develop something, even better – get the customer involved. The dev’s will see what the BA’s are doing and visa-versa which should foster a sense of ‘Team’ and if someone isn’t delivering value it will become apparent pretty quickly. They should either be helped to perform or removed from the team.

 

Summary

So in summary, a scrum team needs these different roles and everyone brings value to the project and if they don’t it will be seen and there should be systems to deal with them. The manager protects the dev team and brings it all together, the BA’s build relationships with the business and get requirements and makes sure that the software has delivered value, the dev team get 3 week sprints to develop working software and are able to call on the BA’s / customers to clarify any nonsense and contradictions.


I read a book about 6 years ago called Coding Slave by Bob Reselman, it was a good read. One bit stuck in my mind and that was us coders are like Charlemagne’s scribes and I think this is very true:
http://www.informit.com/articles/article.aspx?p=170198

It has taken me a long time to appreciate this but now I appreciate the value others bring I am much happier in my own work.