, 27 tweets, 4 min read Read on Twitter
A friend has encouraged me to start tweeting my thoughts on agile software development. I keep waiting for the "right time", thinking I should refine my content first. This is where my temperament is at odds with my profession. Screw it. Here's something I sent my team tonight:
I hate talking to you guys. It's not personal. I hate talking to everyone, except maybe dogs. My lizard brain would love to go hide under a rock all week and just play the piano, or maybe try to code bogosort in awk or Lisp. Maybe eat some pho, too.
We're supposed to focus on prioritized work items, so instead, maybe my lizard brain would direct me to go hide in a closed office and work on a task or story alone.
How would I know what the task or story required? We could document the requirements in detail, so that I could just read and understand them. And how would I know how to do the task or story? Well, I guess I'm a smart person, so I'd figure it out.
But what if something unexpected were to happen? I'm pretty tenacious and resourceful, so I'd probably find a workaround. Yeah.
At the end of it all, how would I know I'd done things correctly? We're supposed to have code reviews, so I guess I could come out long enough to show everyone my code. You'd all have a chance to spot and fix my bugs then, right?
We're supposed to do integration testing, too, so maybe that would catch any remaining errors I'd have made.
Maybe our data scientist could come up with better tools and techniques for inspecting and validating our work products, so it would be perfectly safe for me to avoid pair programming.
Great! I'd get to work alone for the most part, I wouldn't have to talk to people much, my lizard brain would feel nice and comfortable, and we'd have processes and tools to detect and correct my errors.
But wait! Why don't I follow my lizard brain? Why am I always trying to talk to you people?
Instead of expecting refined, well-documented requirements to be handed to me, I want to engage in dialog with the product owner and the rest of you all,
so that we can all work out our questions and concerns, and we can come to a shared understanding of the requirements and priorities, and of their underlying motivations.
It does make sense to document in detail the outcome of such a discussion, so that we can remember all the decisions we made together.
Instead of relying on just my own intelligence and skills to figure out how to do something, I want to think out loud as much as possible, either by talking through a problem and solution with someone, or by posting ideas on Slack.
I'm looking for you all to challenge me and tell me there's a better way, or that I'm totally off track. When I do work alone, I try to post about what I intend to accomplish and how I'm doing it, again inviting scrutiny.
Instead of relying on just my own resourcefulness when something unexpected or unexplained occurs, I want to call the team together and tell you what I see.
Maybe someone actually expected the thing, and I just don't know. Maybe my report prompts someone to realize that something else is wrong, beyond the symptom I see in front of me. Maybe I'm just wrong, and there's no anomaly at all.
If I'm working alone, as on the weekend or after hours, I'll post on Slack, "This thing happened that I didn't expect. I'm trying to understand it," or "This thing happened, and I'll try working around it in such and such a way".
Instead of relying just on code reviews and integration testing, I want to pair with someone who can correct me when I'm wrong, spot details I miss, or come up with ideas when I'm struggling. I know this is a logistical challenge, and I don't practice it consistently.
But bad code is more costly to detect, clean up, and fix after it's been written, and I'm ever mindful of that. Unless I have very high confidence in my ideas or coding, I really want a critic with me, or otherwise I make a point to go engage one or more critics ad hoc.
"I'm not sure what this is; let me go ask someone," or "Maybe this isn't the cleanest design; let me see what someone else thinks."
I think the crafters of the Manifesto for Agile Software Development were onto something when they recognized that individuals and interactions are more valuable than processes and tools.
Yes, processes and tools have value, but we are doing New Product Development, not assembling and inspecting widgets in a factory.
We are engaged in fundamentally creative work, and every team member has the opportunity and responsibility to contribute through his or her own unique strengths, experience, and perspective.
The most effective way to tap into our collective greatness is by having the right interactions at the right times.
Are we having the right interactions at the right times? My lizard brain says I'm sick of talking to you people. But my monkey brain says we don't talk enough.
@gap14619 Thanks for the push to start tweeting this stuff.
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Douglass Huang
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!