Henrik Warne

Book Review: A Philosophy of Software Design

Henrik Warne

I really liked A Philosophy of Software Design by John Ousterhout. It is compact and short, only 170 pages, so it is a quick read, but it contains many good ideas. The focus is on how to structure systems to make them easy to understand and work with.

On Comments in Code

Henrik Warne

I used to think that I didn’t need comments if I wrote self-documenting code. However, I have realized that I do write comments, and that I find them really useful. To see how many comments I write, and what kind they are, I wrote a script to analyze my git commits from the last six years.

Insiders

Sign Up for our Newsletter

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

6 Small Unit Testing Tips

Henrik Warne

Choosing test values when writing unit tests is mostly guided by the need to cover all cases of the program logic. However, some values are better than others. Here are a few tips on how to pick values that make mistakes easy to spot and the tests easy to read.

Recruiting Software Developers – Coding Tests

Henrik Warne

For the past few months, I have been interviewing with several companies. In all cases, one or more coding tests were included. I have also been on the interviewing side, evaluating a coding test. Here are my thoughts on the process. Are coding tests needed?

How to Empower Your Users So You Can Create a Great Product

Speaker: Johanna Rothman, Management Consultant, Rothman Consulting Group

Join Johanna Rothman, Author and Consultant, for her session that will discuss why instead of designing for the users, CTOs and their teams should collaborate with empowered users to create a great product together.

Good Logging

Henrik Warne

To check if a program is doing what it should, you can inspect the output from a given input. But as the system grows, you also need logging to help you understand what is happening. Good log messages are crucial when troubleshooting problems.

More Good Programming Quotes, Part 5

Henrik Warne

Here are more good programming quotes I have found since my last post. Programming. “It has been said that the great scientific disciplines are examples of giants standing on the shoulders of other giants.

Artificial Intelligence – A Guide for Thinking Humans

Henrik Warne

I really enjoyed reading Artificial Intelligence – A Guide for Thinking Humans by Melanie Mitchell. The author is a professor of computer science and an artificial intelligence (AI) researcher.

4 Things I Like About Microservices

Henrik Warne

Microservices have gone through a complete hype cycle. From being hailed as the one true way to build systems, to a backlash where they are often considered too difficult and complex. In a way though, they are like most technology – there are trade-offs.

Working From Home – Cons and Pros

Henrik Warne

Because of the Corona pandemic, our whole company has now been working from home for 12 weeks. Before, we mostly worked in the office, although occasionally people would work from home, for example when waiting for a delivery.

Video 208

Address the Challenges of Siloed Monitoring Tools

Companies frequently experience monitoring tool sprawl. Find out why monitoring tool sprawl occurs, why it’s a problem for businesses, and the positive business impacts of monitoring tool consolidation.

Book Review: Designing Data-Intensive Applications

Henrik Warne

What a great book Designing Data-Intensive Applications is! It covers databases and distributed systems in clear language, great detail and without any fluff. I particularly like that the author Martin Kleppmann knows the theory very well, but also seems to have a lot of practical experience of the types of systems he describes. There is so much to learn for me in this book, so I have summarized the main points from each chapter, with a special emphasis on what I found most interesting.

Deployed To Production Is Not Enough

Henrik Warne

You have developed a new feature. The code has been reviewed, and all the tests pass. You have just deployed this new feature to production. So on to the next task, right? Wrong. Most of the time, you should check that the feature behaves as expected in production.

System 160

20.5 Years of XP and Agile

Henrik Warne

In the fall of 1999 I got the biggest productivity boost of my entire career as a software developer.

Agile 174

Mathematical Modelling of Football

Henrik Warne

This fall I took the course Mathematical Modelling of Football from Uppsala University. It was taught by Professor David Sumpter , and I believe this is the first academic course of its kind.

Course 135

A Training Company’s Guide to Selecting an eLearning Platform

Training companies have an opportunity to embrace the change and create meaningful change in their organizations by moving online. Discover the advantages of a digital-first approach, using an eLearning platform.

Developer On Call

Henrik Warne

For the system at work, I am on call one week every seven weeks. For most of the past ten years, I have been on organized on call rotations for the systems I have been developing. I think being on call is a logical way of taking responsibility for your work. You also learn a lot from it. However, it is stressful and an inconvenience, so you should get payed for it. Why Developers Should Be On Call. Many systems need to be available around the clock, so somebody has to be on call for support.

