We assume that “Engineering == Production Engineering” and so we, as an industry, made the billion dollar mistake of attempting to improve the efficiency of software development by applying production-line techniques.
I need to apologize to everyone. I used a tool to post this and it makes it look like this is my own work. That's not the case, and I never meant it to be intellectually dishonest.
I thought it would be posted with the article link.
So: this isn't my words, but I admire them.
I will post the article link when I find it again.
Apologies to whomever's work I quoted accidentally without citation.
If that's you, please remind me of the link.
I feel awful about this.
The most difficult of all simple ideas to internalize is probably this: To be done sooner, do less.
This is true in the large and in the small.
Small: If I use the "rename" refactor, it changes all the references as I type the new name. If I don't, I have to carefully walk the code base, changing the name (spelling it correctly) every place.
Large: if we make a single-feature release, we can have it out in a few days. If we slice the feature e2e, it can be several releases a day for a few days.
In a crisis, people pull together and work together.
They share information, volunteer their skills and expertise, shoulder the burden for each other because of the shared stress.
When it's over, they go back to the pre-stress style: solo, disconnected, competitive even.
In the various early agile teams, there seemed to be this idea of working they way we work when we're in a stressful crisis, but without any of the stress, threat, or crisis.
We work productively and voluntarily when things go wrong, couldn't we work similarly without panic?
What keeps people from happily and joyfully working together in community when nothing bad is happening, when they're not under stress, not burdened with dire consequences, just because they like to?
I got my new UPS today. I intend for it to supply my internet gear (modem, router, mesh, storage).
I plugged it into the wall, plugged everything in.
Note: this could have been planned better - some of my cables are too short so I need a higher shelf for the unit, but we worked through that.
Everything is working okay... or so it seems.
Plugging every item in one at a time helped me ensure I have all the right cords to the right things. This is rather like industriallogic.com/blog/test-driv…
The name is key here. What is this object for? Why would anyone look for it, or use it? When I'm programming, and I need a skiplist where can I find it, and what is it called there? What if it's not called skiplist?
Sometimes this is simple, like python 'datetime' contains 'date', 'time' 'datetime', 'timedelta', and more.
The name 'date' is scoped, so the name is really 'datetime.date' which is important to realize.
Readability is a relationship between an artifact and an audience, and we all know that. It's not just the artifact, but here is a funky example.
I got a great new overdrive pedal for Christmas. It looks like this:
The weird bit is that usually the bass/treble EQ controls are together, and the volume/gain controls are together.
This time they're not and that was confusing to me.
Why such a weird order?