Dimitri Glazkov

Dandelions and Elephants, Illustratedfive days beforeOver the holiday break, I made a thing for you to enjoy.…No ship ums

· 3 min read

Dandelion or Elephant?2022The discovery of the dandelion/elephant framing was exciting and my fellow FLUX…Caring for elephants2022The upside of such a slow process is that the ideas that…Growth and control biases2023When we don’t recognize that growth and control are in tension with…I’ve been thinking about the path that software dandelions take toward becoming elephants, and this really interesting framing developed in a conversation with my friends.

Growing dandelions2022This is one of the challenges of implementing r-selected strategies in large…Dandelion/Elephant Strategy Rubric2022On the other hand, dandelions and the r-selected species they represent choose…e-LOC2022I’d like to introduce a metric for developer APIs that I call…Software dandelions are tiny bits of software we write to prototype our ideas. They might be as small as a few lines of code or deca-LOCs, yet they capture the essence of some unique thought that we try to present to others. If, in a highly unlikely event, this dandelion survives this contact, I am usually encouraged to tweak it, grow it, incorporate insights. Through this process, the dandelion software becomes more and more elephant-like.

Shadows and Curses2022It is often an uncomfortable job to be the one pointing out…Convergent innovation2022As a sort of thought appetizer, here’s a vignette attempting to intersect…If I imagine idea pace layers (the concept from slide 55 on in glazkov.com/dandelions-and-elephants-deck) , and draw a line from the outermost, the full-dandelion meme layers into the innermost, absolute elephant ones, this line becomes the course of the idea maturity progression. As my dinky software traverses this course, it encounters a bunch of obstacles.

Stages of project forking2023I’ve been thinking recently about how to design an open source project,…As I was looking at this progression, I realized that the environment in which I develop this software may impose constraints on how far my software can travel along this course – before it needs to switch to another environment.

Development environment for rapid experimentation2023To set things up. I was looking for a way to enable…One such constraint is what I called the “No ship ums”, kind of like those tiny bugs (yes, I am continuing that r/K-selection naming schtick). When in a development environment like that, I can develop my idea and make it work, and even share it with others, but I can’t actually ship it to potential users. A typical REPL tool is a good example of such environments, with Jupyter/Colab and Observable notebooks being notable examples. While I could potentially build a working prototype using them, I would be hard pressed to treat them as something I would ship to my potential customers as-is.

The Breadboard developer cycle2024When the stakes in exploration are high, we tend to adopt a…Why would one build such a boundary into an environment? There are several reasons. When shipping is out of the question, many of the critical requirements (like security and privacy, for example) are less pronounced. An environment can be more relaxed and better tailored for wild experimentation.

Why AI orchestration2023Getting to that next gate has little resemblance to the maturation process…More interestingly, such a barrier can be a strategically useful selection tool for dandelions. When I build something in a notebook, I might be excited that it works – yay! To get to the next stage of actually seeing it in the hands of a customer, the barrier offers the opportunity to pause. As the next step, I will need to port this work into another environment. Will it be worth my time? Is my commitment to the idea strong enough to put in the extra work?

Separating cargo from the train2023I’ve been puzzling over a problem that many engineering teams face and…On the other hand, there’s definitely folks that would look at the paragraph above and say: “are you crazy?!” Putting a speed bump of this sort might appear like the worst possible move. If we are to help developers reach for new, unexplored places, why would we want to add extra selection pressure? My favorite example here is Repl.it’s “Always On” switch. Like where this experiment is going? Just flip this switch and make it real.

Build a thing to build the thing2023When building new products, there’s always a weird tension between making something…Live as our customer2023This tension grows stronger if the difference between the environments is large.…Wandererthe day afterHere’s another little experiment I built over the break. Like pretty much…So… who is right? My sense is that the answer depends on the context of what we’re trying to do. Think of the “no ship ums” as a selection pressure ratcheting tool. Anticipate hordes of developers entering your environment and launching billions of tiny gnats? Consider applying it. Unsure about the interest and worry about growth? Maybe try to avoid no ship ums.