A proven method to accelerate learning by doing

As a writer, architect, and manager, I am always looking to improve my communication because I sometimes experience that what I say and how people respond are out of synch and I firmly believe in the presupposition that “The meaning of any communication is the response it elicits, regardless of the intent of the communicator.” (Robert B. Dilts, et al.), which is why I was watching How to Be More Articulate (Structure Your Thoughts With 1 Framework), where Vicky Zhao mentioned  “…Jeff Bezos’ famous Reversibility Decision Making Framework, is asking if I choose to do this. Is the result reversible? If yes, we should do it. If no, then let’s think about it deeply.

This was the first time I heard of the “Reversibility Decision Making Framework”, though it perfectly describes the approach that I started following on my own at around the same time Bezos was running Amazon from his home. It is how I learned to manage computers, then networks, then scripting, then programming, then team leadership, and (eventually) architecture. I had no formal education in these areas, and at the time of learning them I had insufficient funds for books, let alone trainings.

I did have a computer (that took two years to pay off), an internet connection (at 14400 baud), and curiosity. After a couple of painful (and unplanned) lessons on how to re-install Windows and restoring a network from back up tapes, I began looking for ways to back out mistakes before I made them. After adding that small step to my process learning moved forward much more rapidly.

We all know that it is much faster to learn by doing. What many people I know fear (all of whom have extensive formal education in IT and related topics) is learning by what is often referred to as a “trial and error”, or what I prefer to call “trial and success”.  If you have a safe sandbox to work in, doing something is much more efficient and effective than doing nothing until you are certain of the outcome.

The other habit that helps with trail and success is small increments. Sure, in the bad old days of punch cards or paper tapes it was necessary to write the entire program before running it. But modern IDEs make it trivial to run small pieces of code, and some simple discipline in planning your work can make it easy to test your code a line or a method at a time. Essentially, when not certain how a particular approach will work, rather than spending hours looking for “proven” solutions (that still might not work in the specific context), take your best guess and see how it works.

If the “proven” approach fails, it is likely one of many and finding which failed where can be a daunting task, where figuring out a better solution to the one you wrote 2 minutes ago is generally much easier and less stressful. Sure, there are few feelings better than writing dozens of lines of code in one session and having it run perfectly, but it feels so good because it happens so rarely. Writing two lines of code and getting a result is motivating, because even if it fails you have an idea of where to go next, and when it succeeds there is still a good feeling. Those little successes will easily total up to a higher overall sense of satisfaction than the one big one.

Pro tip: VirtualBox is a free virtual machine platform with lots of pre-built machines available at no cost. It is easy to learn the basics of how to use one and once you can, you have endless environments that you can completely destroy and start over again in the manner many games let you re-spawn where you left off instead of having to start over.

Humble PS: As illustrated by the feature image for this post, I am still trying to get the hang of prompting for image generation 😛

Facebooktwitterredditlinkedinmail
© Scott S. Nelson

The Real Problem with Hybrid Agile

Featured image by Gratisography: https://www.pexels.com/photo/man-person-street-shoes-2882/

Before SAFe®, most organizations would do “our brand of agile”. IMO, SAFe® takes the most common elements of a plethora of hybrid agile approaches and codifies them in to a “standard” (imagine air quotes). My comments today are not about SAFe® but hybrid agile in general.

The common denominator I see across hybrid agile approaches is that they include the notion of some specific deliverables by a specific date. For the agile purist this isn’t agile because that notion is very not agile. Hats off to the purists that get to work that way, and they have already stopped reading by now unless they share the same mental state of people that slow down to look at a bad accident on the freeway (which I feel is not agile, but I’m no purist, so I couldn’t say for sure).

So, having target dates for a collection of stories isn’t entirely a bad thing, in that there are many organizations that have a legal obligation to appear as if they can reliably predict the future. These target days are where the problems start. And I will admin here that the title of this post is a lie, it is multiple problems, but I wanted to rope in those who really think that there is one thing wrong because I think they may get the most out of this particular rant.

So, first problem (position being arbitrary, I don’t have any stats about which problem occurs most) is that if the target is missed then there will be some people that point at the agile side of the hybrid approach as the blame. It could be, but it is much more likely that it is the behaviors that result for hybrid approaches, such as skipping documentation entirely, which results in longer ramp up time and lack of the DRY design pattern, because if you don’t know what’s been done how would you know if you were doing it again?

The next problem (purposely avoiding making it the  second problem to avoid people thinking this is a non-arbitrary sequence…beyond a order that helps to communicate the concepts) is that when the targets are missed the people that are supposed to know what the future looks like look bad, so they get mad at the people who are trying to hit the target. Most people feel bad when people are mad at them (except people with either experience in such things, certain psychological disorders, or a hybrid of the two).  No one likes to feel bad (except people with different psychological disorders) so they try to figure out how to prevent that in the future.  And we have tons of action-comedies to suggest a way to do this: Lower your expectations…lower…lower…that’s it. So people stop missing their targets and Wall Street analysts think the bosses of these people are great prognosticators where what they have actually done is taught their teams to be great procrastinators.

