Thursday, October 28, 2010

mt.exe Access is Denied

This is just a quick note so that web searches for a similar problem find a solution. Seemingly out of the blue, I started getting random errors of the form below when compiling C++ applications in Windows:

                mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "c:/mvcompile/bin/win32_debug/wavenis.exe". Access is denied.

It didn’t happen with every link, but with every second or so attempt. The problem was tracked down to the Anti-virus program. The solution was to exclude the build output directory within the Anti-virus advanced settings.

http://apolon.torqsoftware.net/

Monday, October 25, 2010

Software Complexity and the Business Owner

The following excerpt is from a Pragmatic Programmers podcast with Robert Martin. The discussion is about Agile development, but I believe it applies to any software development.

We have a lot of problems with Agile..The one that you just mentioned is one of them. There are programmers that don’t want to talk to customers, they just want to write the code. There are also customers that don’t want to talk to programmers because programmers are not the easiest people to talk to and customers tend to be busy and in some cases customers believe that the management of detail is the programmer’s job, not their job. So we have a disconnect in the industry where we try to do Agile development but to do Agile development requires programmers that are willing to talk to customers to understand the business issues and business people who are willing to talk to programmers and understand .. not the depths of the technical problems but some of the technical issues. Until we can cross that bridge we’re constantly going to have this problem.

....

But tools like this also miss the point. The problem is that business people believe that the management of detail is the programmers job and there is no way for a Business person to write a Cucumber test or a Fitnesse test without getting into detail. That’s the bridge that we’ve got to face somehow. Business people have to realize that there are details… not all of the details… but there are details that they have to deal with and the programmers are exactly the wrong people to have to deal with those business related details. Business people say it just makes common sense, just make the web site work. And the programmer says I can make it work by doing X and the business person is surprised a month later when he sees X on his web site and its exactly what he doesn’t want. He goes back to the programmer says you wanted me to make it work. You wouldn’t tell me what to do. So there’s got to be a much better binding between the business side and the technical side. Some people have tried to this with another layer – the business analyst layer, who is supposed to sit between the customer and the programmer and act as a liaison and I think that can work but boy or boy what a tough job. That business analyst is sticking is head out in two different directions and either of the two sides can chop it off…. He’s the one that hears from both sides why it can’t be done.

For other than relatively simple Software, the business person or software development customer has to expect to get down into the weeds of complexity to keep a software development project going successfully. This means dealing with the 1% cases and not glossing over the complexities inherent in their business. Software development is not a “fire and forget” proposition. You need to be involved and make decisions relating to the inherent complexity of your business. The point of this post is really as a pointer to a third party expert confirming that issues we come across with our customers are common issues and shouldn’t be discounted. I’ll more than likely have more posts like this quoting a third party expert on a software development matter. Some aspects of Software Development are just so counter-intuitive to the way “normal” business operates that it’s important to emphasize the actual nature of software development using third party quotes.

http://apolon.torqsoftware.net/

Tuesday, October 19, 2010

Inline Hockey

This post is a break from the usual software development heavy content and is about inline hockey. My son Benjamin was in the 11 and under age group representing Western Australia and played in the recent ILHA Nationals. He’s also been selected for the National Squad for the Bauer cup. It’s a fun fast sport and it’s amazing what experienced players can do on a rink. Check out the following highlights video from the recent nationals competition:

http://apolon.torqsoftware.net/

Monday, October 11, 2010

Dan Bricklin - Getting it

Listening to This Developer’s Life and enjoying it. The following quote from living legend Dan Bricklin is something I view as a truism. It’s a behaviour that just keeps recurring in working with customers or prospective customers:

Most people didn’t get it until they saw it in actual operation and only if it was useful for their problem… if they were shown it for their problem. I got… when I showed it to some people who did accounting they would get .. you know… they would start shaking and ….”It takes me hours and hours to do that and you just did it in 15 minutes”.

Dan Bricklin, photographed by Betsy Devine at a blogger brunch in Boston's Chinatown 2/25/2007

You can describe something in detail and talk through how a piece of software would work and get nowhere with the person you’re talking to. However if there’s a small prototype showing automation of some functionality that a person cares about then wham! They get really excited at what is possible. They “get it”  in an instant where no amount of whiteboarding or documents helped previously. It’s a combination of the dynamics of using a piece of software or maybe also some disbelief in what can be done without seeing it work live. The problem is that we can’t develop prototypes continuously to communicate. It would be an unrealistic commercial approach. A solution to this is to develop software prototypes for a fixed price. It’s a great way of exploring practical software possibilities and allows all parties to get a strong indication of what is possible and how much can be done with a fixed amount of resources.

http://apolon.torqsoftware.net/