Sunday, November 10, 2013

The Reflective Developer Program - what is it about?

Which is the opportunity?

The program intends to attend as a sparring partner for the individual professional. The program proposes a community of inquiry on the topic of professionalism in the creation of software-based business solutions. In this community the individual can compare notes with others openly and without corporate hierarchies of any kind.

One goal is to assist the individual in his attempt to become more aware of his own personal condition with respect to a broad conception of professionalism. This includes, among other things, be familiar with the perennial problems of knowledge in general and the manifestations of those problems in the context of creating software solutions.

As a start, a collateral effect of the dispersion of knowledge: the more it is spread the less it is fully understood. So it is very likely that a conception we have of a given subject matter, however much we think we have it right, could be only a pale, shallow and distorted fragment of the originally conceived and developed idea.

Because of that collateral effect we could often act on the basis of deficient knowledge in the average case, or mere wrong-headed opinion at worst. The crux of the problem is to remain with that kind of knowledge as the basis for our actions in our profession. So the pursuit of professionalism must embrace, as a recurrent task, a critical appraisal of the real quality of the knowledge that we have about the most important ideas that guide our professional behavior. For example, the notion of «analysis» and «design», are they activities?, are they stages?, what theoretical frames sustain the possible answers?

Certainly, an improved understanding of our applied ideas produces an improved professional practice. Taking more instruction could improve understanding. But, if the institutional channels for spreading knowledge, like historically derived systems from scholasticism —or philosophy of school—, were not part of the cause that distorts such knowledge, then we could say that these channels are enough to improve understanding. Of course, they are not enough. Here is the niche of opportunity for the Reflective Developer Program.

How to improve understanding?

The central proposal is that the individual professional can become her own primary influence to improve the understanding of her own ideas. However, it is easier said than done. The difficulty lies in the little mental space that is often left to the individual after being invaded by a flood of information of all kinds —voluntarily or not— and from multiple channels simultaneously in our today increasingly interconnected society. The Reflective Developer Program recognizes that more information does not amount to more understanding and, therefore, opens up a space for the individual to pause, to analyze her ideas, to question them and then she develops the reformulation that is required of them.

For the problem is not what we ignore but what we have as true that ends up distorted or completely false. That is, the problem is not that we ignore many things or that we lack a wealth of information but to keep mere opinions due to misinterpretations of the information already received. So the proposed program is not just about self-taught learning but about the theory and practice of self-re-education.

The program aims to understand self-re-education, mainly, as unlearning, because that is precisely what is required to improve understanding. Get rid of misconceptions that hinder proper assimilation of knowledge is an essential step to improve understanding. In other words, as some education scholars have already noted, the contemporary illiterate is not the unable to read or write but the unable to learn, unlearn and relearn.

Next steps

The Reflective Developer Program consists of a series of conversations by which the reality of concrete situations are explored, situations that have professional relevance to participants. For example, the situation can be the design of a strategy for handling exceptions in a solution under development, or the dependencies between business logic components and data access components for proper control of distributed transactions, or maybe the analysis of an autonomous or semi-autonomous functional capacity to be released to the business regardless of other capabilities, etc. The Reflective Developer Program proposes a set of processes for analysis and synthesis applied to specific and relevant situations, it discourages overly abstract prescriptions that are illustrated with trivial examples that have no connection to the reality of the participants; that is, the program encourages the identification of defects in how we think, does not prescribe what ought to be thought.

For beginners in the program, the first step is that they are invited to participate as observers in a conversation where someone experienced reflects on a particular situation. So they could become familiar with typical protocols to identify contexts, to discuss conceptual structures or assumptions, judgments, arguments, fallacies, empirical analysis, experimental models, further sources for more information, and so on; that way they could witness the application of intellectual standards of systemic rigor.

For the case of non-beginners, the usual next step is to ask them for any concrete situation for which they want to initiate the cooperative process of reflection.

No comments:

Post a Comment