In this post, we’ll try to address the decision process that happens at low scale, more precisely within a team of 2-8 people building software (see http://alexandre-masselot.blogspot.com/2011/08/creating-scientific-bioinformatics.html for the role of such a team). By low-scale, we mean that we will not talk about high level orientation choices (even though there is much in commons), which are out of the scope today.
Once a goal as been stated beforehand (upper management, marketing, scientific, sprint start meeting or whatever), we must decide on how this goal should be reached and it is exactly this step that we’ll talk about here.
Such decision taking is of course a daily process in software development that can involve the full team, a subset for a dedicated aspect, a mix of developers and customers or even only two persons in pair programming. It can cover brain storming, architectural aspects, risk planning, strategy, task scheduling, technology choice, minimal viable product target (http://en.wikipedia.org/wiki/Minimum_viable_product), software design etc. This process can take a few minutes, one hour or even full days (off-site brainstorming).