Atheists are starting to annoy me

Let me start by saying that I am an atheist, and have no problem with self-identifying as such, but recently I have started to get annoyed by some of the denizens in the atheist community.

I will go over the types of atheists that have started to get my goat a little. [note that I am currently in a lot of pain thanks to my sciatica, so my tolerance has evaporated, so I need to vent a little]
Continue reading

Cash Driven Development – Distributed Prioritisation

One of the recurring issues of using Scrum, or any agile process, is how to determine the priority of stories/tasks in the backlog. This is usually more difficult than determining effort.

The Product Owner usually uses their best guess, based upon their experience and close discussions with client, to do so. However, I have worked with clients that often have internally conflicting business needs that are not simple for Product Owners to reconcile.

While on a chat with Thomas Johnson talking about my current woes looking for new employment, we talked about this particular issue and our discussion inspired us to come up with an interesting concept that he called Tender Driven Development, and I called Cash Driven Development, that essentially distributes the prioritisation process across client stakeholders to handle conflicting business needs.

Essentially, the client gets an overall budget for the project, and then have to allocate their project points to the stories/tasks as they see fit. This is really an extension of the famous Story Points model, but from the client prioritisation side, and not using Fibonacci.

Let’s say that the client has two competing business owners, they each get 500 project points to allocate across the 100 stories/tasks, which they then do. The Product Owner then chooses to implement the ones with the highest aggregated points first. [Taking into account any interdependencies, of course]

This is akin to a person waving a 50 Euro note in a bar standing next to someone waving a 20 Euro note. The 50 Euro note guy normally gets served first. [Frustrating, but that’s capitalism]

Now, I have been in a situation where we actually tried similar to this with a client during the initial specification phase of a large project, but there was no budget and no internal conflicts to resolve. We used the same Fibonacci approach as used in effort estimation. This lead to the client considering everything a 1, and virtually nothing as a 3 or 5. [Low values had higher priority in this approach]

By giving the client a fixed budget of project points and, if there are competing business needs, splitting this up across the stakeholders, we can get a clearer understanding of the actual priorities of the client, without the Product Owner getting bogged down and confused with the clients internal politics. [Any features that end up having 0 points would be removed from the backlog.]

I am aware of similar techniques, like Microsoft’s Buy a Feature approach, but they put a “price“, usually related to effort, on each story/task. To me this is going a bit far, and not very agile, as we need to have the developers estimate their effort before the client prioritises the backlog. Whereas, in Scrum and most agile process, the effort estimation occurs in the sprint planning stage after prioritisation.
The Cash Driven Approach [or Tender Driven] is really just a simple tool to assist Product Owners gain an insight into the clients own prioritisation of features which they can then use to assist them in the prioritisation of the stories/tasks for each sprint. Unlike the client the Product Owner has to understand the impact of stories/tasks that are not directly related to features [like; knowledge acquisition, technical debt, and bug fixing] that would not be considered a high priority to a client stakeholder.

“20 arguments for the existence of god” or “20 ways to delude yourself into affirming your existing beliefs”

Andreas Geisler over on G+ has challenged some of his theist detractors to frame one of the 20 arguments for god in their own words so that it provides a compelling argument for the existence of god. Now, I had never heard of these 20 arguments for god. I have heard many of them independently of this list, after having read the list here, but never seen them written down in such an ‘accessible’ manner.

Here are my refutations, should anyone even care.

Continue reading


Friday March 6th 2015, Interview with project scientists Dr. Samuels and Dr. Maartens. [cont]

Interviewer: So... it was all an elaborate con?
Dr. Samuels: Well, it was definitely a deceit. Something that allowed us to continue our 'research' without any undue governmental...
Dr. Maartens: or public
Dr. Samuels: <pause> ... or public, interference.
Interviewer: But, as this was ostensibly a military project, you did have to contend with congressional oversight.
Dr. Maartens: <laughs>
Dr. Samuels: <smiles> That was our intent.
Interviewer: I... don't understand
Dr. Samuels: Prior to this project, in the late 80s, Dr. Maartens and myself were members of a DARPA project to develop an EMP device that would disable the ignition on all vehicles within a 10km radius. Congress decided that the project was not worth the money and then shelved it. We were 80% complete.
Interviewer: A weapon... that stops vehicles... on the battlefield?
Dr. Maartens: And an MBT with no power is a 1,000 ton lump of metal of no use to an enemy.
Interviewer: So, at 80%, you were nearly done, and then congress shelved it?
Dr. Maartens: Exactly. We had even lab tested the prototype. It was actually going to work.
Dr. Samuels: What we worked out from that experience was that 'getting' the funding from congress is the easy part. It is 'keeping' of the funding until the completion of the project that is next to impossible.
Dr. Maatens: Especially nowadays. We have a head of the congressional science subcommittee that thinks the internet is a series of tubes, that the earth is 6,000 years old, that humans co-existed with dinosaurs and that climate change is a fairytale. If our 'leaders' in congress cannot even understand basic science, what chance do we have of completing any promising research?
Interviewer: I do not see how such a revelation could lead to what happened with this project.
Dr. Samuels: Well, we created a project proposal and sent it to the appropriate congressional subcommittee. We ensured that the request was clearly marked as "sensitive to national security"
Dr. Maartens: Immediate approval... Always...
Dr. Samuels: Because the subcommittee contained scientifically illiterate morons they did not understand what the whole thing was about. Somehow they came away with an 'understanding' that what we were developing was some kind of battlefield electromagnetic weapon for directed SigInt interference. When it was actually for artificially creating an aurora.
Dr. Maartens: <spreads arms above head> Pretty lights... in the sky!
Interviewer: What!? And... and that is all it does?
Dr. Samuels: Yes. What happened next was such good fortune that we could hardly believe it. Conspiracy theorists somehow heard about the project. And as it was a classified project, thanks to being marked as "sensitive to national security", only the congressional subcommittee...
Dr. Maartens: ... full of scientifically illiterate morons ...
Dr. Samuels: ... had read any of the reports. The general public ... 
Dr. Maartens: ... who are not scientifically illiterate morons ...
Dr Samuels: ... were not even allowed to see them, and so the conspiracy theorists started prying into things and found out ...
Dr. Maartens: ... we think from a congressional intern ...
Dr. Samuels: ... what the congressional subcommittee members 'understood' about the project.
Dr. Maartens: So, as soon as these conspiracy theorists started nosing around congress... 
Dr. Samuels: ... it suddenly became an echo chamber. The conspiracy theorists fed the scientifically illiterate 'understanding' that we had built some kind an electromagnetic weapon back to the same subcommittee members that had the 'understanding' in the first place, and that helped reinforce the subcommittees determination to see the project through to completion.  <sits back in chair>
Interviewer: ... So. What were you doing those 24 years? Surely it did not take that long to create an aurora?
Dr. Samuels: No. No. We were able to do that in the first 5 years. The remaining 19 we have been eating pizza, drinking beers, kicking back,...
Dr. Maartens: .. and watching the best damn light-show that the US taxpayer can provide.


