Niko Heikkilä

August 10, 2022

Mob Programming – key issues it can solve, benefits, and learnings

My team and I have been practising mob programming daily for six months. During this time, we have grown from three individual specialists to a team of four full-stack developers and learned to overcome the myriad of challenges presented by our client's business domain. I wrote about our adventures, learnings, and obstacles in mob prog...
Read more

July 27, 2022

A Practical Guide to Micro-Commits

In software development, there's a lot of talk about small vs big batches. However, that talk mostly comes from the Lean methodologies perspective, which, while essential to learn, is not digestible for all. How do you practice small batches — micro-commits — as part of your daily workflow? Let me show you. “If you'd rather skip straig...
Read more

June 27, 2022

The Essentials of Simple Design

Few rules in designing clean code have been as crucial for me as Kent Beck'sfour rules of simple design. To jog your memory, they are as follows: Well-designed code… • passes the tests • reveals intention • has no duplication • contains the fewest elements How do I use them? First and foremost, I need to get to a state where my code is...
Read more

May 27, 2022

Raising the Bar of Professional Software Development

Recently, on LinkedIn, I shared my unapologetic opinion that you're not a professional software developer if you don't care to write automated tests to verify your code. Some people took this into their hearts and decided to call me out as a gatekeeper, actively seeking to harm the industry. Remember that I said nothing about fresh dev...
Read more

May 8, 2022

How do you ensure your team receives feedback as fast as possible?

It happened once upon a time, during the code review… Developer:"Hey, could you review my PR? I had this fantastic idea about X the other day, so I decided to give it a go. I think it turned out to be pretty good. What do you think?" Reviewer:"Ehm, but that's not what we had planned. Did you design this by yourself? Did you stop and th...
Read more

May 7, 2022

New Computer — Who Dis?

There is one thing uniting the people working in tech. Computers. Fresh from the box, many of them are happily unequipped to fulfil our grand visions and desires. Whether it be the ecological disaster caused by chasing after fancy new hardware, receiving authorized devices for client work, or switching laptops due to expiring leases, w...
Read more

April 18, 2022

Sanctity of the Slow Web

During a mentoring session, I was recently asked for tips on how to keep up with the tech world. There are too many places to mention, but I'll list a few here: GitHub Explore can offer you many suggested packages based on the GitHub repositories you've browsed. The algorithm works surprisingly well and learns about your habits to impr...
Read more

March 12, 2022

Five Best Talks from DevTernity 2021

The promise on DevTernity 2021 homepage is to turn developers into architects and engineering leaders. A bold mission, which many major players in the thought leadership business would find a formidable challenge to overcome. Then again, they advertise to be in the top 3 among international software development conferences, so perhaps ...
Read more

February 13, 2022

Growing Software Guided by the Living Dead

While dipping our toes with test-driven development for the first time, a significant obstacle is usually finding out how to write our first tests. Happy cases are easy to start with, but a better way involves mapping your inputs to expected outputs—watch out, ZOMBIES! No, I mean for real. ZOMBIES testing pattern was introduced by Jame...
Read more

February 12, 2022

Uncertainty-Driven Project Development

In the modern world struck by volatility, uncertainty, complexity, and ambiguity we are still pushed to estimate our work accurately. Some say estimating is stressful and counter-productive. Some say it's essential for tracking the team's progress. There is an alternative parallel universe way of working, forcing you to refine and spli...
Read more

January 30, 2022

New Release – Publicator

Lately, I've been investing more time in Python projects. However, having worked with Node.js and TypeScript for the better part of the last few years, I instantly began to miss the comforts provided by the Node ecosystem, namely the fantastic Yarn package manager. Python ecosystem has had its fair share of package management solutions...
Read more

January 1, 2022

DevOps Is the Interface, Your Organisation Implements It

Once upon a time, two software companies were competing in the same business domain. The first one has been out of business for a while now. The latter one thrives. Long Time Ago in a Software Company, Far Far Away... The product management learns about a speculative need for the Feature that will help the company increase their cash f...
Read more

December 6, 2021

Craftsman's Log – 2021.12.06

Wishing you a merry winter solstice and related celebrations in your local culture! Today we Finns also celebrate our 104th year of independence. While I'm not the one to spread nationalist chants, I'm fortunate to live in a country that has enabled me to grow professionally in a multi-cultural environment. Next Friday, I will be atten...
Read more

