Category Archives: Uncategorized

What’s math got do with it?

What’s math but a second-hand emotion?

– Tina Turner, but not quite

Over on Twitter, Ruth Malan said:

She was promptly told to stop the pseudo-mathematics.

Let’s look at this in detail:

From just looking at the tweet, we can’t tell whether this claim has any merit to it — no matter whether it’s expressed as a mathematical equation or as an English sentence. If we wanted to investigate, we’d have to go to the source (directly or indirectly) and learn about the context in which Kurt Lewin made tis claim. Because, y’know, it depends…it always does and we probably want to know what it depends upon.

If we can say “Behavior is a function of a person interacting with the environment” perfectly well in English, what’s the benefit of expressing this as the formula “B = f(P, E)”?

Brevity and precision, I think. These help us see what we’re actually saying. In other words, I think it helps us see the structure and perhaps the shape or form of our statements. (Better words, anyone?)

At first sight, we might consider the English sentence and the equation to be equivalent. But are they?

The equation makes it clear that behaviour is considered to be a function of only the person and the environment — no other variables are in play. With the information we have for now, we can’t know whether this is true or not, or even whether this was what the author of that English sentence meant to say.

But we brought this into the open and can now reason about it. And argue. And agree. Or disagree.

We could have done this by analysing the English sentence, but I think the equation helps us seeing this issue in a way that the sentence does not.

We don’t know which aspects of the person or the environment are relevant here. We also don’t know what that function is, i.e. how exactly the interaction between the person and the environment determines the person’s behaviour. In other words, we don’t know the definition of that function.

But neither the sentence nor the equation imply that we know this. We shouldn’t be impressed or intimidated just because someone expresses a statement as a mathematical equation, and we shouldn’t jump to the conclusion that the underlying situation is fully understood. Instead, we could think about what the equation really means and how this meaning can improve our understanding of that situation.

For a function to be useful, we don’t necessarily have to know its definition — at least up to a point. For example, when analysing a system we might determine that some outcome (call it z) depends on two variables (call them x and y):

z = f(x, y)

We might be able to determine the values of z for certain values of x and y from analysing our system. We might be able to determine certain relations between the outcomes and the input variables: for example, we might be able to determine that z goes down when x goes up and when y goes down.

Or better still, we might postulate this from our knowledge about this system and seek to validate this empirically.

Still, we might not know the exact definition of that function…but expressing this relationship as a function can further our understanding and our conversations.

What’s more, we don’t always have to know a function’s definition in order to work with it.

Given

f(x) = g(h(x))

and assuming a couple of math-y conditions, we know (if I remember correctly) that f’s first derivation is

f'(x) = g'(h(x)) * h'(x)

even without knowing the definition of g and h.

Now, this might not be a perfect example (after all, we know enough about the definition of f), but it seems to illustrate my point.

Coming back to Lewin, we could ask deeper questions about that statement. And I think I will and read up on this. Consider the equation once more:

B = f(P, E)

Form. Shape. Structure. A person’s behaviour is a function of that person’s interaction with the environment. If that’s true of a person — say me — it’s true for all other person’s — say you, too.

So my behaviour is a function of my interaction with the environment, where part of that environment is your behaviour, which in turn is a function of the interaction between you and the environment.

Things are getting complicated quickly, and a mathematician might be able to help us put that into an equation…which in turn might help us to better see the structure of these relationships.

Mathematicians can help us express better what we’re trying to say and help us understand better what we’re actually saying. And they might help us reason about our statements — and separate what we can safely conclude from our knowledge from what we cannot safely conclude. In other words, they can help us put more rigour in our statements and our thinking.

Now that would be helpful and, I’m sure, much appreciated.

Ulysses app and third-party Word documents

Increased productivity, and perhaps quality, too

I have recently started taking another look at the Ulysses writing app and I’m very impressed: it seems to make me more productive and the increased focus seems to increase the quality of my thinking and my writing.

It feels like these improvements are fairly significant, but I’ll withhold definitive judgment until I have a little more experience. I haven’t tried created many or very large documents yet, but the ones I created in Ulysses weren’t completely trivial either.

The problem

As an independent consultant, I often create the initial versions of (Word) documents for my clients. We usually collaborate on finalising these documents, e.g. for submission to end clients. At some point, my clients take ownership of these documents for future use and evolution.

Ulysses has been great for drafting such documents and it’s fairly easy to make exported documents visually match a client’s document templates. Ulysses has a style sheet approach to exporting documents, has a large library of export styles (and editor themes) and provides excellent documentation on customising styles.

But given the usage scenario I described, exporting a document that visually matches a client’s template isn’t sufficient. Future work on the document must be efficient and natural to client staff, i.e. things need to work just like in any other of their documents. To properly support my clients’ tooling, the document I hand over needs to use the client’s template just as if I had created the document in Word.

