#100daysToOffload Quality And Efficiency

What does it mean to do well at work? As far as I can tell, it means that you do the work reliably and do it quickly (or rather: efficiently) and do it in a appropriately qualitative way. For programmers that means delivering features, preferably within the given estimate (allowing for some margin of error and the ocasional outlier).

So: Reliability, efficiency and quality is what can be used to judge a programmer. If would need to judge myself, I think I have the quality part nailed down. I am not afraid to tackle structural problems in a legacy system, do refactorings and take the time to remove technical debt. However it’s the other two parts that I’m lacking.

The reliability part - meaning that I deliver consistently - is not as problematic than the efficiency part. This translates to me being able to deliver the same high quality in the same inefficient manner.

The efficiency part is where my main problem lies: In order to deliver on time I will need to learn to cut corners and leave messy code as it is and even add my own mess on top of the rest at times.

This doesn’t seem to enable delivering greatness. After having read Slow Productivity recently, that has a completely different philosophy about work - “do fewer things”, “work at a natural pace”, “obsess over quality” are its main points - this job stands at odds with this philosophy (that I am whole heartedly agree with).

I now think that this is not the correct framing. It’s reasonable to assume that I will work for the rest of my career in situations that demand - more or less - efficiency. “Delivering greatness”, in part, is about making it happen under economic constraints. Entrepreneur or salaried worker: This means that I need to be a good investment to be allowed to work on whatever I deem “high quality greatness"™.

I’ll have to learn to actually make hard decisions, because I will need to make more trade-offs. I will need to get an intuition for when I can cut corners, what corners can be cut, the different ways in which corners can be cut, how to argue about corners and trade-offs and so much more.

If you’re just looking at it from a “best practice, always” standpoint, these things seem not necessary to consider, but I’m now convinced that it’s actually efficiency + quality more than quality on its own that could bring me to the next level in my career.

Stressful week at work. I wrote an emotional post last Friday about some of my worries. Finally some relief today. I too have still to learn and will make mistakes. And learning is not a linear process. But knowing that my employer hass my back made me realize how much of my worries were not real.

#100DaysToOffload Just Deliver

I had a hard day at work. It was hard, because I ended a streak of about three days, in which I was unable to work productively and today was the day in which I finally had to “show my work”. And then nobody saw my work. But now it’s lying there, out in the open, awaiting feedback. And I have to go into the weekend with a feeling of dread.

I’m a programmer by trade and a slow, but hard-working, explorative kind of person in general. I love to find out how things work, how they maybe could work better and how to make a system such that it can communicate well with the people maintaining it. Which means that I’d rather spend weeks reworking a legacy system, improving its workings and reorganizing and tidying up its architecture than implementing new features. So I like to do the work that is most often appreciated by other programmers - on a good day (most often people will not really notice … until they do). Keeping a system in good working order. Like a well oiled machine. Notice that end users or features are not necessarily part of that. It’s not like features are uninteresting or unimportant to me, but the how and the why matter to me a whole lot more. Especially the how.

However. Because I get payed for features or bug fixes on features and not for refactoring, removing technical debt or thinking about software architecture, I am not the best programmer for the kinds of tasks my company offers, sometimes, I’m afraid. It sucks to admit, but I am pretty slow, when just measured on delivered features compared to many others. The main reason is that I am unable, maybe also unwilling, to “just deliver”.

I assume that being able to “just deliver” - meaning without refactorings (e.g. to make especially gnarly code comprehensible for me and future programmers) or enhancements of the project’s setup (e.g. to configure an autoload feature as I needed to do today) - is the result of either not seeing the problems (e.g. maybe not being as experienced, yet) or being experienced enough to not care about the problems anymore (e.g. maybe by having had to navigate some portion of legacy code so often, that they just know where to look without the need to make the code more comprehensible).

But I see it everywhere at my work: The people who are good enough to be hired permanently (which I was, too, somehow …) all seem to possess something I don’t. I hesitate to call it more experience or talent. Which is not to say that I am perfect. I do readily admit that I totally have blind spots. And even where I feel confident, I know that I could still learn a lot more. And I also admit that my values are sometimes at odds with what is the bread and butter of my job: just deliver features. On time. Without too much back and forth, in acceptable quality (but nothing more, since nobody is able or willing to pay for it).

So what is it then that makes my colleagues better at this? I think it is a willingness to not care as much. That’s the “just” part of the “just deliver” motto. I don’t mean that derogatory, even though it sounds like it at first. If you are able to not care about technical purity you may be able to deliver faster. You may be able to overlook a less than ideal implementation to have a working version earlier - which can be a good thing.