November 7, 2021

Craftsman's Log – 2021.11.07

Oh, hi! How is your November going? 🍂 Lately, I've been busy moving from one project to another. I've recently finished a short consulting gig where I helped my team build a cloud-based publishing platform using AWS Cloud Development Kit. I will write more of my experiences with CDK to my blog at a later date. I updated my blog to Gats...
Read more

September 21, 2021

Mobbing Without Programming

This week we had some leisure time with my Futurice team playing escape room games. Surprisingly, I enjoyed not participating in the play but observing how we solved the different puzzles together. This led me to a revelation: what I saw was us doing swarming/mobbing with a WIP limit of 1, which is a recommended workflow in nearly all ...
Read more

September 5, 2021

Craftsman's Log – 2021.09.05

Oh, hi! How is your September going? I've been reading again. I'm drafting this post with the Day One app, which I migrated to from Notion. I also tried Emacs' Org Mode for bullet journaling, but simplicity always wins. The Human Side of Elixir I've been studying Elixir programming language and its tooling occasionally, but somehow I n...
Read more

August 9, 2021

Craftsman's Log - 2021.08.09

Hello, reader! 👋 For the last few weeks, I've been recovering from surgery. Fortunately, it hasn't limited my daily life that much. The operation itself was short and affordable because my employer's health insurance entirely covered it. Healthcare is what matters most should I feel the need to relocate to some other country. As is the...
Read more

July 19, 2021

Craftsman's Log - 2021.07.19

It seems that the summer heatwaves have paused so I can once again focus on writing. So here are a couple of good picks I've read and watched while lying in a hammock drinking mineral water. 😎 The fabulous Mob Mentality Show ran a short episode about using mob programming in interviews. It turns out this approach has been familiar to m...
Read more

June 27, 2021

Craftsman's Log - 2021.06.27

I'm writing this just before leaving on a vacation trip. Expect one or more entries during July, though! I started reading the new Dave Farley book, Continous Delivery Pipelines. Remembering how much I liked the Continuous Delivery book, it's likely I'll reference some nuggets of wisdom from this one in later posts. I was nodding hard ...
Read more

June 20, 2021

Craftsman's Log – 2021.06.20

Just in time for summer vacations, I got my summer vaccination this week, and the second shot will be in September. Soon, I'm a free man and free to lick the pavements again — which I probably shouldn't do. I watched through Ragnarok season 2 from Netflix. It wasn't as strong as the first season, mainly due to the series attempting to ...
Read more

May 30, 2021

Craftsman's Log – 2021.05.30

This week, I started recording my overall mood with the Daylio app. It's delightfully simple to use and reminds you that even bad days can be rare, even if you generally feel low. Best mindfulness. I finished the Practical Remote Pair Programming book—more about the benefits and pitfalls of pairing in my blog. Marty Cagan hits the spot...
Read more

April 25, 2021

Craftsman's Log - 2021.04.25

My current employer (Futurice) has begun hiring people from everywhere (in Finland). Check out our open positions, and join us. I'm happy to give more details about our culture and ways of working. I wrote several paragraphs about mentoring, why we need it, and how to excel in it. Related to mentoring, I received this helpful analogy b...
Read more

March 31, 2021

Craftsman's Log – 2021.03.31

I participated in The Principal Developer Masterclass training, which sparked me to write a bit about Little's Law and its impact on agile software delivery. Read the post for tips on reducing the work in progress and increasing your team's throughput. I also received a few pull requests to fix slight factual errors in my post, which r...
Read more

March 24, 2021

Captain's Log - 2021.03.24

I updated my blog to Gatsby 3.0. It doesn't feel notably faster or different than the 2.0 version, but the new Fast Dev mode based on React 17 and a new image plugin are pleasant to work with. It's great to have major releases that don't take hours to upgrade. I've begun to advocate CSS Modules whenever I need to style websites. I know...
Read more

March 6, 2021

Oh, Hey!

I set up a email account in the first wave when released, but it has been sitting without real use case since then. It seems like I have too much spare money in my hands, but what the hell? I genuinely enjoy the products and articles people at Basecamp put out regularly, so I'm happy to support them. If you haven't yet read the...
Read more