Why Facebook Said No to Individual Code Ownership <

Why Facebook Said No to Individual Code Ownership <

An interesting dilemma.
I have had it both ways. Sometimes it is great to be the sole engineer in charge of a piece of functionality. [I have the POWERRRR!]
However, I feel it works better if you have the TA/TL being responsible for the overall quality of the implementation, through code compliance /automation/unit tests/code reviews/mentoring/ etc., and then allocating developers on a per task/availability basis. Rotated around the different parts of a code-base. Of course, you do sometimes have some developers in the team who are better at, or more familiar with, a problem domain or technology. But you should attempt to share that knowledge amongst the team. Of course, you should always estimate tasks/stories based upon the ‘average developer’ in your team, and not the most capable for that task/story.
A lot of TAs/TLs, myself included, have made this mistake. It is a well known cognitive bias called the Dunning-Kruger effect. Keep your eyes open to unintentionally underestimating how long other developers, who are not as knowledgeable as yourself, will take to complete a task/story.

ThreadAbortException and long running scheduled jobs

We were experiencing some weirdness, seemingly random thread death of long-running scheduled jobs and background worker threads, in our development environments. This was bad.

Looking through the IIS event log I found

A worker process with process id of ‘7156’ serving application pool ‘dev.pool’ was shutdown due to inactivity. Application Pool timeout configuration was set to 20 minutes. A new worker process will be started when needed.

What was happening was that because we were waiting for the background tasks to complete the worker idle timeout was being exceeded, as it defaults to 20 minutes, and there was no site activity. [No requests! Though the background process was doing some work.]

The way to fix this is simple. We kill the Batman. Ahem, I mean, we disable the worker process idle timeout. As the app pool was set to recycle at a set time there should be no reason to recycle due to ‘idleness’. [On the prod environments, with their various monitoring apps, it would never happen. But on our QA machine and dev machines this was an issue for testing these kinds of long running jobs]

In IIS go to the app pool that you are using for EPiServer CMS and click the Advanced Settings link. Then scroll to Process Model and set Idle Time-out (minutes) to 0.
This will ensure that in your testing environments it never times out.

EPiServer Commerce and using the CartHelper class

During development of an EPiServer Commerce 1R3 based ecommerce platform we encountered a strange problem.

If the end-user decided to leave the checkout flow and return, the taxes and shipping costs doubled, then tripled, then … you can see where this is going.
Of course, the client was not happy with my suggestion that it increases revenue so I looked into what was happening.
Continue reading

Vis en Friet

Vis en Friet, originally uploaded by graney.

Vis en Friet is a new fish and chips place that has opened on the Mauritskade, right next to the Ij Brewery. [Windmill brewery]

The chips were quite British, but the fish is most definitely Dutch.
Still tasty though.

I am still going to Japan on vacation

Torii at sunset

This is curenty a relatively bold thing to say.

As tempus is want to fugit it is likely this post will lose both its impact and meaning very quickly.

Japan has suffered its biggest earthquake ever. It triggered a huge Tsunami that wrecked even more damage, death and destruction.
Currently over 10,000 are dead and further 10,000 are missing.
It is a horrible tragedy.

And on top of this there has been an accident at a nuclear facility north of Tokyo that has pumped radioactive Iodine into the environment.

So why on earth would I still be going to Japan on vacation?
Continue reading

How a CEO should apologize when their company fucks up

Almost simulteously I had witness to 2 sets of CEOs apologizing for their company fucking up and delivering customer service significantly below their customers expectations.

Only 1 in 2 got the tenor of the apology right.
Continue reading