Apart from being less concerned about technical quality, I think there is a certain soberness in most of my colleagues. No matter how difficult some code may be to read or how tight a ticket’s allowed time budget may be, they seem to be able to not need to reinvent how to do things all the time - like I seem to. They can keep their powder dry. They do not need to go over the top, whereas I seem to go over the top by the drop of a hat. Maybe a reason for this is differences in personality type, sure. But I think that it might also be a difference in approach, which is much more interesting, because I might learn to incorporate that approach.

I think the soberness comes from having somehow learned to respect lines in the sand. Like today (Friday), when I had to hand in part of a feature and a whole lot of refactoring and general enhancements of a new (to me) project that I was introduced to on Wednesday. Another programmer would have not done that. They would have been able to not even seriously contemplate the possibility to do what I did. They would have done a more minimal job, probably cursed a lot, probably complained a lot, but they wouldn’t have spent the better part of three working days delivering two thirds of a feature that was supposed to take around two hours. All the while having to come up with justifications to do so.

So yeah. Other people don’t do that. As much. I’m sure this is a spectrum rather than just extreme me vs. moderate everyone else. That I’m so dismayed by this, is that I might also be considered too old to not have yet learned this already (I’m 37, with more than 5 years of work experience). In one word: I might be too expensive, if I don’t learn to bend a lot more. And quick. That’s enough to make me feel bad. Since it’s the weekend without any feedback coming my way until Monday, the bad feeling is mixed with anxiety.

I can’t really tell how bad it is this time. With the recent worsening of the IT job market and the general worsening state of the economy, I’m extremely unsure of what to expect if this problem continues of worsens over the next 6 month, let’s say. I feel like wasting almost three days after having been repeatedly told since I have been part of the company to pick up the pace (not in so many words, but basically that), be more pragmatic and trying to make smarter choices about which way to take to deliver solutions, I feel pretty gloomy to be honest. I feel defeated by my personality in some ways. I don’t know how long this can go well.

I hope that I will catch myself in time, next time. And for the things that have already been done: I hope I find a way to navigate the probably coming, somewhat difficult discussions ahead. That includes discussions around basically ignoring what I was supposed to do for the last few days and booking my hours in sometimes questionable (if technically justifiable) ways.

One silver lining: There is a chance that the extra work is welcomed after all. I might still be gently scolded, but in some ways taking the time to come up with a better solution and thinking long-term is almost always a positive, of course. So here’s to hoping that the people paying me think so, too. Fingers crossed.

#100DaysToOffload End of the myth of rational public discourse - The example of climate change

A couple more items that make it clear that climate change is not going to be stopped. National interests are more important than planetary problems.

Here’s Noah Smith with a piece about climate change as the only policy goal and how viable that is:

But despite what many of my friends and colleagues thought back in 2017, climate change is not actually the main reason for industrial policy, nor will it be going forward. And so they are shouting into the wind.

The main reasons for this are:

  • people are not moved enough to care about climate change to vote differently (in the US, but I’d wager in Europe, too. They are for sure not willing to pay for it.)
  • the green energy transition will come regardless of it not being the only priority (but I will add that the energy transition itself will not make climate change go away: yes, technological advances mean that switching to (mostly) solar + battery is going to happen, because its the cheapest way to produce electricity/power nowadays, but western countries are not the main polluters and even then everything that can be done is too little, too late. In a way the energy transition is almost decoupled from climate change. Taking the Jevons Paradox into account, we should expect more consumption and therefore more production, more use of resources and a bigger toll on the planet in the end.)
  • national security and reindustrialization are more important than climate change and climate change needs to be an argument for this reindustrialization to make any waves at all (Security and reindustrialization mean bigger footprints, not smaller ones)

In short: The changing world-political landscape makes it highly unlikely that rational arguments or strategic protests will persuade humans to change their ways (I think I’m allowed to generalize here).

And for individuals this means that we have to learn to live with ever hotter summers. As for example this professor expresses:

Youtube: Climate records keep getting shattered; expert says this is the new normal

So, yes. We can stop asking the question, how we can mobilize the public for climate change and against biodiversity loss and start asking the question how we can live in a world that is not going to bend to reason (at least at larger scales … I’ll have to explain that soon in more detail).

#100DaysToOffload #Oulu - Appreciating historical monuments

A scenic photo featuring Napu the dog, standing on a cobblestone path under a flowering tree, with the Merikoski hydroelectric power plant's dam visible in the background. The scene includes a grassy area and a bench where two people are seated, enjoying the serene environment. The dam and surrounding nature are bathed in warm, late afternoon sunlight.

We live in Oulu and Oulu is noteworthy in part because of the hydroelectric power plant that has changed the face of the City’s river (called Oulujoki, literally Ouluriver). My partner and me, we talked about the dam a little while walking along the basin on top of the dam and it made me think that a monument like this is interesting because of its multi-facetedness:

On the one hand, this hydroelectric power plant can - if the conditions are right - provide the city with about a third of the electricity needed in a year. It is therefore a marvel of engineering, and it doesn’t need to burn anything to produce this energy. It can therefore be considered green energy. On the other hand, the power plant changed the face and course of the river forever and has had a not insignificant impact on the nature of the river.

