Early Adopters, Pragmatists and a Middle Ground

December 31, 2024    Learning Culture

Early Adopters, Pragmatists and a Middle Ground

We had a great discussion at work about adoption F# - you can read about my journey towards functional programming if you are interested. A few of us have been excited about F# and Functional Programming while others have had more reservations about a language that isn’t as widely used as C# and our normal way. Both thinking has pros and cons. This lead me to think about, then share these ideas during a lunch and learn.

Eric Sink`s excellent article was a catalyst for my thinking.

Adoption Bell from Eric Sink based on a 1991 book by Geoffrey Moore

Some questions for discussion

What are some Technologies/Approaches from the past that we have adopted?​

How have they turned out?​ -> Some good, some bad​ (we heard a lot of good stories from the more experienced among us)

How do we evaluate and integrate new Approaches and Technology?​

What is on your radar?

Idea: Technology Radar | Guide to technology landscape | Thoughtworks​ is an example.

Trend reports like https://www.infoq.com/infoq-trends-report-2024/ and https://survey.stackoverflow.co/2024/ are helpful.

Mindsets

I used the bell curve and started thinking about each of them as mindsets that we developers move through. I like mindsets better than trying to categorize a person.

While I made some generalizations

We often move from one mindset to another, sometimes very rapidly, depending on the project, current stress and business levels, time/energy availability, etc.

Early Adopters

Thumbnail Image an early adopter in the computer technology world, near a cliff ready to go

Descriptions

  • Get excited about learning and using new tech or approaches (sometimes old, but new to us)​
  • May think “if we aren’t keeping up, we are falling behind”
  • Need humility and empathy for others​
  • Tendency to sound like “you’ve been doing it all wrong the last X years”
  • Willing to spend time and energy on something they may not use​

Questions to ask yourself​

  • Why/How will this help others? ​
  • What problem/pain is it solving?
  • How to I learn, apply and teach this?​
  • Am I being condescending? Am I humble?​
  • Am I bold and “stir the pot” when I need to challenge others?​
  • Am I open to the Pragmatist view?​
  • Do I understand the Pragmatist view?​
  • Should I be investing in something else?​

Pragmatists

Pragmatic Programmer Book Cover

Descriptions

  • Get the work done, do it well​
  • Busy, with more work to do than time to do it​
  • We have a pattern, it works and we’ve had success​
  • Should I invest time into this if I’m not going to use it?​
    • What is the ROI​?
    • Is there something else I/we should focus on?​
    • What does the client/my business need now?​
    • Why would we want to be on the latest tech? We’ll let others prove it out then evaluate it.
  • Tendency to stay away from wanting to learn something that they might not use.​
    • Ask what problems will this create?​
  • Reponses to others can feel a bit like squashing someone’s enthusiasm.

Questions to ask yourself​

  • What pain points have you encountered?​
  • What would you do if you had time?​
  • Am I open to the Early Adopter view?​
  • When would I be open to spending the time and putting in the effort?

Conservatives and Laggards

This is included in the adoption curve, but I haven’t thought as much about these areas. If you have insights here, let me know on x.com/aligneddev

We Need Many Mindsets for a Middle Ground 🤝

Descriptions

  • Must be good for Your Company, The Engineers, The Client​ (if different from your company)
    • decisions made as a team, not individuals​
    • Economics needs to be considered​
    • Long-term and Short-term thinking​
  • Your Mindset depends and is affected by life circumstances, what you get excited about, how you decide to invest your time​.
    • This is good and healthy
  • Can this be introduced at a client and internal projects?​
    • How do we go about that?​
  • Learn, Share and help others up the learning ladder faster​

“Improve yourself, be awesome, others will notice, others will ask. " ~ John

“A different perspective to think about with (any) new technology is, does it merit the cost of not only my learning it, but everyone else who works on this project after me? If I begin a project with a brand new tech stack that differs from company standards but suits my personal preferences, what implications does that have for the next developer who not only may have different preferences, but will need to use their time and the client’s resources figuring out how my code works?” ~Noah

“You only have so much time in the day, and you only have so many working years. Where do you want to invest that life?” - Sal Khal​. “That doesn’t mean you shouldn’t learn new things, but it does mean you should put some thought into what you learn and if it is really the best choice in the long run” ~ Emily

“Also I think it should go without saying, so I’ll say it: it is my opinion that software engineers are really smart. We pay them lots of dollars to do amazing things.” ~ Matt

Rich Hickey’s excellent talk Simple Made Easy is worth watching to understand the difference between simple and easy. “If you want everything to be familiar, you will never learn anything new, because it can’t be significantly different from what you already know and not drift away from the familiarity”.

Let’s Pretend

I found a technique that wasn’t common at our company (such as Automated Testing in 2014).​

I usually first blast it on Teams to see if anyone else is interested and has an opinion.​

I didn’t always approach this well, but I imagine an informal path:​

  1. Evaluate​
  2. Raise Awareness​
  3. Gauge Interest​
  4. Evaluate​

Evaluate

Listen. Learn from others’ experiences​.

What pain points does it relieve? ​

What problems could it solve?

Evaluate usage and popularity?​

Does it have staying power?​

Is this a challenger to an existing proven approach (champion)​

What is the opportunity cost?​

If we focus on this, are we missing on other things?​

Learn more​

Can we apply it as an experiment?​ How did that go?

Would our clients be able to support it after us/ willing to learn it?​

Do they need to?​

Raise Awareness and Gauge Interest

Start a Spin Off(s), Book Club​

Learn, evaluate, apply, teach​

If still growing​ then

Talk to Sales > clients​

Present at Lunch and Learns​

Teach​

Wait

Success! 🥳​

Aha, someone mentioned it that wasn’t me!​ OR we decided not to use this and it was a good choice, but we still learned something​

Balance the Mindsets

Let`s be early adopters and learn new things, share that with others. At the same time Pragmatically think about when and how to apply them


Watch the Story for Good News
I gladly accept BTC Lightning Network tips at [email protected]

Please consider using Brave and adding me to your BAT payment ledger. Then you won't have to see ads! (when I get to $100 in Google Ads for a payout (I'm at $95.73!), I pledge to turn off ads)

Use Brave

Also check out my Resources Page for referrals that would help me.


Swan logo
Use Swan Bitcoin to onramp with low fees and automatic daily cost averaging and get $10 in BTC when you sign up.