technical debt
-
🧩 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…
-
✨ Impressive is not always effective
When AI generates something, the result is often “impressive.” We might marvel at how quickly lots of code is generated that mostly works. Generated documentation is extremely detailed and well formatted. AI-created diagrams are colorful, u…
-
⏳ The "long-term" may be closer than you think...
A common objection to “Platform Thinking” (proactively build your platform from the start) is: there isn’t time right now; this can be done after the 1.0 release when there is ample time and resources. The “long-term” can be defined as when…
-
📝 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…
-
📏 Less code is not the ultimate goal
Less code is not the ultimate goal Consider the following byte to binary C program: int main(int b,char**i){long long n=B,a=I^n,r=(a/b&a)>>4,y=atoi(*++i),_=(((a^n/b)*(y>>T)| y>>S)&r)|(a^r);printf("%.8s\n"…
-
⚖️ 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…
-
⚖️ Code is a liability, not an asset
A wise developer once said: Code is a liability, not an asset. Aim to have as little of it as possible. This is perhaps the #1 rule for clean code. Some examples: Don’t implement “just in case” features. Remember YAGNI. Premature abstrac…
-
💸 Technical debt
I like the definition of technical debt from this article: Technical debt is anything that slows down your ability to update and upgrade your work
-
🛤️ Two paths
There are two paths we can follow as a team or an organization: what we do makes it easier for everyone else to do their job. what we do makes it harder for everyone else to do their job. #1 is the formula for scaling. #2 is the formula f…
-
⚡ Improve development efficiency, reduce technical debt
The term “platform” can mean a lot of things, but this is primarily what I’m talking about in the context of product development: Improve development efficiency, reduce technical debt Some examples: do more with what you have iterate fa…
-
💸 The cost of updating dependencies, or not
As developers, we are often lazy when it comes to updating dependencies. A short-term productivity hack is to not update them. Leave our Yocto build at an old version. Never touch go.mod or package.json – everything is working and I can kee…