Skip to content

feat: ✨ principle about software as asset, code as liability#266

Open
lwjohnst86 wants to merge 1 commit into
mainfrom
feat/add-principle-about-asset-and-liability
Open

feat: ✨ principle about software as asset, code as liability#266
lwjohnst86 wants to merge 1 commit into
mainfrom
feat/add-principle-about-asset-and-liability

Conversation

@lwjohnst86

Copy link
Copy Markdown
Member

Description

I've been meaning to add this to the design for a while.

This PR needs an in-depth review.

@lwjohnst86 lwjohnst86 requested a review from a team as a code owner June 8, 2026 18:28
@lwjohnst86 lwjohnst86 moved this from Todo to In review in Platform development Jun 8, 2026
Comment thread software/principles.qmd
Comment on lines +195 to +200
What this means is, we want to produce as little code as possible to effectively
produce workable software. By viewing and treating code for what it is, as a
liability, we can be more mindful of the code that we do write. We can consider
questions like: Is this enough to code to produce the software? Can we design
the software in a way that requires less code? Is a particular feature or change
really necessary while still maintaining the software's value?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with this in general, but I think it would be important to also emphasize that we care about our ability to understand the code. So we want to write as little code as possible while preserving function and comprehension. Otherwise I think it can come across that we sacrifice readability for less code (which is often the case in the wild). Maybe something like this:

Suggested change
What this means is, we want to produce as little code as possible to effectively
produce workable software. By viewing and treating code for what it is, as a
liability, we can be more mindful of the code that we do write. We can consider
questions like: Is this enough to code to produce the software? Can we design
the software in a way that requires less code? Is a particular feature or change
really necessary while still maintaining the software's value?
What this means is, we want to write as little code as possible while still preserving software functionality and code readability.
By viewing and treating code as a
liability, we can be more mindful of the code that we do write. We can consider
questions like: Is this enough to code to produce the software? Can we design
the software in a way that requires less code without sacrificing readability?
Is a particular feature or change really necessary?

@github-project-automation github-project-automation Bot moved this from In review to In progress in Platform development Jun 11, 2026

@signekb signekb left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice points 👌 Some suggestions:

Comment thread software/principles.qmd
Comment on lines +184 to +187
Software is the set of actions that produce a given output from a set of inputs.
This is an asset, as it is something that provides value, to us and to
(potentially) others. Assets are things that we want to create and we want more
of.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Software is the set of actions that produce a given output from a set of inputs.
This is an asset, as it is something that provides value, to us and to
(potentially) others. Assets are things that we want to create and we want more
of.
Software is the set of actions that produce a given output from a set of inputs.
This is an asset, as it is something that provides value, to us and
our users. Therefore, software is something we want to create and create more of.

Maybe? Just so the last sentence feels more conclusive and directly related to the header.

Comment thread software/principles.qmd
Comment on lines +189 to +190
Computer code is the set of instructions that implements that set of actions in
the software. We need code in order to produce the software asset. But, code

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Computer code is the set of instructions that implements that set of actions in
the software. We need code in order to produce the software asset. But, code
Computer code is the set of instructions that implements the set of actions that constitutes
the software. We need code in order to produce the software asset. But, code

Comment thread software/principles.qmd

Computer code is the set of instructions that implements that set of actions in
the software. We need code in order to produce the software asset. But, code
also means bugs, it means maintenance, and it can be a source of security

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
also means bugs, it means maintenance, and it can be a source of security
also means potential bugs, it means maintenance, and it can be a source of security

Comment thread software/principles.qmd
the software. We need code in order to produce the software asset. But, code
also means bugs, it means maintenance, and it can be a source of security
vulnerabilities. More of those things means extra, non-value creating work. We
want less of that. The code itself is a liability.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
want less of that. The code itself is a liability.
want less of that. Therefore, code itself is a liability.

Comment thread software/principles.qmd
vulnerabilities. More of those things means extra, non-value creating work. We
want less of that. The code itself is a liability.

What this means is, we want to produce as little code as possible to effectively

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
What this means is, we want to produce as little code as possible to effectively
As a result, we want to produce as little code as possible to effectively

Comment thread software/principles.qmd
What this means is, we want to produce as little code as possible to effectively
produce workable software. By viewing and treating code for what it is, as a
liability, we can be more mindful of the code that we do write. We can consider
questions like: Is this enough to code to produce the software? Can we design

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
questions like: Is this enough to code to produce the software? Can we design
questions like: Is this enough code to produce the software? Can we design

Comment thread software/principles.qmd
liability, we can be more mindful of the code that we do write. We can consider
questions like: Is this enough to code to produce the software? Can we design
the software in a way that requires less code? Is a particular feature or change
really necessary while still maintaining the software's value?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing about this is that it can sound like we would always prefer less lines of code, which I'm pretty sure is not the intention. So, maybe add that here; that we value code that is explicit and simple (less complex as John Ousterhout would say) over shorter code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

3 participants