- 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
99.985% of coding is maintenance*
Saturday, March 15, 2025
"This is just demo code" is not an excuse
And, please, call me out if you ever see me doing this.
Friday, March 14, 2025
Speaking at conferences and being careful about what I wish for
Today, I was privileged to get to speak at the first MAUI Day in London. (I expect to write more about the conference overall and the things I showed--some for the first time anywhere--in the coming days.)
One of the aims of the talk was to get people thinking about something in a new way.
Based on conversations with many of the people I spoke to after my talk, I was successful.
However, what I didn't realize is that "you've really got me thinking" is a bit of a conversation stopper.
I need to let people have time to think.
I helped people recognize that something they thought to be an unchanged absolute doesn't have to be that way.
The status quo isn't the only option, and there are simple and not-so-simple ways of making significant change for the better.
For people who have been doing something for many years, to suddenly be shown and accept something new can be a lot to take in.
I wanted people to appreciate the situation so we could start having conversations about improving things.
I'm ready to have those conversations now, but others need more time to process their thoughts.
It would be nice if there was another conference next week where we could continue the conversation once people have had that mental processing time. Sadly, that's not the way attending conferences works (especially when so many attendees had travelled a long way to be there). It's also rare, in my experience, for a talk to potentially change people's ideas on such a level.
Still, overall, it's definitely a positive situation.
And I'm looking forward to some of those future conversations.
Tuesday, March 11, 2025
Windows Phone - I remember you well - Now what?
I recently found myself with some spare time (because of a lack of a broadband connection and living remotely), and so I did some tidying up of things I'd been meaning to get around to.
I discovered a "box of broken dreams" - a box full of old phones, tablets, and assorted electronic devices - that have long since passed their usefulness (even as test devices).
In that box were 21 different old Windows Phone devices. They ranged from one of the first test devices in the country to one of the last models released and a wide variety of things in between.
Here is a video where I look at them and reminisce.
But after that trip down memory lane, what now?
What do I do with all these old devices?
What should I do with the promotional devices that are still in their boxes?
Bonus question: Any idea how I get images off a device running Windows Phone 7.5 and that won't connect to Zune over USB? (And no, there's no file system, and while it can connect to the internet, there's no way to upload the images via a website.)