marcusoft.net - sharing is learning


function share(knowledge){ return share(++knowledge) }

How do you get so much done?


How do you get so much done? Where do you find the time?

This is a question that I often get asked and it always catch me off guard. I don’t have a recipe (or do I?) and I don’t think I get more done than others.

But last time when I was asked this question I stopped for awhile and thought to myself - what do I do, and is that something others don’t?

In this particular case I referred to a blog post I’ve written and the question back was:

How do you find the time to write blog posts?

In this blog post I share a couple of my … tricks.

Read on ...

Scraping with Google Sheets for fun and profit


Yes, yes … I know. I do way too much Google Sheets for my good. But that tool is SO amazing. It’s becoming my first go-to-tool when it comes to small simple tasks at the office. And it allows us to be more data-driven and visual.

And it’s very easy to build aggregation tools for people around the office. For example; the other day we were wondering what kind of technologies that was hot in different cities in Sweden.

From that question, until I’ve created a simple but powerful tool to scrape data from Indeed.com, presented it with a simple filtering function and got it in the hands of the sales team was 45 minutes.

In the process, I learned about two new friends; IMPORTXML and the slicer-feature of Google Sheet.

Let me show you what we did.

Read on ...

Summarizing data over several Google Sheets - an exercise in stats and formulas


In my current job, as Head of Quality and Curriculum at </salt>, my thirst for being data-driven is frequently useful. In particular when it comes to test results for the developers in our courses. We test the developers every weekend (for 10/13 weeks) and we have now run 4 courses using the same tests… A gold mine of knowledge if you can mine it.

To help each developer and us, understand how they are doing we produce a diagram that compares their results to the result of their class (ca 30 people) but also compared to all classes (to date 4 x 30 people).

In the end we want to produce charts that looks like these:

But getting there has been quite tricky but oh so rewarding. At the end of this blog post, the whole thing is fully automated and kept updated. I only need to add new scores… and one extra configuration row for a new class.

Let’s go!

Read on ...

Metrics on 'well-defined' projects - and what I learned about uncertainty


I’ve just finished a huge project here at work. I have recorded reference recordings of all the lectures in the </salt> bootcamp. It was quite fun, quite exhausting but also quite rewarding as it basically drained me of every system development knowledge I have in me. And some that I didn’t have in me (there’s CSS in there, my friends…)

Obviously, I cannot share the result - but what I can share is what I learned.

I am a fan of embracing uncertainty since I first heard Dan North all those years ago. Most of the work I do is development hence naturally uncertain, as learning is the main constraint. This has led me to ditch the idea of being able to estimate how long a task or project will take before we start.

But still I and teams I’ve coached are often asked this. Before the project starts?! When I know absolutely the least about what we are going to do. What a crazy time to ask for estimates.

Ok - this has led me to seek other ways of making predictions and prognosis, without me having to estimate (aka guess).

This particular project was a bit different and hence perfect to make a point about uncertainty with:

  • I knew exactly what needed to be done - record 63 lectures
  • I knew exactly what went into each part - the material and slides was created before I started
  • It was an area in which I was an expert - I’ve created the entire boot camp together with Jakob Leczinsky and I have made many screencasts and presentations over the years. Some are recorded

But still, the uncertainty bit me and it was bigger than I (we) thought, took longer in some regards and shorter in others and in general revealed a lot about things we didn’t really think about.

In this post, I wanted to share how I tracked the data and lessons I learned from it.

Read on ...

Why the retrospective prime directive is paramount


I’m about to run a few retrospectives with a group of people with little to no experience of agile previously. In doing my preparations I went back to the core and start of retrospectives, why we do them, their purpose and meaning, etc.

Before long I stumble onto something that I have had some issues with; the Retrospective Prime Directive. But as I read it and was thinking about how to introduce the whole concept to retrospectives to my friends I realize that without the Retrospective Prime directive being agreed on - retrospectives are not worth the time. Or at least not interesting in the long run.

Let me explain what I mean.

Read on ...

Talking about what really matters to us - what I learned from a spiritual day


No - this post will not be about Christianity per se. You don’t have to worry.

That said I am a Christian and proud member of the Salvation Army and I wanted to share something I observed during two (actually) spiritual days. Something that I think is sorely missing in business today. Something crucial.

I’m not talking about God now - although he’s often out of the picture too :)

Read on ...

Prioritizing and sequencing are not the same things


Having an (any) work in process (WIP) limit to your workload is the best way I know to improve speed, quality and focus on value in what we do. This goes for individuals, teams and whole organizations alike.

