Process Programming

Introduction to Aspects

Aspects are a mixture of management theory, software craftsmanship, communities of practice, apprenticeships, and the software foreman model.

The essence of management is that it is based on fundamental assumptions about human behaviour. Douglas McGregor highlighted two of the most prominent assumptions back in the mid twentieth century and they still prevail today (Douglas McGregor, The Human Side of Enterprise, 1960). The assumption termed “Theory-X” says that people are motivated by rewards and punishments, and will not expend effort unless you can scare them into action, or tempt them with a bonus. “Theory-Y” conflicts with this view, saying that people are intrinsically motivated to do good work and do not need carrot-and-stick methods to perform well

Theory-X and Theory-Y are not opposite ends on a scale, where you can choose to be 60% one and 40% another. They are in conflict with one another. You cannot believe both Theory-X and Theory-Y because they are not compatible views of human nature.

Aspects are suitable for organisations aligned with the thinking of Theory-Y, who believe their employees are motivated by autonomy, mastery, and purpose (Dan Pink, Drive, 2009)

Traditionally in software development, as in many other industries, people are judged on a scale of novice, intermediate, and expert for their job. In software development, though, it is impossible to supply a broad-brush rating of a “Software Developer” on this scale. One developer may be writing their first unit test, but for their 50th project written in C#. Are they a novice or an expert? This is the first problem Aspects target.

Another problem with traditional software development is narrow role definitions. Attempting to treat people as fungible resources creates dead-end jobs for individuals and misses the great opportunity to benefit both the individual and the organisation by creating custom roles for each team member. This is another issue that Aspects seek to target.

The next problem in the cross-hairs for Aspects is the transition from command and control management to self-organising, autonomous teams. Many managers understand the principles behind self-organisation, but in practice it is hard to achieve.

If the transition is made too quickly, many problems can surface. Some individuals may not be ready to take on the new responsibility, either because they need to develop additional skills or because they are used to be told what to do. Applying a broad-brush of decentralised control almost certainly assures that someone will make a mistake – and the most common reaction to such a mistake is that control returns to the centre. In most cases, this is the accidental result of a foray into self-organising teams – but it is also a sure-fire way for a middle-manager to prove that “it will never work”, while appearing to be in favour of the initiative.

What is needed is a mechanism that allows people to indicate that they are ready to take on more responsibility, with a clear contract between the individual and the organisation about what is expected from both parties. There needs to be an equitable and clear method both of assuming control as an individual employee, and of relinquishing control as an organisation.

So Aspects are a way to manage the transition and further development of communities of practice that allow people to:

  • Develop skills and progress on a per-aspect basis.
  • Develop a role by combining aspects from programming, operations, deployment, and other areas that are valuable to the business.
  • Participate in an equitable and clear method of divesting control.

Community of Practice

The idea of Aspects starts with a community of practice. The idea of a community of practice was devised by cognitive anthropologists Jean Lave and Etienne Wenger, who describe both naturally forming communities of interest as well as those created with the specific goal of generating learning opportunities (Lave & Wenger, Situated Learning, 1991).

The Community of Practice is the widest band of classification in Aspects, and includes all individuals who are interested in a subject, whether it a part of their job role or not.


An Aspect represents a group with a commitment to the subject. By signing up to an Aspect, an individual obtains a clear pathway from their first tentative steps as a novice, through to mastery of the subject. When an apprentice steps forward, they will get a clear pathway and mentors to help them gain the skills they desire, and that the organisation needs.

An Aspect is an area for individuals to learn. It allows them to develop their potential, attain self-actualisation and add value to organisation. An Aspect is the central concept for a community for form around.

There are four stages from Apprentice to Expert to Foreman to Master. These are described in detail below.


Mastery is a tangible level of expertise in a specific Aspect. It is recognised amongst peers and represents a way to earn greater autonomy.

Each stage in the journey to mastery comes with a new social contract. There are expectations made of individuals at each level, and also expectations of what the individual will get in return for developing their skills. In Aspects, this contract is not financial – it is concerned with autonomy that increases with mastery.

This is most easily expressed with an example.

If an apprentice for the Deployment Aspect arrived on day one, it would be unwise to hand them their credentials to the live servers and send them on their way. This move would be unfair in two ways; individually and organisationally. It is unfair to the individual because they have not been given the coaching to help them learn the discipline of deployments. They haven’t been burned by the common mistakes and they don’t know what risks they may be taking when they start working on a deployment. This is breach of the social contract of Aspects. It is also unfair to the organisation, because they are being asked to relinquish control without knowing what they will get in return; another breach of the social contract.

Aspects turn this social contract into a clear agreement of what is expected and what will be given in return. Typically, an Apprentice is assisted in most tasks, an Expert is able to work under their own initiative, and a Foreman has broad autonomy within an Aspect and within a project or product.

The role of a Master is to maintain an Aspect and its community of practice. They do this by keeping the social contract updated, and by searching for Apprentices, Experts, and Foremen to maintain the Aspect for the organisation.