Best of times

It is the best of times, it is the worst of times, … it is a time like any other time.

When Charles Dickens wrote the introduction to a Tale of Two Cities, he was writing a historical novel about the French Revolution. Many times since first reading his gripping story, the first sentence in the book has resonated with me when the present has presented itself from its worst and best sides. Trump, Brexit, and Corona, but also smartphones, drones and internet everywhere.

For me personally, Corona Time has meant lots of quality time with my wife and kids. After the initial disruption and the re-discovering what is valuable, important, meaningful and possible right here, right now, we have enjoyed many great moments.

We live in a beautiful spot with forest and lakes close by, in a suburbia with bike lanes, play grounds, shopping facilities, and still close to nature. A few weeks ago, I took off the supporting wheels on Sofie’s bike at her own request, and soon after she was biking on two wheels. This Sunday, we went to Hågelbyparken, a 3 km ride each way, to enjoy the afternoon sunshine with Sofie biking herself both ways. Saturday on the way back from a car trip to the south tip of Botkyrka, a mother elk and her young kid were grazing in the evening sun right next to the road as we passed by.

It is more than 2 months since I’ve been in the city center of Stockholm and I don’t miss it.

Remnants of fortifications at Skanssundet protecting access to Södertälje from the sea. The fortifications were abandoned by the Swedish garrison shortly before Russian troops arrived and razed the area in 1719. According to local legend, the departing troops should have said: Now you will be rid of us; soon others will come that will hurt more. Copyright Frederik Jensen.

From change comes opportunity

I was laid off from my job a few weeks ago. It’s never fun, but it was the right decision for the company. I was in a strategic position with a short notice period. It was great to get to know the company, but also great now to get to re-invent myself. At work, I had a colleague argue “it has been like that for 15 years, we can’t change that”, while at the same time, outside, people stopped going to concerts, movies, and plays, and stopped visiting relatives and holding parties. A time of change is a time of opportunity, rules are being rewritten.

I’m half way in my professional life, I’ve worked in the space between technology and business for 20 years. I’ve written code, designed libraries, frameworks and tools, I’ve initiated, executed and closed projects. I’ve set up a company to launch a hobby project. I’ve picked up countless new technologies (and vaporised buzzwords) and I’ve worked with lots of smart people. I’ve met my wife at work and we moved to Stockholm to explore new opportunities. 

And still the best is yet to come.

So I’m discovering the job market in Stockholm (again). We hear a lot about the companies that are hit hard by the crisis. But there are winners as well as losers. Plenty of open positions are being posted on LinkedIn, at least the kinds I qualify for. So, to land a good next job, is like playing a game or optimising a process, both of which I enjoy!

Here are some insights I’ve gotten so far:

  • Python & Data Science is hot!
  • LinkedIn Learning does have good quality content!
  • Covid-19 has shown that working full time remote is possible! But companies and recruiters have not yet found out!

Getting into Python and Data Science could be great fun — let me explain why.

Python is huge

I first came upon Python 20 years ago. I was fascinated with the core design principle, the Colombo egg of having white space replacing the semantic meaning of curly braces and semi colons. And then, having learned Matlab at university, it felt very familiar. 

Then I joined SimCorp and became an APL programmer for 10 years. APL is one of the inspirations for Matlab and Python. APL has a run time interpreter and awesome native array support for working with vectors and matrices. The one thing that puts most people off is the non-ascii characters, which certainly impose a learning curve for newcomers. For SimCorp, this meant establishing its own training programme and developing lots of libraries internally.

