- For there to be (documented) knowledge of everything the software does (and doesn't/shouldn't) do.
- For there to be a simple way of verifying the software behaves as intended.
- For it to be written in a way that makes it clear to a person looking at the code what it does, so it avoids any unintentional side effects when changed.
Tuesday, March 18, 2025
"As an architect, part of my job is to improve the way we do things"
I was recently listening to a podcast and was struck when the interviewee (a "senior software architect" at a large company) confidently stated that:
"As an architect, part of my job is to improve the way we do things."
Two things jumped out at me about this statement and the way it was made:
- It implied that other people at the company don't look for ways to improve things.
- It implied that other people at the company aren't allowed to suggest improvements.
I find this concerning.
I consider it everybody's job to always be on the lookout for ways to improve things.
Not that people should be spending a lot of dedicated time focusing on looking at and evaluating alternatives, but that everyone should have an awareness of challenges and opportunities for improvement and should share these when appropriate.
Many years ago, after the weekly developer team meeting at a company I was about to leave, someone else on the team asked why I had suggested a change to a process in that I'd be leaving in a few days.
I made the suggestion because it would be better for everyone working there. Even if that only included me for a few more days.
That other person was happy to be told what to do and then do it. No questions asked.
I don't want to work like that (and probably wouldn't last that long in such an environment.)
Monday, March 17, 2025
Why UI code matters
- Client/frontend
- Headless/backend
- Embedded
I like that they make software easier to use because I can see things and don't have to remember as many options, commands, or a set of seemingly magic words to get the software to do what I want.
If it's a "proper" programming language is irrelevant
- Binary assets (images, fonts, etc.)
- Text files written (and/or readable) by people
- Items generated by the above.
- are easy to read
- are easy to write
- are consistently formatted
- use meaningful words (names) to aid comprehension
- are unambiguous
- avoid duplication
- are succinct (so as to avoid unnecessary verbosity)
- highlight issues/mistakes (or make them easy to spot)
- have good/appropriate tooling to aid in working with them