As you apply a limit of how many things you will work on at the same time, you very soon will start to prioritize among your work. (Psst - I’ll let you in on a secret: if you don’t have limit you still prioritise, because at any one given time you are only working on a thing … but that is a topic for another post)

Being nudged to do this prioritization is a Good Thing (TM) if you let it. It starts moving you towards knowing WHY you are doing something NOW and away from ensuring that you are kept busy (or keeping people busy)

Ok but inevitable very soon we enter into the land of prioritization, and before long you will hear the laments;

Prioritizing is hard

Who does the prioritization here?

We need to get better in prioritizing, that is the only problem we have really?

I think there’s a misconception at the core of what prioritizing means (or at least how it is used). In this post, I wanted to clarify one distinction

Prioritization and sequencing are not the same thing

Read on ...

Fun with scripting - running a test suite against 30 different solutions


In my current job (School of Applied Technology) we give out weekend tests each weekend of the 10 first week of each course. With 30 developers in each class, it means that on Monday after each weekend we have a lot of work to do to correct the developer’s tests.

We have basic validation through a suite of tests that we run against the developers’ code. And we run linting. The real value, however, comes from comments and suggestions for improvements that we could give to the developer.

To speed the tedious part of the work up we have created a script that helps us:

  • Get the developers code into the correct place. The developers upload their solutions to a shared Google Drive and we have the Google Backup tool to synchronize those folders down to our local disk.
  • Run the linting and test towards each developer’s code. Each test has a separate test.js file and quite often different scripts and dependencies to be installed for it to run well. We just want to replace the developers’ code when running the tests against the test suite.
  • Report the errors in a nice way

It took some time but now we have a nice script that makes this a one-command exercise. And in the process, we learned a lot. I wanted to share this with you.

Read on ...

When was Lars happy?


One thing that I love in coaching and consulting is when things stick. My way to try to get there is to tell stories (psst - there’s a book on that) to try to emphasize or bring out certain points.

What I find very rewarding is to hear people relate these stories to each other later on, when (they thought) I was not listening.

Just the other day I walked passed two people and I heard:

Yeah, exactly. Remember: when was Lars happy?

This is one story that I’ve told many times and I wanted to share it here too. It was a powerful lesson on true value, customer focus and lead vs flow time for me.

Read on ...

3 mindset shifts for agile transformations


I have been involved in many agile so-called transformations over my, let’s face it, long career. And the more I get to do that the less I care about the word agile. Because agile is “just” a way to behave - it’s not an outcome. The outcomes are what we are after, the effects, the values. I’ve found it much more fruitful to discuss what those values are and means, than to argue whether Scrum holds up for scaling or not.

In this post I wanted to discuss three shifts in mindset and culture that I found: Important - as these shifts in thinking will or will not, hold your agile efforts back.

  • Fundamental - as in; goes beyond (below?) being agile or not.
  • Not talked about or understood in the same way
  • Start asking some tough questions and hence rapidly increase learning.

These topics are:

  • Shift focus from activities and utilization to value and flow
  • Realize that software development is not manufacturing and start managing in a suitable way
  • Monitor success for products or value streams rather than project or functional silos

My feeling is that if we discussed and changed this, half of the agile journey is already done. Also, if you are not ready to change any of these, then any agile transformation will give local improvements, at best.

Read on ...

Scraping functionally - to save my inheritance


Many years ago I wrote a little site to keep track of fun things that my (then only one) son Albert said. I called it Abbe Says and it has been granting us and our friends great joy.

At its core, it is a very simple blog/content management system that I wrote in .NET (3.5 I think) and published on the first serverless offering I heard about - AppHarbor. I didn’t even know the term back then it was more like: HEY! Give them your codez and they'll make it run on Internet My feeble brain exploded.

Anyhow - I cannot update it for various reasons and I need to move it to a more modern stack. Thinking of Svelte and to run it from some static served …

I’m getting ahead of me - first we need to get the data. This post describes how I salvaged the data from the site.

Read on ...

How we agile - principle-led & context-dependent


Agile is soon (?) to be forgotten and ditched like yesterdays clothes if you ask some agilistas that I follow. I think the reason is that we have watered down the meaning of the concept by applying the name to more and more un-agile things. Soon we will be able to become agile without letting its ideas and principles changing a thing about what we do or how we act. Because agile is just some simple, yet powerful, ideas - originally described in the Agile Manifesto.

