release
-
🧹 zephyr-snmp v0.1.0 - a huge cleanup!
zephyr-snmp adds SNMP v1 and v2c support to the Zephyr RTOS. It started as a port of the lwIP SNMP code, and along the way I concluded it would be easier to maintain if it went fully Zephyr-native: Zephyr code style, Zephyr APIs, etc. What …
-
🚣 Rowing the race you need at the end
Daniel James Brown’s The Boys in the Boat follows the University of Washington eight-oar crew that won gold in Berlin in 1936. The part that stays with me is how they rowed the middle of a race. Washington was a come-from-behind crew. Othe…
-
📈 Do schedule estimates get more or less confident over time?
There are two trajectories for schedule confidence. A schedule feels safest when it is nailed down up front, often built around what management wants to hear. Detailed Gantt charts add to that feeling. The modeling has value, but it rarely …
-
🚀 Accelerating or Decelerating?
Is your work accelerating or decelerating? This may be hard to measure, but in our gut we know. A few ideas: Where do we spend our time? Moving things forward, or just keeping things afloat? Are we releasing more or less often? How about t…
-
📥 Email is not a workflow
A recent meeting surfaced a problem: BOM changes in the engineering systems were not reliably reaching the production systems. “I told ’em” is how we had been doing things. We told manufacturing about the changes and handed over links to th…
-
🪑 The missing leg of reliability
After a conversation with Tim Bird about Space-Grade Linux, an idea about reliability emerged. The obvious legs of reliable systems are design and testing. What is less obvious is the third leg: active users. Use, coupled with the ability t…
-
📧 How to solve the email problem?
How many hours go into just processing email? One reason it’s so consuming: when a message hits the inbox, it feels like it needs a response. It feels like real work. There are several ways to handle the “too much email” problem: Ignore it…
-
🛩️ Why did the Wright Brothers succeed?
While Samuel Langley had $100,000 (equivalent to $3.5 million today) in funding, a team of engineers, and Washington connections, the Wrights were bicycle mechanics from Dayton, Ohio with a fraction of those resources. Langley’s approach wa…
-
🏞️ Communicating Status Without Demanding Attention
One precept of “managing up” is that over-communicating tends to work better than under-communicating. This is where releasing “often” comes in. Releases offer a natural way to communicate status because they don’t feel like something requi…
-
🤝 How to manage up
The concept of “managing up” can be a valuable practice for developers and middle managers. It seems counter-intuitive that we need to manage the people over us. But, simply put, managing up is intentionally improving the relationship with …
-
👥 The release is a language everyone understands
A release is a good way for developers to communicate with everyone else: What got done What changed How to use or build the latest version Where to get support or provide feedback A regular cadence for communication A standard format ever…
-
📦 What is a release used for?
A release needs to happen before a product is shipped to customers for sale. Across the spectrum of the product development lifecycle, releases are used for: Generate feedback (so we know where we stand) Provide something others can build …
-
⚡ The essence of shipping faster
In recent conversations about why development schedules slip and what to do about it, several themes continue to come up: Openness - This is key to surfacing issues early. Safety - People must feel safe being transparent and speaking up. C…
-
🔀 What is the difference between MVP and Release First?
MVP (Minimum Viable Product) is a concept from Eric Ries’ Lean Startup methodology. The idea is to build the smallest possible version of a product that lets you test a hypothesis with real users. Instead of spending months building a full-…
-
✅ Each release is 100% done
One common problem in product development is developers not finishing a feature or task. They get it to 70% done and rush off to the next thing. Bugs linger, edge cases go unhandled, testing falls short, and the release process remains inco…
-
💡 A Simple Example
The Release First mindset starts with how you handle reasonably complex information (a procedure, technical details, etc). There are two approaches: Email or message the information. Put it in Git and send a link or PR. The first is trans…
-
🏷️ The simple approach to versioning
The biggest barrier to starting something is an unwillingness to start simple. Let’s use versioning as an example. The natural tendency is to think that all software components need their own version, which can be a daunting task to impleme…
-
📦 The bare minimum to call something a release
What is the bare minimum to call something a release? Consider the following: A version that increments with every release. A changelog that describes what has changed for every version and why it matters. A clear identification of any ass…
-
❓ Release Questions
Some questions to consider about a release: When is it created? Where is it stored? What does it contain? How is it created? Who uses it? Why is it used? The “Wh- questions” are a powerful technique for analyzing anything we do.
-
🤔 Two types of unknowns
There are two types of unknowns: Things we don’t know. Things we think are true, but are not. 1 Both can inflict havoc on our plans, but the second is the most damaging. Why? The first is more associated with doing nothing. Bugs not known…
-
🧊 The hardest thing to manage
The things we know and understand are easy to manage. We can hire managers who are good at this. Tools can effectively track this. Life is good. The difficulty arises in the unknown. The iceberg analogy illustrates this well. The things we …
-
🎉 The BIG 1.0 Release
BIG releases are appealing — the magical moment when everything comes together. The months or years of hard work that finally come to fruition. The excitement and fanfare of the BIG announcement. The accolades and admiration of customers an…
-
❓ What is the difference between "releasing" and "shipping"?
Someone asked: “What is the difference between releasing and shipping?” Are they the same thing? In one sense they are. However, drawing a distinction here—though somewhat arbitrary—is helpful in this context. Release: Make something availa…
-
🚨 Problems with not Releasing First
What is the downside of not Releasing First? Integration problems Manufacturing issues Last minute bugs appearing Lack of product fit (does not solve customer’s problem) The common theme is unforeseen problems that typically surface late …
-
🌅 Why optimizing the user release experience early is so important
With Release First, the goal is to optimize the Big Blue Button (make it easy for users to use a release) early. Why is this important? There are many reasons, but the most important is so that users actually use the release and provide nee…
-
🔵 The Big Blue Button
In the past days, we’ve been focusing on the Big Green Button, but there is another side of this - what happens after the release? Does the release get used? If not, why not? If a release does not get used, there is little point in releasin…
-
🧠 The Human Factors
Gerald M. Weinberg once said: No matter what the problem is, it’s always a people problem. — Gerald M. Weinberg At its heart, release-first addresses the human element: Our propensity to procrastinate in getting releases out. Our fear th…
-
☝️ What do we mean by "First"?
What do we mean by Release “First”? Several things: First in the timeline of development. First thing we focus on during implementation. First priority. Simply put, implement the Big Green Button before implementing the actual deliverable…
-
🟢 What is in the Big Green Button?
As previously stated, the Big Green Button enables teams to quickly and confidently release. But what is the Big Green Button? Several things come to mind: Automation that translates code/design/docs/models into assets others can use. Auto…
-
🟢 The Big Green Button
The word “release” can be a noun (what gets released) or a verb (the process of producing a release). “What” and “How”. Many teams produce complete high-quality releases that allow them to produce or deploy something at some point in time. …
-
🔄 The release circle
As previously discussed, a release is useful and quality. What counts as a release? One way to think about this is to view the release as a circle with two attributes: What (it contains) Who (it’s for) Initially, there is not much in the …
-
🧩 Why things fall apart at the end
As discussed in the previous two posts, things often go haywire near the end of a project cycle, right before the BIG Release. Why is this? Things seem to go so well at the beginning of the project. While it is impossible to detail every re…
-
📦 More definitions of a release
A release must be: reliable, useful, repeatable, and predictable. This delivers outcomes of: quality, value, timeliness, and consistency. The second group is the outcome we want, the first group is what we focus on to get there.
-
🛠️ Do things that don't scale
From Paul Graham’s popular essay Do Things That Don’t Scale: Over-engaging with early users is not just a permissible technique for getting growth rolling. For most successful startups it’s a necessary part of the feedback loop that makes …
-
🔮 Can we predict product development schedules?
Estimating or predicting product development is difficult. Teams often end up adding a 2-3x padding to any estimate, because bitter experience has taught them not to depend on their own estimates. There will always be a high degree of varia…
-
🚀 How to make releases painless
In the olden days, releases were a lot of work. The process involved manually building/testing, uploading to a distribution location, sending out notifications to interested parties, etc. Supporting multiple platforms meant even more work. …
-
📖 When should you write the user manual?
Most of the time, teams write the user manual at the end of a product development cycle right before the Big 1.0 Release. It is one of those things that is not much fun, and teams subconsciously put it off while fighting bigger fires. But w…
-
🎬 Is a Demo the same as a Release?
Some development teams have a weekly demo where they might show what they are working on to others in the company or the customer, which is a great idea as it encourages hitting milestones and early feedback. However, is the “demo” just ano…
-
🚀 Shipping faster - what are the stakes?
What do project delays cost? The obvious thing is the loss of revenue. Time is money. However, there are other less tangible consequences: Customers lose interest. Team loses motivation. Supporting organizations (vendors/communities) may n…
-
🚀 How far do you take releases?
Thus far, we have defined a release as something that is useful and high-quality. Typically, we think of a release as something formal - v1.3.8 that is packaged, built, and announced. But we can push this further. What about pull requests? …
-
🎯 Standards for internal vs external releases
It is natural to think of internal releases as “low stakes” - if it crashes and burns, no big deal. It’s just an experiment, right? Near production release, we’ll toss it over the wall to QA/Manufacturing and find all the issues. This is pa…
-
📦 What do we release?
Everything! Documentation Hardware Software Prototypes Products Lunch Engineering is fundamentally the act of creating something new. And that something new needs to be useful to someone or something. And the way we deliver “useful” is th…
-
🤝 A release is what unifies Engineering and Business
Some feedback on yesterday’s post (What is a release): What specifically flows into the two points? Value? Effort? Perhaps a better way to phrase this is these are the two points of focus that unify the development team with the rest of t…
-
📦 What is a release?
There are two aspects of a product release: Something useful that others can experience. Produced with a high level of confidence. Everything flows into these two points.
-
🚀 Shipping faster leads to predictability
Shipping faster does not only mean getting to v1.0 faster (or even on time), but also many internal releases at a good rate. This is the only way to bring predictability into the development process.
-
📝 DDPD - 🧪 TDPD - 🚀 RDPD
We have been discussing document, test, and release-driven development (doing these things first before implementing features). This ensures the product: Meets the customer’s needs (DDPD). Is quality (TDPD). Can be modified any time and re…
-
🚀 RDPD - Release Driven Product Development
Yesterday we talked about Test-Driven Product Development. Release-driven product development is another perspective. Build the release/deployment mechanism before implementing the design. Automate as much of the release as possible. This …
-
🚀 The BIG Release vs. 🌊 a Continuous flow of Value
How do we look at a product release? As a big one-time event, where we spend heroic efforts to pull it over the finish line? Or as a continuous flow of high-quality value into the product (even before the customer ever sees it) that is main…
-
🔄 When to update application dependencies?
Most modern languages (Node.js, Python, Rust, Go, Zig, Elm, etc.) have their own package manager. So when should we update package dependencies? How about at the beginning of every PR cycle? I’m working on making this my standard practice w…
-
🌿 A natural way to get more testing/automation
One thing I’ve noticed is when I release more frequently, I tend to automate. If releases only happen once every year, it is easy to neglect automation, CI/CD, etc. Automated tests are not needed as it is just quicker to manually test every…
-
⏩ Get on with it ...
While many great ideas and algorithms germinate in deep work and solo thinking, bringing a modern product (especially one containing software) to life require many iterations with feedback and learning. So lets propose a new release every w…
-
🔄 What is the best software release frequency?
Different projects/products have different needs, but generally the trend in our industry is to release new software more often. There are several reasons for this: Modern processors (even embedded microcontrollers) are very powerful and e…
-
🚀 How can Arch Linux get by without releases?
Arch Linux does not have discrete releases – it is a rolling distribution where individual packages are continuously updated. Most people still raise an eyebrow at the mention of Arch Linux – how can that possibly work and be stable? Having…
-
🚀 Why are releases important?
Since many products/systems run software these days, they can be improved after the initial release. Most software projects have “releases” when a new version of the software is deployed or made available. Why are releases so important? Som…
-
📄 Who is a changelog for?
Most projects have releases, and with each release, we describe what is new/changed/fixed in a changelog file. keep a changelog has a lot of good ideas. Who is a changelog for? It is for our customers – those who use whatever we produce. Th…