Why Doctors Hate Their Computers – damning, absolutely damning.
Heightening the danger of harm is a human inclination to trust that technology is more objective than our own decision making. But economists and data scientists are just as likely as call screeners to hold mistaken cultural beliefs about poor white families and families of color. When systems designers program their assumptions into these tools, they hide consequential political choices behind a math-washed facade of technological neutrality.
A lot has been written about the role of bias in the context of AI or machine learning these days — and rightfully so.
Discoveries are delicate things. To make a discovery, a scientist needs to be familiar enough with prior research to formulate an important question that is neither too easy nor too difficult to answer.
Scientific inquiry is an arc of knowledge, a series of steps on a path toward a deeper understanding of the unknown, and the breakthroughs only come because of the body of knowledge that previous observations have built.
The closest thing to an indispensable characteristic is a passion for the work and a near-obsessive interest in seeing it through […]
This is one of the most interesting articles I have read this year. It presents a fascinating view of the twists and turns leading to the discovery of insulin and treatments for diabetes — and it has important lessons to teach about the nature of innovation and discovery.
We used to run into each other often, usually as we were both walking our dogs to the park. We would stop and chat, always pleasant, part ways a few minutes later. I am not sure what exactly happened, perhaps our routes changed slightly or perhaps our timing did, but those encounters became more sporadic after a while and eventually close to a year had passed since we had seen each other last. Life was busy and frankly, I barely noticed how we had lost touch. Sometimes you only remember what you lost, once it has returned.
So one day, we did happen to be out in the same neighborhood at just the right time again. After the initial delight, us both vaguely becoming aware that it had been many months since we last talked, we chatted for a few minutes. I had been struggling with a lot of stress at work, juggling many projects and commitments, not finding enough downtime. A sense of exasperation was probably close to the surface that day, though I provided no details and rather soon redirected the conversation: “And what about you? How have you been?” There was a brief pause, then he replied “aw man, it’s been rough, honestly. I lost my job about eight months ago. Been trying to get a new one ever since …”
We continued talking for a few more minutes, then said our good-byes and went our separate ways again. It has been a few years now, but the memory of that conversation remains with me.
The lessons are still sinking in.
I ran my first half marathon (Seattle Half Marathon) in 2009. It was Thanksgiving weekend, cold and painful. During the five months leading up to it, I was only haltingly getting into the practice of regular running. Even after the event, I would not say I was really enjoying the training that much. But, I finished that race and that’s what mattered. My final time clocked in at 02:24:10.
Over the years, I kept practicing and participated in a few more races. A goal emerged over time and I had hoped to accomplish it prior to running my first full marathon in 2016: Run a half marathon in under two hours! I actually did come close that year (Lake Sammamish Half Marathon, 02:01:19), without quite making it.
Last weekend, I ran the Beat The Blerch Half Marathon. The race featured a very flat course throughout and pouring rain for a good portion of the time. One is helpful for maintaining good speed and the other, well, I found it strangely exhilarating. I found a good flow that day, things worked out.
As I finished mile thirteen, looking forward to finishing, my five-year-old daughter ran towards me, a big smile on her face, screaming “Daddy!” We shared a high-five and I continued for a bit further, past the finish line.
So, after almost nine years of inconsistent, small improvements, I finally ran a half marathon in under two hours. In the evening, my daughter told me, perhaps next time we could run a race together. She also had a question: “How much did you level up today?” I couldn’t help but laugh.
Perhaps it is time for new goals.
How do you know when you reached an inflection point in your life? How can you know that from that moment forward you would be interested in math or enjoy running or pursue a career in gardening? Could you ever tell at the time or is that insight generally reserved with the benefits of hindsight?
Perhaps this is easier for the outside observer. If I were to make a prediction, then I would say that today is the day that my daughter (not quite six years old yet) became interested in playing video games. In the past she generally liked to just watch me play. I would select age-appropriate games and occasionally offer her to take the controller and try it herself, but she would usually shy away. This changed today.
That game today was Seasons After Fall and shortly after starting it, I encouraged her to give it a shot herself. She was unsure at first, but I encouraged her and emphasized that the controls were simple. She went for it! Yes, the Xbox controllers are big for her hands, but she got it this time. Minutes later, the delight on her face was obvious, as the little fox on the screen moved in response to her pressing buttons on the controller.
An hour later she was still at it, getting upset when she ran into trouble, rejoicing when she overcame it. Occasionally she asked me for advice or concrete help for getting past a tricky spot. I would take the controller a few times, but always handed it back after a minute or two.
Witnessing her transformation from observer to reluctant participant to fully engaged player, this sure seemed like a turning point. I could be wrong about it, but just in case, I am noting the prediction here as my best guess.
I am a big fan Cal Newport‘s thinking around deep work. His books So Good They Can’t Ignore You and Deep Work are fantastic. I have recommended them often and have personally gotten a lot of value out of exploring deep work practices. He generally dispenses with what he calls the passion hypothesis, i.e. the idea that you should follow your passion — find what you’re passionate about, then make a living of it.
There is tremendous value in simply focusing on value, in creation, in focusing on becoming excellent. Passion is secondary there, you often don’t have to be that excited about the subject. As it turns out though, people tend to acquire the taste, i.e. like the things they are good at. Even so, I have wondered for the last few years how to best create a practical connection to passion. I think I may have found a way of thinking about it that works well for me.
The German word for passion is Leidenschaft. This breaks down to leiden (to suffer) and schaffen (to create). I am (clearly) not an etymologist, but this is how I am drawing meaning from the term. Passion, then becomes an important ingredient in the quest of creating value. Deep work, operating at the edges of your mental capacity, is hard — especially when done over prolonged periods of time. Passion can help you suffer through the process of creating. It allows you to pay the price.
When we are exchanging notes then and you’re telling me about your new idea or your new project, I do care how passionate you are about it. Mentally, I am wondering, how much you are willing to endure hardship, to bring it into reality.
My five-year old daughter was not having a good morning. We had driven for an hour and a half and were now out and about on a trail, perhaps a mile away from the parking lot. She did not want to be here. “I want to go home … I want to go back to the car … when are we done? …” – and on and on and on.
My wife and I were a bit ahead and started conferring. Clearly, this wasn’t playing out the way we had hoped – should we just cut our losses and head back? Ugh, I just knew, if we announced that we were going to head back, the complaining would stop and our little girl would suddenly have all the energy in the world. This was so frustrating. She was an intelligent, sweet girl. If only she could look at it in a different way –
I paused. Was it a matter of perspective? Perhaps I could show her.
“Hey sweetie.” I squatted down next to her, smiling. She looked so unhappy.
“Did you know that there are two different types of games? Some games you play to win. Others you play just to play.”
She looked at me with curiosity now.
“That’s right. For example … Memory or Go Fish! Those games you play to win. You enjoy playing, but in the end you want to win, right?”
“But there are also games that you play just because you want to play. Like when mommy and you spend time with your play horses? Or when we play with your Legos? It is not about winning and losing then, you could play for hours – you are usually sad when it is over!”
She smiled. I could tell that she was paying attention now.
“Well now, this is important: There are lots of games, all the time, but you have to understand what game you are playing. Us being here this morning? It is not about winning or finishing, it is a game just to play. Mommy and I were looking forward to just being here and spending time outside together, as a family. Do you understand?”
She nodded and I could see that she did. We shared a hug and then both stood up. “Mommy,” she shouted, as she started running forward, “it’s a game to play!”
This worked almost shockingly well. We lasted several more hours out on the trail that day. The drive home was likewise easy. It was one of the rare times, when I could deliberately teach. I found the right words, she was receptive enough to listen and I explained my thinking in a way that was relevant and meaningful to her. It worked then – and it actually stuck: months later she would bring up and discuss “games to play” and “games to win.”
We now have an important shared concept and she can use it to understand how to approach specific situations and activities. It may have been one of the more useful things I was able to convey to her in the last year.
If we care about our craft, then we also care about cleanliness. We take care to keep our tools and environment clean – as well as the things we create. This holds true in software development. Clean code matters.
But what is clean code?
Every software engineer will have an opinion, a personal notion of clean code. Indeed it is hard to come by clear definitions in the literature. Papers refer to clean code, without defining it; the (excellent) book Clean Code does not define the expression, but instead opens by surveying the opinions of experienced software engineers. People generally have their own ideas and preferences. That’s fair.
Here is a definition that I like: Clean code is simple code that’s easy to understand and easy to test. I like that, because it is a simple sentence that is easy to remember. It evokes an image in my mind of something that is free of noise and that is easy to reason about. If we consider program code our attempt to teach another person what a computer should do (freely paraphrasing Knuth), then this definition summarizes great qualities to help achieve just that.
Your definition is probably different and that’s okay. If you’re working on a team, your team can benefit from agreeing on one definition and everyone will go with that definition for any work delivered in the context of that team.
This helps with communication. A reviewer’s handwaving at a piece of code and exclaiming “clean up that section!” will generally be met with understanding instead of confusion.
It also opens way for reasoning about cleanliness. Although we may talk in absolutes, cleanliness is of course relative – if examined over time, a code base’s cleanliness varies, hopefully generally for the better. How you think about it, determines how you can think about measuring it. This determines the kind of story you can tell.
Start by defining it.