And the last problem I will point at before running for my life from hip hybrid folks who will want blood and purists that stuck around and are still looking for blood is that the people who try to make it happen still miss the mark because they focus on the wrong targets. The long-term goals have this nice, big, shiny definition,  where agile aims to complete one small, solid solution. The magic comes from being able to look at the big shiny and build a small solid that is good-enough-for-now, and still in the direction of the big shiny. One definition of magic is “some can and some don’t know how”, and in the case of this balancing different paths to perfection, some will focus everything on the small solid piece and forget to thing about whether it will fit into the big shiny vision. Or, they will be so enamored with the big shiny vision that everything they do in the span of a sprint is inadequate for the pieces that are solid, making the next sprint slower because they are still waiting on that piece that would let them move faster. Of course, magic is hard, and expecting everyone to produce it is destined for disappointment, which is why the teams that just lower their expectations are more “successful” (Dr Evil-level air quotes there).

So, at the end of the day, or at least the end of this post, the perception of success is easiest to meet if you succeed at level far below your potential. You can stress out everyone and sometimes hit the target. Or you can start forgiving your teams for their imperfections, cheer them for their successes, and teach them to learn from each other to be more successful every quarter. The problem with that last is that I will have to write another post to find more problems with hybrid until they are all resolved.

Facebooktwitterredditlinkedinmail
© Scott S. Nelson
Intro to Bard

My introduction to Bard

Semantic clarification: I’m not introducing you, reader, to Bard. This is my experience of being introduced to Bard.

The answer to my first question, probably way too Turing-ish, shows that Bard is slow on the uptake as to context. I asked “What is the best use of Bard?” and received a description of the Dungeons and Dragons role.

What is the best use of Bard?
What is the best use of Bard?

Points for the honesty of Bard, because this is very different from the description from the email confirming my access, which described Bard as “…your creative and helpful collaborator, here to supercharge your imagination, boost your productivity, and bring your ideas to life.

I was disappointed. The makers of Dungeons & Dragons: Honor Among Thieves should be disappointed it didn’t display an add along with the response (how much you wanna bet the GA version will?). I gave similar feedback to Bard and moved to my next question.

My next question was “Which is better: ChatGPT or Bard?” The response was interesting. It didn’t rise to the bait of “my dog’s better than your dog” (yes, I’m that old) and gave a good answer that you can read for yourself in the screenshot and that I will summarize as ChatGPT will do your homework and Bard will do your Googling for you.

Which is better: ChatGPT or Bard?
Which is better: ChatGPT or Bard?

But how good is Bard at Googling? Having used Google since it’s year of inception, and having struggled for many years with its predecessors, I feel fairly adept at searching on Google. I worded my next query the way I would (will?) write the actual requirement for a project I’m working on: “What is the best ReactJS compatible image viewer with vector markup capability that can be stored in PostgresSQL?

What is the best ReactJS compatible image viewer with vector markup capability that can be stored in PostgresSQL?
What is the best ReactJS compatible image viewer with vector markup capability that can be stored in PostgresSQL?

The response was literal and detailed. It described only one product (“Feeling lucky?” anyone) and gave a detailed reason for the recommendation. I will definitely include the recommendation in my comparisons, and decide whether to ask Bard for other options or go back to my normal way of searching.

If you believe the vlogsphere, the push to get Bard operational and in the hands of Google users is the threat of ChatGPT bringing everyone over to B.I.N.G (Because It’s Not Google). For the practical and technical, I think Bard is an excellent response to that threat.  For the majority of folks, I think Bard is going to have a tough time for having come out of the gate this late.

And then…

After posting the first revision of this article I went back to continue the vector library search. Interestingly, while I can see the questions (aka prompts) that I had asked previously, I cannot access the answers. Glad I took screen shots, because after pasting in the same question I received a different response. This wasn’t too surprising as I have heard ChatGPT users have the same experience. Wanting a quick finish to the task, I then asked for the top 5 options. The first of the 5 was the same as the response in this request, but the suggestion given the first time was not in the top 5. Makes me curious what changed in 45 minutes for the first option that was the best to no longer be in the top 5?

And then #1 was never heard from again
And then #1 was never heard from again
Facebooktwitterredditlinkedinmail
© Scott S. Nelson
Bone-in or Wild Caught Lobster Tails Photo by Michael Judkins: https://www.pexels.com/photo/gray-and-black-rock-formation-1113552/

Work – Life Balance is Rubbish

What we need is work – self balance.
There should be parts of your work that are also parts of yourself (or else you are in the wrong profession).
If work is all of yourself, you aren’t  happy (not applicable to periods of intense flow).
A work-self balance means that enough of your work is about your self that you can experience flow, derive satisfaction, and generate value. To point out the obvious, this also means enough of your self is about your work. The key is finding what enough is for you. To find the key, you must not look for it. They key is to pay attention to your experience while not looking for it.
The balance should be represented as a wave, where balance is found in the median over time, and not the a scale, where the impression is that of opposing forces.
Facebooktwitterredditlinkedinmail
© Scott S. Nelson