From an ecologist’s perspective, hydroelectric power in general is somewhat questionable because of the large impact it has on ecosystems. The straightening of a river and the creation of a dam are the opposite of protecting valuable, one-of-a-kind river ecosystems. Oulu, for example, had great rapids before the hydropower plant was established that are now gone and gone for good. Its name, “Merikosken voimalaitos” which translates to “sea-rapids power plant”, still points to this legacy. We are not preserving the planet just for us, so if a power plant like this produces “green” electricity, what does that even mean? So we can continue business as usual? That seems counterproductive and naive to think about it so narrow-mindedly. From a historical perspective, a dam like the one regulating the river here in Oulu is a monument to historical development in general. I would like to believe that a plan to build a similar power plant would be considered differently, that we would employ a lighter touch to protect more of the original nature - if we would built it at all. But Oulu’s power plant was built in 1940. And it seems appropriate to recognize that a decision like building this dam was made then within the historical context of 1940 and not today. We need to recognize that our views now are a response to developments of the past, which in turn were a response to past responses themselves.

That doesn’t mean we need to be apologetic about any and all past decisions, but at least from a distance, we can see that everything has historicity inscribed, which makes it possible to appreciate monuments like a dam with a historian’s eye. Our current understanding is the result of collective missteps, conservative take-backs, and risky bets. It’s the sum total of the mixed bags of everything humans have ever created.

We infer what is new, correct and just (for now) from looking at the past in one way or another. A dam with its volatile meanings can be a bittersweet reminder and example of our situatedness in historical time and our transitoriness. We won’t have the last word.

But because of the possibility of watching a dam like this, we can realize the beauty of us being transients in time by recognizing its aesthetic merit. We can recognize that the dam and the park area around the dam - with all their marks of alien-seeming decision-making - can look beautiful and interesting because of this historicity.

Appreciation for industrial monuments like this is possible without bracketing their ecological dimension, by including a historical dimension.

#100DaysToOffload Just Say The Thing

[I keep this nebolous for my own reasons. People in the know will know. Otherwise just take it as a general statement adding to my recent entanglement in the small web community I am a very small part of.]

Gotta be honest: I feel insanely shitty about this whole mb and associated drama. I loved that mb timeline for a while (I was looking forward to using the new Reeder Beta to finally have an app that has timeline sync…), and some (probably most) of the people there are decent people, but some of the responses of the main players in this drama here seem so “automatic”: like just taking the next step in a pre-choreographed dance or something. When you say something insensitive, you first deflect, then tell how you know how “feeling hurt” feels because of your past or whatever, too and then relativize what either you said or what others said. Finally you try to apologize without affirming the values of those you’ve hurt. And then you move on.

And me saying this about other people feels like I’m being unfair. And maybe I am. I long for more complex takes and interpretations (there are always some, but I always would want more), and I would wish for people taking those takes to be inclusive and not to act obtuse. A take is a take. Complex or not.

Complexity shouldn’t be used as a shield.

And if the take was deemed unacceptable and you are remorseful: Is it really so hard to express the problem explicitly? “I accept and welcome all people, trans (et al.) or not. I support LGBTQ+ people explicitly. I kind of forgot my privilege here.” or: “I may not have really thought about the whole OpenAI thing in terms of power relations. I should have not called anybody disagreeing with me part of an angry mob or extremists.”

Granted, that might not work. But I would’ve liked to read it or hear it. I want to give people the benefit of the doubt because I hate conflict the most. I want harmony above all else. But there exists a paradox here: Am I willing to support - sight unseen - people who seem to care about pronouns so much, that they can’t even be asked to put “he/him” in the box of a video game?

I just so wish online discourse would not feel so “rehearsed” in this sense. But what am I even saying? Is real life that different? Isn’t it also quite rehearsed? Am I expecting conservative people to not lose their minds when the topic of gender-affirming practices comes up, for example?

Anything that is informal and breaks the pattern somewhat in the course of a conflict like this is good, I find:

  • writing emails/ messaging in private
  • apologizing in public and showing remorse (in general)
  • using replies and comments to engage readers
  • trying to actually connect with people through the internet, not in terms of values, but in terms of humanness

But: I still want to hear you say the thing! Or express that you don’t understand yet - this might mean others will stay mad until you understand, but I would love to read that at least. Saying the thing is not optional. Connecting in terms of humanness is not a surrogate.

I find it hard to believe in rational discourse at large for this and other reasons - if I even let myself dream that rational discourse could be a real thing. It seems like an unhelpful assumption even in the smallest of (online-)circles.

P.S.: And I wish that there would be some good examples of reconciliation in online conflicts - if I am completely honest. In that sense, I agree with Jason Becker’s post.