Replies

This profile is from a federated server and may be incomplete. Browse more on the original instance.

jasongorman, to random
@jasongorman@mastodon.cloud avatar

6 Ideas That Transformed The Way I Make Software

Day #2- Iterative & Incremental Delivery

This is another of those ideas that seem obvious with hindsight, but in the first couple of years of my career, the majority view really was that we gather the requirements, plan the design, write the code, test the software and then release it - usually on a fixed date we committed to months in advance.

(thread)

jasongorman,
@jasongorman@mastodon.cloud avatar

Sounds great, doesn't it? All lovely and simple and predictable (and businesses loooove predictable). There's just one small problem: it's bollocks.

Even on what seemed like relatively straightforward systems, when the software was put in front of customers and end users, we'd get an avalanche of feedback about what was wrong with it. So there'd be a frantic phase of change requests and bug fixes to try and get the software into the ballpark of usable.

jasongorman,
@jasongorman@mastodon.cloud avatar

And it wasn't unheard of to be so far out of the ballpark that it ended up being abandoned. Just too much work. Quite often design decisions taken months earlier got baked in by all the code we added since.

That final frantic "stabilisation" phase was typically characterised by very frequent user feedback. Okay, we fixed that bug. Waddaya think? Okay, we moved that column. Waddaya think?

jasongorman,
@jasongorman@mastodon.cloud avatar

It doesn't take a genius to figure out that just maybe we should ask "Waddaya think?" earlier, and more often.

Instead of gathering all the requirements, doing all the design, writing all the code, and then testing all of it, it makes much more sense - for a student of risk - to gather some of the requirements, do some of the design, write some of the code, and then test that to get user feedback, so we can incorporate what we've LEARNED (in capital letters!) in the next cycle.

jasongorman,
@jasongorman@mastodon.cloud avatar

And it turns out that much - often most - of the value in software isn't in what we planned, but what we LEARNED from what we planned. So we need to LEARN as early and as often as we can. That's where the gold we're panning for usually lies.

The last 30 years I've been doing software development has been characterized by those user feedback loops getting shorter and shorter. In the mid-90s, my teams would tackle a bunch of usage scenarios, getting feedback every couple of weeks.

jasongorman, to random
@jasongorman@mastodon.cloud avatar

One common justification for why development teams need managers is that someone needs to see "the bigger picture", remove organisational obstacles, and broker agreements with other teams.

But in my experience, when I've wanted visibility of the bigger picture, or to remove organisational obstacles, or to reach agreements with other teams, it's been the management getting in the way.

jasongorman,
@jasongorman@mastodon.cloud avatar

It can be a self-fulfilling prophecy. Teams need managers because they need someone with the access and authority necessary to do these things for them.

And teams don't get that access and authority because that's not in the interests of the people they gave it to .

jasongorman,
@jasongorman@mastodon.cloud avatar

@zl2tod Autonomous teams don't need that, though. They're empowered to say "no", they nurture from within (e.g. mentoring) and engaging with stakeholders outside the team is very much part of The Work 🙂

jasongorman,
@jasongorman@mastodon.cloud avatar

@zl2tod Software developers aren't children

jasongorman, to random
@jasongorman@mastodon.cloud avatar

They say a picture speaks a thousand words

jasongorman,
@jasongorman@mastodon.cloud avatar

What I find most interesting isn't the image itself, but that someone selling expert guidance on "prompt engineering" felt it was fine to use it in that context.

jasongorman,
@jasongorman@mastodon.cloud avatar

It adds weight to my suspicion that the real key to being "productive" with generative transformers is not caring that the output's wrong.

ecomba, to random
@ecomba@ruby.social avatar

On related news, if you know of a place in London for my partner, motorbike and myself in London (from the 30th of June till the 7th of July) I’d highly appreciate it! 🙏🏼

jasongorman,
@jasongorman@mastodon.cloud avatar

@thirstybear @ecomba I mean way out, though. Like Norfolk.

jasongorman, to random
@jasongorman@mastodon.cloud avatar

Hey, remember when you used that in-house corporate IT system and it was just great and really easy to use and made your job so much easier?

jasongorman,
@jasongorman@mastodon.cloud avatar

@gdinwiddie And a rare one

jasongorman,
@jasongorman@mastodon.cloud avatar

@gdinwiddie The Three Amigos?

jasongorman,
@jasongorman@mastodon.cloud avatar

@gdinwiddie Ivar Jacobson, Grady Booch and Jim Rumbaugh.

jasongorman, to random
@jasongorman@mastodon.cloud avatar

Every time someone pulls me down this rabbit hole of "Ah, but how can we write the tests first if we don't know what the requirements are?"...

It's not the slam-dunk argument you think it is.

jasongorman,
@jasongorman@mastodon.cloud avatar

And, of course, these conversations invariably end with me having to explain that TDD isn't testing.

Every. Single. Time.

jasongorman,
@jasongorman@mastodon.cloud avatar

My mind boggles at the notion that there are programmers writing code with no idea in their heads of what they expect it to do.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • anitta
  • InstantRegret
  • mdbf
  • ngwrru68w68
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • osvaldo12
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • JUstTest
  • tacticalgear
  • ethstaker
  • modclub
  • cisconetworking
  • tester
  • GTA5RPClips
  • cubers
  • everett
  • megavids
  • provamag3
  • normalnudes
  • Leos
  • lostlight
  • All magazines