LONG FORM

Writings

Essays and articles on software, systems, research, and people. Short texts and quick takes can be found in /marginalia/.

Comments can be posted on Mastodon.

The Ironies of Automation and Artificial Intelligence

Ironies of automation (Bainbridge, 1983) is a foundational paper on what has been learned from automating work, or adding automation to tools people use for work. Ironies of artificial intelligence (Endsley, 2023) adds new observations on how LLM-powered systems have both similar and also new kinds of issues and opportunities. I also explain my approach to designing LLM systems.

9 min read

Augment, Complement and Empower Yourself

LLMs are helpful and should be used with intent. Use them as tools to enhance your abilities while deliberately maintaining the fundamental skills you need to perform when the automation fails.

6 min read

Agile - Still Relevant

It has been surprisingly common to see critique towards agile lately. I find it a bit odd, having seen the waterfall world and how much more humane agile has been. It can be easy to overlook how fundamental agile principles remain for surviving fast-paced, complex software projects.

5 min read

Using Obsidian, The First Two Years

I have used Obsidian for two years now, and I'm ready to say it works for me. Most importantly, I have learned that my notes need to be in an open and clear text format from now on. Otherwise I'm unable to commit to using any tool (including paper and pen).

9 min read

My Thoughts on Consulting

Consulting can be understood and done in many different ways. These are my thoughts on that.

3 min read

No-Estimates

Estimating software work is difficult, as we usually are in a complex, not complicated domain, and we know what the solution will look like and how long it took to create, after it has been validated with the end users. Days, weeks, months -scale should be enough for estimation, and if you need more detailed than that, you should probably stop and think why, and how to change that.

5 min read

Becoming fluent in remote work

Remote work has different requirements and success factors than co-located work. Trying to mimic co-located work in a remote setting leads to inefficiencies and misses the potential benefits of working remotely. GitLab has published a Leading remote teams -course on Coursera and I went through it to get new ideas on how to improve my work, and they really do have some interesting ideas. Asynchronous workflows is one fundamental one.

8 min read

Don’t ask people to commit to fulfill a forecast

Estimations made in the planning are forecasts and their reliability depends on both the experience and on the length of the time scale they cover. Using the word commitment can make planning more intimidating than it needs to be. The estimation itself is hard, and I don’t think I’ve ever seen it done too well, so it would be good to get all the stakeholders to understand that, and work towards better predictability together.

4 min read

PDF as a Read It Later Service

PDF seems to be the best format to read books on iPad, and now I've started using it for reading web long reads as well. Being in control is the best part: You can decide how the website looks like, save it so it's yours to read and annotate however you like, and store it forever.

8 min read

Inoreader vs Feedly, and the ultimate feed reader (in 2020)

I started to use RSS again and setting the system up requires some work. I also noticed that my needs are so specific that each service does not support them fully. I have compared Feedly and Inoreader, and in the process found out the feature set that matters to me. Choosing which service to use is hard, because none of them is perfect. Some services can also be surprisingly expensive.

8 min read

Feeds Are The Future

I was using RSS a lot around 2013, and I want to go back. I'd like to be more in control on what stories I see each day. At the same time I know the amount of items in RSS feeds can be overwhelming, so I'm excited to try out new tools to combat information overload as well. I'm glad to see that RSS is not *dead*, even though I understand it probably should evolve. Feed aggregators must evolve as well, or there might not be enough sources for them in the future.

5 min read

Augment, Complement and Empower Human Cognitive Skills

Expert group for EU has published Ethics Guidelines for Trustworthy AI. The document specifies a list of requirements the systems should meet to be considered trustworthy. They also define a rough framework and an assessment list to offer guidance on practical implementation. The objective is to empower humans and offer them meaningful work instead of replacing them. Augmenting human abilities is an approach I'm happy to advocate for.

5 min read

The difficulty of saying I don't know

Creating software is complex, and we are all the time facing problems we are solving for the first time in our lives, possibly with the tools we haven't mastered yet. That can be a lot to bear and a source of anxiety. By being vulnerable and admitting you need help, you can start creating a safer environment.

4 min read

Platformer (game) UX

Some years ago I tried building a platformer game (PC / Android) and found the experience interesting from the UX point of view. This is my recap of what I remember. TLDR: You can cheat to make it feel more like a game. Physics simulation rarely makes a good platformer (although Trine might beg to differ). At least you'll need to fine-tune your character movement physics.

5 min read

Automation and the role of human operators

How increasing automation shifts human operators from active participants to system supervisors — and why that creates serious problems in security-critical domains.

3 min read

Designing to Support (Distributed) Situation Awareness

Situation awareness and distributed situation awareness are interesting concepts, but how does it map to the real world? How can we as designers take the concept and use it to guide our designs, to support rather than hinder the situation awareness of the end users?

4 min read

Distributed Situation Awareness (DSA)

An overview of Stanton et al.'s Distributed Situation Awareness model — a systemic view of awareness that spans both human and non-human agents in complex systems.

3 min read

Situation Awareness (SA)

Situation awareness (SA) is a concept that describes how people stay entangled into events happening around them. SA model can be used to design systems so that they support users acquiring and maintaining situational awareness. Mica R. Endsley is one of the most cited researchers on SA, and has created a formal definition of SA.

3 min read

Nielsen: Web UX 2016 vs 2004

Notes from Nielsen's keynote comparing web UX in 2016 vs 2004. Task success is up but findability remains the biggest problem — information architecture still matters most.

2 min read

Reference Types in Java

An explanation of Java's four reference types — strong, soft, weak, and phantom — and how they interact with the garbage collector for caching and object lifecycle management.

5 min read

Designing for Usability 1985

A recap of Gould & Lewis's 1985 paper, which argued for early user focus, empirical measurement, and iterative design — principles that still sound radical in many organisations today.

4 min read

26th in the Hello World Open 2012

A recap of participating in the first Hello World Open coding competition in 2012 — building a Pong AI client in Java and finishing 26th out of 200 teams.

4 min read

Usability of Patient Record Systems 2010

A look at a 2010 Finnish study on the usability of electronic patient record systems, where doctors rated most systems between poor and adequate. In Finnish.

2 min read

ISO 9241-210 (ISO 13407:n korvaaja)

A brief introduction to the ISO 9241-210 standard for human-centred design — its four core activities and six principles. In Finnish.

2 min read

How do people act

An introduction to Norman's Seven Stages of Action model and how understanding how people plan and perceive can make software interfaces more intuitive.

3 min read

Who's fault is it anyway?

When people can't use a device, they blame themselves. They shouldn't — bad design is almost always the culprit.

1 min read