When TDD Is Not a Good Fit

Henrik Warne

I like to use Test-Driven Development (TDD) when coding. However, in some circumstances, TDD is more of a hinderance than a help. This happens when how to solve the problem is not clear. Then it is better to first write a solution and evaluate if it solves the problem. Writing tests only makes sense after the solution is viable. Last week, I came across examples of where I developed new functionality without using TDD. In both cases, it felt like the natural thing to do.

TDD 164

Programming: Math or Writing?

Henrik Warne

Is programming like math, or is it like writing? I think there are elements of both in it, even though programming is a discipline of its own. Nevertheless, it is interesting to think about what aspects are like math, and what aspects are like writing. Maybe it will even lead to a better understanding of what programming is. Like Math. Sometimes, the domain of the program requires math, for example machine learning, graphics programming or financial modelling.

Exercises in Programming Style

Henrik Warne

In the book club at work , we recently finished reading Exercises in Programming Style by Cristina Videira Lopes. The book consists of a simple program implemented in 33 different programming styles. It is a great way of showing the different styles, and the book was quite popular in the book club. The book is relatively new (it was published in 2014), and I don’t think it is as well-known as it deserves to be. So here is a summary and review of it. Organization.

Does Your Company Need Help Solving These 4 Common eLearning Challenges?

If you want to know how to get ahead of the game and avoid the common mishaps in selling your eLearning courses, you’ve come to the right place! Lambda Solutions has identified the most common and costly challenges faced by eLearning providers today.

Benefits of Continuous Delivery

Henrik Warne

During my career as a software developer, I have seen the release frequency increasing steadily. When I started, it would take 12 to 18 months for new features to reach the customer. Years later the frequency increased, so deployment to production happened every three weeks. For the past two years, we have been using continuous delivery at work. This means that as soon as a feature is ready (implemented, code-reviewed and tested), it is deployed to production.

Programming for Grade 8

Henrik Warne

For the past two months, I have been helping my son’s grade 8 class to learn to program. All students wrote Python programs and got a feel for what programming is. This post has details on how we organized the course, code examples and lessons learned. Background. This year, all schools in Sweden are required to start teaching programming. Many schools already teach programming, but they depend on having teachers that know enough to teach.

6 Git Aha Moments

Henrik Warne

When I switched jobs four years ago, I went from using subversion (svn) to using git as the version control system. Even though I am a pretty quick learner, it took me a quite a while to really understand git. I read a lot on how git works, but even so, I didn’t always realize what the implications were for how to use git. Here are six big “aha moments” I had on how to use git. Aha Moments. Looking at these aha moments now, they all feel really obvious.

Is Manual Testing Needed?

Henrik Warne

For the past few years, I have heard many people advocating using only automatic tests. For example, if all the automatic tests pass, then the code should automatically be deployed to production. I have always performed a bit of manual testing before feeling confident about my code. So for the past year I have paid extra attention to bugs I have found manually testing my own code. My conclusion: manual testing is still needed. How I Test. At work, we have a production system and a test system.

Cloud-Scale Monitoring With AWS and Datadog

In this eBook, find out the benefits and complexities of migrating workloads to AWS, and services that AWS offers for containers and serverless computing.

More Good Programming Quotes, Part 2

Henrik Warne

A good programming quote captures an insight about programming, often in a funny way. Many quotes are quite famous, but I like ones that are a bit less well-know. A while ago, I listed some favorites. Here are more good quotes I have found since then. Enjoy! Programming. “What one programmer can do in one month, two programmers can do in two months.” ” – Fred Brooks (maybe). “Hardware eventually fails. Software eventually works.”

Developer Testing

Henrik Warne

I recently found out about the book Developer Testing – Building Quality Into Software by Alexander Tarlinder , and I immediately wanted to read it. Even though I am a developer at heart, I have always been interested in software testing (I even worked as a tester for two years). I think the subject of the book, developer testing, is timely. There seems to be a broad trend where more and more responsibility for testing is given to developers.

My Favorite Command-Line Shortcuts

Henrik Warne