I yesterday posted the following at twitter:

And on LinkedIn I got even cockier and added

Yes that is “scaled” (whatever that is) hashtag#agile working and helpful, without any specific framework or tool. Just guided by hashtag#principles towards ever better versions of our practices. Thinking for yourself - it’s a good train. Get on it!

Some people asked me to write a blog post about “it” as in “What you have done there”. I wanted to do that but from the perspective of the principles. Because I don’t think anyone should copy what we have done - but I’d love if more people understood the principles we built it on and used that as inspiration to make something better for them.

I’m a bit worried to write this though. Because I’m worried someone will copy these practices.

Don’t do this! It will not work (as) well for you as for us.

Do, however, see beyond our practices and to our principles and see why we did what we did. And then try to apply that principle in your world.

Read on ...

Autonomous does not mean isolated


I wanted to write a short little post on a misunderstanding and confusion that pops up once you start to create cross-functional teams;

Autonomous doesn’t mean isolated

Read on ...

Reflection on a daily retrospectives


I have created a course, a boot camp to teach people to become programmers in 12 weeks. It’s quite amazing and you should apply if you want to change career. Check out Salt - School of applied technology

Obviously, that cannot be done. But we do it anyway. And we succeed - we get rave feedback from the places where our awesome students are working.

There are a few ingredients to the successes; people being highly motivated (I can write books about that) and mob programming are two of them.

But in this post, I wanted to write about something that I think stood out for me after observing 3 classes in a row now. And it’s something that you can do and get a lot out of too.

Read on ...

The consequences of prioritizing


Been talking a lot about the consequences of prioritizing today at my client. And about psycological safety

This excellent story that Staffan introduced me too, came to mind. (I’ll summarize it below - this is just an intro, to get you to read on)

And I came to think about how the consequences of prioritizing one thing over others, often end up becoming blame for the team. When it really should be praise…

Read on ...

KanbanStats - an average improvement


Reading books is awesome - because it changes how you see and think about the world. I’m an avid reader and a non-recovering learn-o-holic.

I read a great book the other week - When Will It Be Done by Dan Vacanti and it changed how I saw the world a bit. I wrote a whole array of blog posts on process metrics and now Mr Vacanti threw some of it on its head.

Not that much when you think about it, but enough for me to want to correct myself with this new knowledge.

It all has to do with averages…

Read on ...

The Kondo software quality index


Before I start I want to give credit where credit is due:

One of the things that I love most about being a consultant is all the amazing people I get to meet at my different client; brilliant, fun and experienced-oozing people that I don’t see or meet online or at conferences. They are out there. Scott Hanselman calls them Dark Matter Developers.

This blog is sparked from one of them; Yngve! Thanks!

At this client (where Yngve works as an infrastructure architect) we were struggling to measure software quality. The teams felt like they never got the time to take care of technical issues that have been lying around forever, that they were forced to tack on “yet another new feature” and that we had no good way to communicate this.

We needed a quick way to measure and track this - such as our non-technical coworkers understood what we meant.

We came up with the Marie Kondo-index for software quality.

Read on ...

Scaling agile - up or out


Friend: So in short - they too need to scale their agile initative.

Marcus: Oh - cool! Up or out?

Scaling agile has to be the term that I’ve seen most discussions, posts, comments and conversations about the last couple of years.

And Google seems to agree - it at is peak or going there right now.

But very seldom I’ve heard an explanation to what kind of scaling that is meant: do you want to scale up or scale out? My guess is that many times people talking about scaling agile mean scaling UP but worse I think that most times we have not decided. That is not really wise because it’s two very different problems to solve.

In this post, I wanted to reason a bit about those tradeoffs.

Read on ...

Principles and practices, guilds and cross-functional teams


I have been involved in many organisational changes that turn the organisation sideways. From functional departments to cross-functional teams, from projects and completing activities to continuous delivery and focus on reaching effects.

Just about always this creates some initial confusion around where decisions get made and how the old ways fit into the new. Quite often worry about chaos break out.

For example;

Who is in charge of the overarching architecture, now that each team is deciding everything by themselves?

I realize that I’ve done a bad job describing how this is going to work. The other week I found myself describing this with a pretty simple model that I wanted to share.

Read on ...

Tags, markers and behaviour it drives on the board


I just had a conversation with a client that I keep coming back to. It has to do with how we are using electronic systems that manager our work, for example JIRA and TFS.

I needed something to refer back to and I hope that you can get something out of me writing this down.

Read on ...