Now Python has overtaken Java and JavaScript as the most popular programming language (https://www.youtube.com/watch?v=Og847HVwRSI).

I revisited Python last week. I installed Visual Studio Code and took an online training course to brush up on my skills. Some takeaways:

  • Great interfacing capabilities (want to run your own analysis of Covid-19 data? https://covid19api.com)
  • Great libraries for calendar and dates. 
  • Great community of Python lovers.

I also came upon Daniel Ross’ talk from PyCon Sweden 2019 on why Python is huge in finance, well worth half an hour of your time.

Data Science is all around us

Well, what is data science? Beyond the hashtag and buzzword, it is about using domain knowledge and statistical and mathematical models to understand and analyse data. Funny enough, back in my university days, I put together a master program in applied mathematics for myself with courses in numerical analysis, optimisation and data fitting, and a thesis in stochastic calculations. So getting into data science is quite like going back to the roots.

And although I visited the Swedish Workshop on Data Science in October 2019 (https://www.kth.se/en/eecs/om-oss/konferenser-och-event/sweds19), I have a thing or two to catch up on, so I’ve set myself up for a self study of An Introduction to Statistical Learning (http://faculty.marshall.usc.edu/gareth-james/ISL/index.html) and R for Mac (https://cran.r-project.org/bin/macosx/).

The arrival of Covid-19 has popularised modelling and data-driven decision making as never before and correct understanding of a phenomena and the data are crucial for life-and-death decisions these days. In the next Netflix drama, a Data Scientist will be played by cool, young, diverse actor and — in the voice of a prophet — correctly predict the consequences of messing with the laws of nature.

Let me leave you with one final link, an extraordinarily informative presentation of the concepts of epidemiology we now hear every day: https://ncase.me/covid-19.

I found (a) Quest

So I’ve started designing a new game. It’s a text adventure based on the Quest engine and it’s an adaptation of Montsegur 1244, my game about the fall of Montsegur in 1244 at the end of the Albigensian crusade in what is today southern France (1).

A digital game 

Up until now, I have only created analog games, mostly tabletop RPGs for game conventions like Fastaval. Creating and publishing Montsegur 1244 in 2008 — 2010 was great fun. 

As my kids grow older, I see a lot of good (and some not-so-good) games on the iPad. I also enjoy playing games on my smartphone. It’s like the smartphone format takes everything down in size, making it a one man project to create and publish a game app. It’s ok that you only play a game for a couple of hours, when you only pay 2 EUR for it. Plus you can reach a large audience. 

While I enjoy pushing cardboard, dice, and meeples in the company of other people as much as any other, I’m also looking at a lot of boxes on shelves (and toys on the floor and books on shelves) and clearly seeing the advantages of digital content. Travel light, travel far. 

So I’ve decided to create a digital game. 

The Old Town of Tallinn from our visit in November 2019. While Norman nobles were busy fighting heretics in Provence, the Danish king took the crusade to the “heretics” in Baltikum. Not far from where I took this picture, the Danish flag, Dannebrog — according to legend — fell from the sky at the Battle of Lyndanisse in 1219. Copyright Frederik Jensen 2019.

Quest 

A few weeks ago I began looking into tools and platforms for creating games on the IPhone. Very quickly I found Quest at http://textadventures.co.uk. It is a platform for creating and running text adventures. 

Quest is open source on the MIT license, which means that you keep the door open for a commercial launch. It is super easy to get started, as there is an online editor where you can create rooms and characters and start playing almost immediately. So that is what I did. The feature set and the stability were good, even if it is a bit slow to play online.

A deadline

Since moving to Stockholm, I’ve mostly played games with my friend Oskar when I found time for playing. Oskar will be 40 next month, and when I asked about what he wanted, he said no presents, please — or to make a donation. 

So I’m thinking to publish the game by then for him to play when he is turns 40. It’s a good time box. Deadlines are good to help focus on what is important. 

Making hard choices

While I enjoyed puzzle games as much as any other (Day of the Tentacle, Zak McKracken and the Alien Mindbenders, The Hitchhiker’s Guide to the Galaxy), I don’t want to create a puzzle game for my adaptation of Montsegur 1244. I don’t want players to discover a one true story about the siege, but rather have each play-through generate a story with a statement about why people choose to burn for something they believe in (quite literally in this case (2)). Essentially it is not about finding out how to do what you want but finding out what you want to do and making hard choices in a difficult situation.

Into the trenches

Obviously my ambition leads to more work as Quest aims at scripted events and interactions and now I’m heading into sandbox territory. So this weekend I took a deep dive into writing a custom library in the scripting language of Quest. My goal was to make it possible to sneak past the crusaders but only when it is dark. Something like:

> Wait until evening

You wait until evening. It gets dark.

> Sneak past guards

You sneak past the guards without a sound and escape from Montsegur.

It took a while, learning a new language and new tools, but now I got a time tracker that can keep track of when it is light and dark outside and run the commands above. Furthermore, it triggers events such that characters can go to bed when it gets dark, wake up at dawn and go find something to eat.

So what’s next? I guess I need to model relations between characters and how they influence the decisions at the end of the game.


1. My first idea was actually to create a cat petting simulator, but someone already did that.

2. Trapped inside Montsegur was more than 500 followers of the Cathar Faith. At the end of the siege, they were given the choice to repent or to burn alive. More than 200 chose death.

Mac or Windows: Why not both?

When I joined my previous company, I was pleasantly surprised to be asked if I wanted a MacBook or a Windows laptop when I started. Besides having used iPhone for some time, I wasn’t deep into Apple land. Getting a chance fill in blank space, I jumped at the opportunity and chose Mac.

After patiently taking the time to learn new shortcuts — and to scroll in the opposite direction when reading a text longer than one screen — I became a happy Mac user. As most applications run in browsers these days, I didn’t miss out on many features. Only Excel on Mac had some limited capabilities for Pivot tables, an issue that disappeared when we switched to G Suite…

In the end, the only recurring issues were to find adapters to plug into the video systems in the various meeting rooms and to find a spare power supply when I forgot one at home.

I find it difficult to explain exactly why I liked Mac — other than it was easy to carry around — until now when I have switched back to Windows.

My garden leave is over and the calendar says Autumn. Copyright Frederik Jensen.

Given the same choice when I started in my new company, this time I chose a Windows laptop. Nice, lightweight, good battery life, good screen, good keyboard. Touchpad not quite like a Mac, otherwise quite ok.

After one week, I can tell you why I think the user experience on Mac OS is better than on Windows:

The Notification Center is a constant distraction of messages very rarely relevant to the work I’m trying to do. Virus scans, screen resolution fixes, software updates and reboots required — even Slack notifications as if Slack doesn’t already have plenty of ways to notify about new messages. Day three I turned all notifications off. Windows, if you want my attention, send a letter.

Next, Office. I have used all the applications before, not just on this particular laptop. Still, when opening an application for the first time, a welcome screen fills the entire window. Instead of getting on with my work, I’m searching for the quickest way to kill the tutorial.

When I open Outlook to look in my calendar, it shows me the list of unread emails, inviting me to task switching into reading and answering a new email instead of completing the task I was working on.

Oh, and even if I enjoy coming back to OneNote, the issue that language follows keyboard is still not fixed. Creating a note in English with a Swedish or Danish keyboard will fill the page with red curly lines. Word and Outlook can detect language as you type, but not OneNote. Switching to English keyboard, and I’m chasing the ‘-‘, the ‘@’, and other special characters.

My conclusion

The Windows user experience is more noisy. Instead of getting on with my work, Windows is full of distractions. I simply do more task switching in Windows than on Mac OS.

Things will get better over time, I’m sure. It’s just a tool and what is important is what you use it for and how you use it.

In the mean time, when I get too frustrated, I can always open my personal MacBook and write a blogpost.

How is the job market?

One question I get a lot lately is how is the job market? It is not an easy one to answer. There are plenty of jobs posted on LinkedIn, but I only need one job, so what I care for is if there one for me and how to get it.

When I returned from vaction, I started sending applications. Typically, I didn’t hear anything for weeks besides the automated “application received” response. Then another automated mail, “we have chosen to proceed with other applicants”. Maybe it is just the holiday period, but I think not. Even for the jobs that sounded cool enough to follow up on, responses were slow to come and vague in details. Not very useful (1).

So how to improve?

Yesterday we went mushroom hunting in search of the “gold of the forest”. The top prizes are the King Bolete and the Common Chanterelle (actually, the relaxing walk in a sunny late-summer forest with the family was the top prize), but if you broaden your search to include other edible mushrooms, you will find plenty. However, just like job hunting, do your research well, or you may end up with one that looks good but will cause you a lot of pain. Copyright Frederik Jensen.

What do I want and what are they looking for?

I have had the pleasure of doing many fun and challenging jobs in my career. I like new challenges and have been thrown into different situations and delivered. I want to do more of that!

Looking at my cv, others will easily see me as 20 year experience running complex, financial software development within large development organisations and thinking they will hire me to do more of that. This may not give me the job I want!

So part of the application process has been to tailor the cv to just look right. More emphasis on the stuff that matches the job post (and using the same words as in the job post), less emphasis on the stuff that point towards other interests and skills.

One of the insights gained in this process is that while I may have seen myself as an agile project manager, a lot of what I have done is what is also called business analysis, business intellegence and business process modelling (2). And I prefer heading in that direction rather than towards a role as scrum master or agile coach.

Tailoring the cv to the job post assumes that the company articulates what they actually are looking for — and that what they are looking for is what they actually need and will hire. I have seen job posts that mention specific tools and technologies like Tableau, Power BI, Azure, or AWS (3), when the truth is that picking up a new tool or technology and using it in a specific context could take no more than a week or two, while a cultural mismatch can’t be fixed as quickly.

It’s a broken process

The hiring process seen from the recruiting companies is not super fantastic either: First the hiring manager needs an approved headcount. Then the manager drafts a job description which goes through HR before it is published on whatever platforms the company has chosen to pay for. Then in a week or two, they get 200 applications, most of which are from people with no connection to Sweden or Scandinavia and no insight into the business, products or customers. Screening applications is then outsourced or done by a keyword match. Even if this produces a decent shortlist of candidates, it takes time to set up and do interviews and tests before you maybe get to send out offers. During which the headcount approval may need to be renewed or the candidate may have accepted another offer. Only if you end up signing with one candidate, you get to write feedback to the candidates you didn’t hire. It’s a broken process. It is designed to avoid mistakes, not to act fast on opportunities.

Do it differently

Obviously, there is another way to do things. It is called networking. A few weeks ago, I announced widely in my network that I am available for a new opportunities. I haved received great response, and it was great to catch up with people I haven’t been in touch with for a long time. Thanks!

This resulted in 3 interviews over the last two weeks. One of them led to an offer that I have chosen to accept — I’m starting a new job tomorrow.

Then you can start asking how is the new job?


(1) Feedback should be specific, acurate, objective, timely and usable.

(2) I read the BABOK Guide (Business Analysis Book of Knowledge).

(3) No LinkedIn and your automated keyword completion: AWS does not mean membership of the American Welding Society.

Why I became a project manager

I was a developer for 10 years before I changed career to become a project manager. Several factors contributed to that choice, but one pivotal moment was when I as a Software Architect participated in a cross organisational meeting with mostly middle managers and a senior manager. The senior manager had a problem that the company needed to solve and that he wanted one of his teams to pick up. I had technical insight into the product area that might be impacted but not much background in the business drivers and the organisation outside my unit.

Bridge pillars reflected in Alby Lake on a calm and sunny Autumn day. Copyright Frederik Jensen.

Very little of what happened at that meeting was about exploring the options available, the consequences of these options, and deciding the best outcome for the company. It felt more like the middle managers were playing to avoid taking a home an impossible assignment for their teams. It was frustrating and I felt that I could contribute to better decision making and more informed choices by taking the role as a project manager.

When you go scuba diving, you sometimes see a surface with an appearance of wrinkled glass between layers of water of different temperatures. An organisation can feel like that — the conversation in one layer of an organisation is completely decoupled from the conversion at lower/higher layers. Not only do large organisations have silos, but silos with layers.

Being a project manager, working across the line organisation, bridging silos and layers, speaking the local dialects, and knowing enough about what everyone is doing to ask the right questions, is challenging and rewarding. You parachute into a land of chaos and frustration, engage with people and systems, create order and momentum, and hand back the project to the line organisation. Then move on to the next challenge. Always working for the best outcome for the company and with respect for the people involved.

Milking as a Service

One of the companies that I’d love to join is DeLaval in Tumba. Not just because of the short commute (I still miss my daily bike commute from when I was living in Copenhagen), but also because of the challenge they are addressing: Optimizing dairy farming using IT.

Humans have kept cows for 5,000 years and dairy farming has been optimized quite a lot already.

DeLaval is one of a handful companies who produce and sell milking robots — or voluntary milking systems. I’ve seen these in action at different sites in Denmark — the milking process is fully automated, the robot places the suction cups and milks the cow while the cow chews away on some power grain. Key figures like milk temperature, time since last milking, and quantum milked per udder are shown on a nearby display.

Kosläpp in Skåne 2016. Swedish national television broadcasts live from the yearly kosläpp events where cows are let loose on the spring green pastures after a winter in the stable. Copyright Frederik Jensen.

Milking robots have been around long enough for the technology to mature. When you have 500 cows not being milked while your system is down, reliability and availability are not just about money but also animal welfare. Once the system is in production, it needs to be in operation 24/7. Cows don’t go on weekend or take time off for Christmas.

Dairy stables are hostile environments for computers, they need to be protected from moisture, heat, and being stepped on by animals weighing nearly a ton.

Robots have moving parts that needs maintenance. Hence, one challenge is to service the robots. So far this has involved a service technician visiting the farm and measuring the machines with handheld devices to help decide which parts to replace. As farms often are located in remote areas, having the right spare part at the right place and time is a problem to be optimized. Replacing a component too soon because you are not sure it will last until the next scheduled maintenance visit costs money. Having a wide selection of spare parts in the service car just in case they may be needed costs money. Scheduling an extra service trip to replace a broken part costs money – and a lot of money if it has to be done express due to a production stop.

Enter the cloud: What if diagnostic data from the milking robots is collected automatically 24/7 and uploaded into a database in the cloud? Service technicians and the farmer can then monitor and analyse the data remotely to plan service visits and be sure to have exactly the spare parts needed.

This is what DeLaval is working on right now. In itself a desirable goal. But the implications down the line can be huge as it allows changing the business model:

What if a farmer does not invest in a milking robot but buys milking as a service? The operational risk will be on the milking service provider, not the farmer. Financing dairy production will move from CAPEX (farmer investing in machines financed by a bank loan) to OPEX (farmer paying for a service). The farmer needs to know less about operating milking robots and can speciliase in other areas like breeding cows, optimizing fodder, stable facilities, product development or doing marketing events like kosläpp.

Just like the Cloud has lowered the threshold for new companies to put a new product or service on the market, the Cloud can disrupt the business models around dairy farming. The bank may become less of a gatekeeper for young farmers to enter the business. Independent service technicians will have fewer opportunities to improvise fixes to mechanical problems and upsell while they are visiting.

Times are changing and it would be cool to help create optimal outcomes for the involved stakeholders.

The cows will probably not notice though.


I have actually worked with dairy farming previously: Back in my university days, I had a part time job to optimize scientific calculations to run on super computers. One of the programs did breeding planning for dairy farms.

When is Kanban better than Scrum?

Agile is mainstream. This is good and bad. In 2018, Martin Fowler criticised the “Agile Industrial Complex” for imposing methods on people and violating the first value in the Agile Manifesto. What fake agile is getting wrong is that “the team doing work decides how to do it.”

But how does a team make good and informed choices about how to do the work?

Besides hiring good people (1) and doing retrospectives (2), stealing copying from others is still a smart thing to do, especially if you know how it works and why.

As a project manager for software development projects, I start with a very basic toolbox and adapt tools and processes to the specific team, product and environment at hand. It’s good to have a large toolbox, but it’s knowing how and when to use the tools that makes the big difference.

A spring project was to replace the 40 year old pavement in our front yard with something nicer. One of many choices in the process was to decide which pattern to arrange the tiles. Knowing that I might have to look at this for another 20 years, and having two offers that both wanted to do the herringbone pattern without really explaining why, I finally realised that this pattern will hide small differences when the borders are not parallel.

Today I want to share my reflections on two common agile practices: Scrum and Kanban.

Scrum = Kanban + Sprints

How do you choose between Scrum and Kanban? Well, Scrum is a framework and Kanban is a tool you may say, so let’s frame the situation:

You have a team of specialists that is doing changes to a software system that adds value for customers over time. Doing changes requires a number of different tasks, like writing code, testing, and deploying changes to production. Changes are identified, prioritised, and delivered continously — or at least frequently.

When you do Kanban, you capture the changes to be done on a Kanban board as they are identified and prioritise them according to some rule into a single todo list or column. Team members then pull changes and progress them through multiple stages represented by columns until changes are released.

This is a simple and cool way to visualise and for the team to self-organise work to be done. However, Kanban in itself leaves a lot of blank space for the team to fill out: How do we prioritise changes? How do we coordinate work on related changes? How do we ensure that changes are completed and released, not just started and abandoned?

Scrum is like Kanban with sprints. A sprint is a timebox, the Scrum Guide says 2-4 weeks, these days 2 weeks is most commonly used. At the start of a sprint, the team plans the work to be done. At the end of a sprint, the team reviews what has been done. Scrum adds some roles and a few other events that all work together to make the team make smarter decisions faster.

So is Scrum then the Audi while Kanban is the VW? Wouldn’t you always pick Scrum if you can afford it? Not really. While Scrum has aged amazingly well, times have changed.

Or a Wolseley? A subset of Swedes do like old cars to the point where yearly parades yam the traffic around the smaller cities. I met this one in Trosa south of Stockholm.

Back when the Scrum framework was invented, delivery time for a software solution could be years. The Agile Manifesto, written in 2001, includes the — at the time revolutionary — idea to deliver working software every couple of weeks.

When I joined SimCorp in 2000, one of the development tools available in customer systems was to edit source code and commit local changes to the production system (3). As the programming language for the business logic was interpreted, this could be done without recompiling or taking down the system. From a quality and risk perspective, it seemed insane, but in the context of what the company was back then, the ability to fix or provide workarounds for critical production issues during business hours, was a killer feature that helped the company to grow into what it is today. With great power comes great responsibility. Obviously, the tool required discipline like remembering to re-implement a corresponding change in the main trunk back home in the office. Version control had begun just a few years earlier, code review practices were established to help grow the development team from the original four to four hundred plus today.

As fast as possible but not too fast

With todays build and test automation tools with and production software hosted in a cloud, you get the ability to deliver changes fast with low risk.

If you are in an environment where the impact of failure is much lower than the value of a faster delivery, then a two week sprint is going to slow you down. You will be waiting for feedback from a code reviewer or tester, you will be waiting for the next daily scrum to flag blocking issues, you will be waiting for the next sprint to begin before working on a change. Waiting time is waste when you could be releasing it now.

However, if you find that boring but important tasks are stuck in the todo column, and difficult tasks are stuck in the “almost done” column, then bringing in practices from the Scrum framework can help.


(1) The advice “You need good people” is as true as it is useless. It is a silver bullet that seldomly helps you improve from where you are.

(2) Retrospectives is a good way to create process awareness in the team. While doing retrospectives can be fun, just remember that acting on the insight gained is what matters, not the retrospectives themselves.

(3) The utility was called PROGLOCWRT and no, I don’t know if it still exists today.

Looking into the horizon

So I ended up on garden leave just before the summer after a series of management changes. No big drama, no panic. I got a fair deal and have time to find the next step in my career.

Joining Itiviti in Stockholm was a great if somewhat chaotic experience compared to SimCorp. Insight into sell side trading, working with smart people across the planet, and taking ownership of goals, process, and results in the post merger void.

During the summer, we visited the west coast of Denmark near Blokhus where the beaches are far and wide and you can drive from beach resort to village to fishing hub. A great place to look into the horizon. Copyright Frederik Jensen.

So what is next? I’ve spent some time over the summer playing with my kids – and reflecting on what I want to do next. I’ve enjoyed leading development projects, bridging the gaps between business and technology, managers and specialists, vision and reality. Looking at the job market here in Stockholm, there is still something called project managers out there.

I’ve also enjoyed doing business intelligence, analysing and visualising performance in dashboards. This could lead to business process modelling or a role as Data Scientist. I enjoy coaching and training peers. So far I’ve stayed away from people management, but I’ve come to a point in my life, where I can also see myself picking up that (1).

Structured processes like Scrum and Kanban make a lot of sense to me, and I’ve done lots of agile processes with iterative planning, refinement and delivery. I use a personal kanban to juggle work-life priorities. So I could also pick up a scrum master or agile coach role.

So what is next? Time will tell. Short term it’s an opportunity to discover and learn about new topics – companies, technologies, tools. It’s what I have always enjoyed.

I will be sharing thoughts and reflections on this blog. You are welcome to join my journey. And do get in touch if you know of an opportunity.


(1) Being a parent does that to you: While I have preferred participating in groups on equal authority level, with kids that simply doesn’t fly. Sometimes you are right and they are wrong and the best way forward is not a Socratic dialogue. As a manager, you need to master multiple styles of leadership.