My solution

I have modified one of the built-in styles (Swiss Knife) and removed almost all visual styling — in particular, most font styling and paragraph spacing. I have kept some document-level basics and adjusted the indentation of lists. Where needed, I have specified the Word style names for specific Ulysses styles (e.g. “List Paragraph”).

In this way, Ulysses exports a Word document that applies the appropriate Word style to paragraphs and inline text without additional styling information: I get “Heading 1” and not something like “Heading 1 + Before: 10pt”, which is significant with regard to further editing in Word. (Note that Ulysses’ layout capabilities and flexibility are a great asset for its core usage scenario.)

The resulting document is well-formatted from a structural point of view. Visually, it looks like a document produced on a typewriter — without the flair of created by the mechanical device.

I then apply the client’s Word template to the document which results in a document with the appropriate structural and visual layout.

If the client doesn’t have a proper Word template it’s easy to create one from a sample document (via Save as Template).

Conclusion

This isn’t the core use case that Ulysses was built to serve: Ulysses is great at exporting well laid out documents that you don’t have to touch after export. This approach works great for documents that you don’t modify outside Ulysses, and I’m using it for this scenario.

But Indie life can be more complicated than that and so is the usage scenario I described above. It took me a little while to figure out this approach, but now it seems to work well for me. It seems both effective and efficient.

Ulysses’ documentation and its style library have been very helpful here. And so has been Ulysses’ customer support team who have been very responsive and have even provided me with a simplified export style — a big ‘Thank you’ and a shout-out to Franz!

I look forward to using Ulysses more and seeing what it does to my practice as I get more familiar with its finer details. And just so you know, I’m not getting paid to write this post and I don’t get any other commercial benefits from doing so.

Flows of material, energy and information

Living ecosystems and machines share the three flows of:

  • Material
  • Energy
  • Information

Seeing that ecosystems and machines are very different things, I wonder whether this is something more than just coincidence, i.e. whether there is something truly fundamental to these flows.

Do physicists have a view on this?

Flows in software systems

Let’s look at flows in the context of software systems. We often talk about the flow of logic in a program, but that is a different use of the term ‘flow’. Instead, let’s think about material, energy and information.

Information flow seems straightforward: information (well, data) flows into a program, is processed or transformed and flows out of this program again. As a really simple example, think Unix filters. Similar things can be said about smaller structures such as individual procedures.

At first sight, we do not seem to have flow of material in software systems. But when we look closer, we can see that not all information is the same — in fact, I think that we might benefit from thinking of some types of information (or data) as material to be processed by a piece of software. The type of information discussed in the preceding paragraph is a good example (i.e. data piped into and out of a filter).

To distinguish this material-like information from other types of information it seems beneficial to think of the latter in terms of signals. In other words, we might want to think of information flow in its generic sense as flow of signals. These signals are information that control the processing of the material-like information, such as the signals to start or stop a job or service, or any type of event notification.

Energy seems straightforward, too: software systems and the infrastructure they run on need electricity to operate, as do the facilities housing this infrastructure. The actual transmission of information needs energy, too.

But is there another, perhaps more metaphorical type of energy that is required to keep our software systems alive? With life being a state in which organisation is maintained and entropy is resisted? Software systems need to be used and their use needs to provide value to someone in order for that energy to be made available to the system. More on this in a bigger context below.

Flows in markets

Let’s take a step back and look at businesses and the markets they participate in. Market participants exchange goods and service for payment or some other type of value. They exchange information in order to coordinate their activities.

So information flow is certainly relevant when thinking about markets.

Flow of material covers the exchange of goods nicely. It also covers the logistics for stuff (a technical term) that is used in the course of providing services. It also covers the logistics of services operating on stuff, such as having maintenance done on the car. In a very abstract way it can be said to even apply to situations in which that ‘stuff’ is a living being — for example, when getting ‘maintenance’ done on the cat or myself, i.e. seeing the vet or a therapist (you figure out who goes where).

In such situations we do not want to talk about flow of material, but we should understand in which way the flow of living beings through a service is similar to the flow of material and in which ways it is very different from it. Barely scratching the surface of this topic, the cat hates to ride in the car and creates much more noise than anything else I transport. In other words, this flow creates high levels of stress — in her and in me.

On a concrete level, the flow of energy is intuitive to understand: businesses and people require energy to exist and do things. Cats, too. But, as above, is there a more metaphorical sense of energy that we should be thinking about?

Is value in its many forms a type of energy? Is payment or money a form of energy that keeps businesses alive? Or people, since it provides a means of obtaining life-sustaining energy of the traditional kind? And again, cats, too. And what about capital?

So what?

Is there value in thinking in these terms of software systems, businesses and markets? Is there value in thinking of the three fundamental types of flows — material, energy, information — in ways beyond their literal meanings?