I use a shell every day. Almost always, I want to repeat a previous command, or repeat it after a slight modification. A very convenient way is to use arrow-up to get the most recent command back. Another common trick is to type ctrl-r and incrementally search for a previously used command. However, there are two other tricks for repeating previous commands that I use all the time, which are not as well known. Escape-Dot (or !$).

Book review: Accelerate

Henrik Warne

The book Accelerate details the findings of four years of research on how DevOps affects various outcomes, such as software delivery tempo and stability, as well as the organizations’ profitability and market share. DevOps in this context means things like continuous delivery, automated tests, trunk-based development, and proactive monitoring of system health. It is quite clear that DevOps practices bring lots of benefits to organizations adopting them.

Survey 105

Deliver Effective Online Education and Events Your Members Will Love

This guide identifies the biggest challenges for associations moving their training online and provides practical solutions so that you can hit the ground running. Download now to keep your members engaged and growing even in times of COVID-19.

Nordic Testing Days Tallinn 2019

Henrik Warne

At the end of May I attended Nordic Testing Days in Tallinn, Estonia. It was the first time I spoke at a conference outside of Sweden, and I had a great time. There was one day with tutorials, and two days with workshops and regular half hour talks. Here are my impressions: Talks I Liked. Why Should Exploratory Testing Even Be the Subject of a Keynote? This opening keynote by Alex Schladebeck was the best talk of the conference.

6 Years of Thoughts on Programming

Henrik Warne

It is now more than 6 years since I started blogging about software development. It has been a great experience, and I thought I would reflect on what I have learnt. So here are my reasons for writing about programming, a bit on my process, and some statistics. Knowing what I think. Formulating or explaining something in writing makes me think it through really carefully. The act of writing it down exposes gaps in my arguments and knowledge, forcing me to clarify my own thinking.

Developers – Talk To People

Henrik Warne

Many software developers have a tendency to avoid talking to people. They would rather just rely on written communication in chats, email or issue tracker tickets. However, talking to people more can make them more effective as software developers. Here are some examples: Example 1. Suppose you are implementing a new feature. The ticket in the issue tracker describes how the new functionality should work.

Recruiting Software Developers – Checking Out a Company

Henrik Warne

I often get contacted by recruiters asking if I am interested in changing company. Even if I am happy where I am, I briefly check out companies I have not heard of before. One reason is that you never know, maybe the new company is a fantastic opportunity that really is interesting to me. Another reason is that I don’t know how things will change – maybe I will want to change in a year’s time or so.

What E-Commerce Performance Metrics Are CTOs Monitoring?

In this eBook, Danny Miles, CTO of Dollar Shave Club, reveals an efficient framework for thinking about and prioritizing the performance metrics that matter most to him, providing a blueprint for fellow e-commerce CTOs to follow as they evaluate their own business.

Programming Conference – QCon New York 2017

Henrik Warne

Last week I attended a software development conference, QCon in New York. Here are my impressions of it, as well as some thoughts on programming conferences in general. For me, there are several reasons to attend developer conferences. You have a chance to hear what is going on in the field of software development – what are the new techniques and technologies other companies are using. What are their experiences. What works, what doesn’t work.

More Good Programming Quotes, Part 4

Henrik Warne

Here are more good programming quotes I have found since my last post. Microservices. “Microservices are just dynamic linking over HTTP” via @mononcqc. “kubernetes – turning things off and on again, at scale” @decimalator. Full stack.

More Good Programming Quotes, Part 3

Henrik Warne

I like good programming quotes. Here are some new ones I have found since my last posts. Complexity. “Why do people find DNS so difficult? It’s just cache invalidation and naming things.” ” – @jdu. “Your code doesn’t work!” ” “It works on *my* machine.” ” “Fine, we’ll ship your machine!” ” And that’s how Docker started. marabou.

Grokking Deep Learning

Henrik Warne

In the book club at work, I just finished reading Grokking Deep Learning by Andrew Trask. It is an introduction to deep learning, but there are some problems. It spends a lot of pages on the basics, and in the end moves on to some fairly advanced topics.

The Pro’s Guide To Getting The Best ROI From Your New LMS

You need a Learning Management System when your courses and training programs need to be accessible online. Quickly build the perfect business case and easily determine which LMS will provide the best return on investment you need with this how-to eBook!