risk
-
⚖️ Exercise: Build vs Borrow
In the course of product development we build and we borrow components. Some examples of each: Build: Write code (create software) Design a PCB (printed circuit board) Design a custom mechanical component Create a custom test setup Borrow…
-
📈 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 …
-
🔀 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-…
-
🤔 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 …
-
🚨 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 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…
-
🚢 What is the #1 problem in product development?
I’ll go first … a very common challenge is shipping on time and the resulting uncertainty to the business. We often add a 2-3x factor on any estimates, but sometimes even that is not enough. Shipping (delivering value) is the bottom line — …
-
⚖️ Reliability tradeoffs
Recently, one of our servers running Arch Linux refused to boot after updates. The fix was to comment out a line in the /etc/default/grub file. It took about 15 minutes to find and everything was done in a rescue terminal — no need to boot …
-
🔗 What defines reliability?
Reliability is a common concern - this thing is critical - it needs to work! Many things affect the reliability of a system: Bugs in software we write Bugs in 3rd party components (OSS, etc.) Hardware failures Edge condition failures (thin…
-
⚖️ Technical debt compounds with you doing nothing
Technical debt is like any other kind of debt – it accrues when nothing is done. This is perhaps the most insidious aspect of debt. How does technical debt work? Mainly that software (and technology in general) moves on (especially OSS), an…
-
🎲 Isn't it risky to update your dependencies?
This is a common objection I hear when building industrial systems: “We want to lock things down to a super stable/tested LTS (Long Term Support) release and then stay on that release for a long time – it’s risky to update dependencies.” Is…