Is there value in trying to map flows of money, capital, value to one of these fundamental types of flows — or are these something entirely different?

Contributors, responsibilities, collaborators, objects, properties and rationale

Ruth Malan and Tom Graves have influenced my thinking and my practice for years. Their influences come from different angles, but there is a lot of overlap — some of it right in my area of work. Lucky me!

Tom takes a service-oriented view of the (bigger-than-an-organisation) enterprise and suggests mapping participants and the services they provide to each other. This is not far from considering contributors, their responsibilities and their collaborators in fulfilling these responsibilities as Ruth suggests in the field of software architecture.

(This is about CRC cards as proposed by Cunningham & Beck, although they used it in a narrower contexts of class-responsibility-collaborators).

Both Ruth and Tom emphasise the importance of being clear about why we do what we do in design and architecture. In this context, Ruth extends CRC to CRC-R: contributor – responsibility – collaborator – rationale.

(You might want to make an association to architecture decision records here, too.)

In talking about service activities, Tom asks the question “What with?” and points out that the assets we use, work with and work on might be of different kinds. Information or data are certainly important assets in the field of digitally-supported services, but by far not the only kind.

I tend to call the assets objects. This works nicely when realising that the contributors (or actors) are subjects and the responsibilities are usually expressed as verbs, which leaves with with subject – predicate – object. Grammar for the win, and a hat tip to Alistair Cockburn and his discussion of use case titles in Writing effective use cases and beyond.

Update 2019-12-14: This separation of a system’s acting elements (contributors and collaborators) and the passive elements acted upon (objects) mirrors Archimate’s distinction of active and passive structure.

When we talk about doing stuff, we need to ask (and answer) the question: “How well?” In other words, we need to talk about quality of service or the properties we want in a service. This question keeps showing up in Ruth’s and Tom’s work, too. Unfortunately, it is too often neglected in situations I encounter. Various schemes of quality attributes can help in this context.

Bringing this together yields CRCOP-R. As an acronym this isn’t very catchy and as a straightforward application of prior art to an existing approach it certainly isn’t a breakthrough.

Nonetheless, thinking in such terms has worked for me — from very high-level business-focused conversations in the very early stages of initiatives via conceptual solution design to fairly low level functional and data modelling work. It might work for you, too, just keep in mind that the different aspects rather than the acronym are important.

This sloppy blog post doesn’t do justice to Ruth’s and Tom’s work…go to the source to see what they’ve been up to.

De-emphasising organisational boundaries unfortunately not a silver bullet

Many smart people have written many smart things about new ways of organising work that have become feasible in the last few years. Some of these smart people are Tom Graves and Dave Gray. A key aspect of many of these new ways of organising is de-emphasising traditional organisational boundaries, i.e. in effect doing work across organisational boundaries that would have been done within organisational boundaries just a few years ago.

The opportunities this brings have been discussed thoroughly before as actually have been the risks. So the following really is old news…but I feel strangely compelled to get it out of my system:

When you depend on others for critical parts of your performance, then critical parts of your performance actually depend on others.

When operating in a network of nimble and effective organisations this might be not much of a problem—assuming you can reorganise your value stream or value network in a swift and flexible way. Traditional corporate outsourcing can produce scenarios in which several large organisations are tied together by rigid contractual frameworks and complicated operating models over a fairly long time.

In these situations, the partners may feel they cannot obtain and, respectively, provide optimal value, but tragically feel they are unable to do much about it. Sooner or later, organising essential work strictly within the boundaries of the organisation looks preferable.

That sounds like rewinding a couple of decades and starting over. I think we can do better than this.

Going with the flow

A few weeks ago I joined an up-and-running software development (and service operations) project together with a few other people. The team had already launched the first version of the product successfully. We had heard that huge effort had been put in to achieve this success and we had a hunch that the team would likely benefit from a renewed emphasis on certain lean & agile practices. We also had a hunch that the team wouldn’t benefit from us showing up and starting to lecture from the latest Scrum book or so.

I consider us extremely lucky to work in an environment in which we are free to choose our working practices (obviously within reason). I also consider us extremely lucky to work in a great team willing to own their work — and to put themselves on the line every day trying to improve our performance while at same time having to deliver against high expectations.

Listening to the team and the people around us, and establishing a shared understanding of our goals (including trade-off priorities; hat-tip to Alistair Cockburn) and the forces acting on us seems to be the essential foundation for our learning. After that, getting out of the way seems to be the best thing us management types can do. Every so often, we can provide some support and advice, or offer some re-assurance and confirmation. But mostly, it seems to be about getting out of the way and keeping the way clear of other obstacles as best as we can (we have way to go on that one).

Our work practices seem to become more lean & agile by the day, and I think our performance is improving. This post makes reality probably sound easier than it is, but I feel things are going so much better than whenever I’ve seen project teams being instructed to “be agile”.