Tag Archives: Culture

An aggressively minimalist, lightweight, elastic process for professional software development

A few years ago, I was tasked with “improving our software development process”. Some projects had been more painful than they should have been. We made good code that did the wrong thing, or didn’t make the code to do the right thing, or made code that worked but was awkward to use, or made code that people didn’t even know about and never took advantage of.

I rejected an initial plan that started with “A requestor fills out a form…” because that felt like the wrong fit for the organization: small team, generalists, continuous everything, flat structure. I’ve worked at places where senior technical staff only wanted to interact with people via the ticketing system and while it may have worked for them, it’s not my style.

I also rejected the popular term “acceptance criteria” because it feels (to paraphrase the Agile Manifesto) more like contract negotiation than collaboration. By the time you’re framing things as “is this acceptable to you?” you’re not really in the healthy creative collaboration space anymore.

I got it down to three sentences with just nine words:

Write it down.

Talk it out.

Get it done.

Here are just a few more words to elaborate on what those mean:

Write it down

It doesn’t really matter where or how you write it down, it could be a Jira or a Confluence page or a Google Docs document or a Google Slides deck. What matters is that someone took the time express their intention in writing and the simple act of writing forces you to organize your thoughts.

It also doesn’t matter exactly who writes it down. It’s not just people who are anointed as “project owners” or “product managers” or “primary customer contacts”. Knowing how to understand and describe problems is a skill that everyone should have, and like any skill, something that improves with deliberate practice and feedback.

On the other side, reading what someone else has written forces you to internalize their thoughts and (ideally) digest the entire idea before responding. Some people (maybe even me, sometimes) will interrupt a verbally expressed idea before it’s fully formed, saying things like “nobody wants this” or “this will be impossible” or “the software already does that”. Digest the whole idea before you…

Talk it out

It doesn’t really matter where or how you talk it out, it could be in Slack or on Zoom or in front of a whiteboard or over a beer. What matters is that the people who need to be a part of the conversation have a conversation. Ask clarifying questions, suggest alternatives. If you can’t get to consensus, at least get to mutual understanding.

Maybe you’ll find that while talking it out that the idea isn’t even possible, or that it’s too expensive, or that it’s not as important as some other idea.

If you do decide to move forward with it, everyone is now in a better place to…

Get it done

This is partially a reminder that we are working with a healthy sense of urgency.

It’s also a reminder that while in an evolving software platform, nothing is ever really finished and set in stone, there is a minimum standard that you need to achieve before you can claim that you’re “done”. Have the right people reviewed it? Is it documented? Are there tests for it? Did you coordinate external testing? Did you create example content and configuration for it? Has it shipped? Has anyone flipped the configuration switches to enable it for those who want it enabled? Have we informed impacted customers? There isn’t a one-size-fits-all checklist for all the specific steps for every kind of thing that gets done, but there are a handful of common patterns, and talking in terms of “get it done” helps people remember that writing the code is just a small part of professional software development.

So then, how does it work?

I rolled out this nine-word manifesto a few years ago and have been gently reminding people that all three steps are always necessary and I think it has been working well. It’s not a silver bullet, the hard things are still hard, but I feel that we’ve had fewer unforced errors, where we completely failed to get to mutual understanding.

Tagged , , ,

What exactly is culture and why am I wearing a suit today?

fancy_guys

Alas, Preston just had to one-up me with the bow tie.

 

Like I am on every Friday, I’m dressed up today. Today I’m wearing a vintage two-button pinstripe suit with a paisley tie. It’s Fancy Friday, which emerged years ago when I started working at the Cheezburger network. It’s a bit of the culture that I’ve carried with me since then.

Why? There are a few reasons.

1. It’s an oblique “screw you” to the entire idea of corporate dress codes and “Casual Friday”.  I once worked for a small startup that was bought up by a larger more established company. One of our new corporate overlords came in and saw that I was wearing an aloha shirt and said “You would LOVE our office in California! We do CASUAL FRIDAYS!” I left soon after that.

Every day is casual day when you look this good.

Every day is casual day when you look this good.

 

2. Collecting formal wear (specifically ties and cuff links) makes it easy for your loved ones to get you gifts. They don’t have to worry about if I have one already (because I do) or if it will fit (because it will). Today I’m wearing 3D printed cuff links modeled after the classic anglepoise lamps that were a gift from Mrs. Cron.

3. I like how mirrors look when I’m dressed up.

4. (and this is the most important). I have come to the understanding that culture is the set of choices you get to make without having to explain yourself. When I first show up at a technology job wearing a suit and tie, I have to explain myself. Always. It just isn’t part of the culture.  After a few weeks go by, Fancy Friday becomes part of the culture. Sometimes people join me in dressing up, as my old friend Preston did today, but mostly I stop having to explain myself because the culture absorbs this persistent choice.

The public choices you make over and over will influence the culture of your organization. This concept also applies to choices more important than what you wear. If you make a deliberate choice to take the time to help someone instead of narrowly focusing on your own tasks, that informs culture too.

 

 

 

Tagged , ,