Who can be a facilitator?
A facilitator is a specialist in software analysis. This is a new role that is essential for an effective assessment, and that should be made part of software development.
Who can take this role in an existing organization? Let us review who has either the necessary skill or the appropriate interest. And with this occasion let us observe the challenges as well.
The developer as facilitator
- Opportunity
- Perhaps the best qualified persons for the task are the developers. Developers are technical by definition. They program on a daily basis, and are usually used to learning new technologies. This makes them qualified for learning how to craft analysis tools. Developers might already understand the value of automatic regression tests, and this makes them good candidates to understand the value of a structural concern checker. Also, they get to know the system intimately, and this means that they can produce their own concerns to start with.
- Challenge
- However, there are also several challenges in getting a developer to be a facilitator. Few developers perceive software systems as data, and even fewer ever looked at these systems in any other way than through a classic editor. The shift to understanding the nature of software analysis requires dedicated effort. Furthermore, because they are highly involved with the system they develop, they can become less objective when facilitating the discussion towards a decision.
The architect as facilitator
- Opportunity
- Another candidate is the architect because of several reasons. The architect has a direct interest in being able to digest large amounts of code fast to ensure that the envisaged architecture is in place. Due to the nature of the work, the architect usually gets to interact with the teams on a regular basis and to discuss technical matters. Furthermore, in most cases, the architect is a technical person.
- Challenge
- There are challenges, though. First, even if he is a technical person, it might have been a while since he last programmed. Second, architects are typically full-time busy both because they have so much ground to cover, and because they are in meetings way too often. For this reason, it might be difficult to get them to invest in changing the routine.
The quality assurance person as facilitator
- Opportunity
- In some organizations, there exist a so called quality assurance department. The main problem with these kinds of entities is to figure out what quality assurance means. If it happens to mean code quality or process quality (rather than functional quality), some members of this department can make good facilitators. Here is why. They have a direct interest in being able to understand large amounts of code fast. Furthermore, they usually do not have development duties, and as such, they can have both the distance and the resources to invest in developing tools.
- Challenge
- One challenge of putting this plan in practice is provided by the mandate within the organization. In hierarchical organizations, usually, these departments are placed at the same level as the development department. In such situations the biggest hurdle is to get the department to transform from being a law-enforcer to being a provider for the development department. Another challenge is provided by the view that quality has. Quality is usually specified too vaguely to be useful for actual decision making. It is important, but tricky, to make the transition to identifying stakeholder concerns that can lead to actual actions.
The coach as facilitator
- Opportunity
- In agile processes, we often have a dedicated person that plays the role of a coach. For example, eXtreme Porgramming talks about a coach, while in Scrum we have the Scrum Master. Coaches have a direct interest of keeping the project moving by facilitating faster and accurate decision making.
- Challenge
- It can very well happen to encounter coaches that are not a highly technical person. In this case, it is difficult to get them to build tools. One possibility is to have them pair up with technical people that can take care of this task, and let the coaches focus on the facilitation part.