{
"$type": "site.standard.document",
"canonicalUrl": "https://numergent.com/2018-02/It-s-about-the-curry.html",
"path": "/2018-02/It-s-about-the-curry.html",
"publishedAt": "2018-02-05T15:51:57.000Z",
"site": "at://did:plc:cf6futaebyc2k4wgzsr4v42k/site.standard.publication/3mp2ewx43js2g",
"tags": [
"craft",
"leadership",
"team management",
"mentoring",
"talks"
],
"textContent": "I got invited to speak at Monkigras 2018, a superb conference on software, technology and craft. This year's theme was \"Sustaining Craft\". I wrote and delivered _It's about the curry_ - you'll find a (close enough) transcript below.\n\n<div class=\"space-around\">\n<iframe width=\"640\" height=\"360\" src=\"https://www.youtube.com/embed/4EB6F-nhT-c\" frameborder=\"0\" allowfullscreen></iframe>\n</div>\n\nSlides at Speakerdeck.\n\n\n\nMy biases\n\nHi, I'm Ricardo J. Méndez.\n\nI'm a software engineer by training. I've been running teams for about 20 years. I've been running my own business for over 10 years, where I sometimes build teams from scratch, sometimes embedded myself on a company's team, sometimes a mix of both.\n\nThis means I can easily end up working with 2-3 teams a year. I've had ample opportunity to see how things play out, across the spectrum - from teams that say they care about craft but do little about it, to teams where it's not even a topic but they excel at it.\n\nWhat I've found\n\nThere's this dissonance where if you ask people about craft, everyone will say it's a good thing, but at the same time:\n\n1) Can't describe what it means for them, and\n2) When they can, it's some high and lofty artistry-focused definition.\n\nNobody likes to think that they're the assembly line piece that a soulless plutocrat hasn't yet figured out how to replace, and craft sort of sounds like a good way of avoiding getting Mechanical Turked.\n\nBut often we don't reach for its potential, in the rush to get the job done. We hit a minor snag and all these noble but fuzzy ideals go out the window.\n\nDefinitions!\n\nMost definitions are about doing everything by hand, about skill, about quality, or going about things the traditional way.\n\nYeah. That's nice. But it's also too high-faluting.\n\nFrom what I've seen, these high expectations are what keeps most people from just doing small things that could make their work better.\n\nFor me, it's straightforward.\n\nCraft is about consistently avoiding shortcuts - even shortcuts others might consider practical - because you expect to get a better result.\n\nThat's it.\n\nLet me tell you a story, and after, I’ll talk about what I’ve found makes craft easier to sustain within a team.\n\nAnecdote time!\n\nA few years ago my wife and I were in Tokyo with her sister for the winter Comiket.\n\n(Because we are gigantic nerds and Japan is our happy place - we go there when we can).\n\nWhen we're in a city, we get out of the hotel early, then walk around as much as we can. We can end up walking 20+ km in a day.\n\nSo this particular day we didn't have breakfast, because the sushi place we wanted to go to had a five-hour queue. \n\nAfter wandering around, trying to find the restaurant, and finally deciding we weren't going to get in before the end-times, we just went straight to this huge park we wanted to visit and spent a good chunk of the day there.\n\nBy four in the afternoon, when hit Shin Ju Ku station, we haven't had anything but matcha all day. We're starving.\n\nNow, there's lots of \"quick lunch\" places inside the larger metro stations. \n\nThey are simple hole-in-the-wall kind of places. They don't feel like a restaurant - it's less fancy than a stationary food cart.\n\n<div class=\"space-around\" style=\"text-align: center\">\n\n</div>\n\nThey are so bare bones that most don't even have anyone to take your money. You have to get a ticket from a vending machine. Many don't even have images on them - you have to look at the kanji, do some pattern matching, maybe narrow it down by price. Then you put in your coins, out comes your ticket, you go in, you hand it over... and eventually you get your food.\n\nThat's how impersonal it feels. It's the last kind of place you expect to find an example of good craft at.\n\n<div class=\"space-around\" style=\"text-align: center\">\n\n</div>\n\nThere's this thing they do, where they have wax models of the food on the window. One of these catches our eye and our mouths just start watering. We just fixate on this plate right here. \n\n<div class=\"space-around\" style=\"text-align: center\">\n\n</div>\n\nPork cutlet, bit of salad, sausage, korokke (this little potato croquette that my wife loves), curry, corn, this pork bit over here... It's a heart attack on a plate, but since we've been exercising, we don't mind.\n\nWe figure \"it ain't going to be like that, not for 800 Yen, but who cares, we're hungry\".\n\nWe go in, and a woman takes our ticket, then we sit around with our tea, waiting for the food to come out.\n\nWe can see into the kitchen where some young guy is preparing the plate, and he's taking his time arranging things around it. We're hungry, so all three of us are staring daggers into him doing his thing, hoping he hurries the hell up.\n\nThen then he calls out and the woman who'd taken our ticket brings out the food.\n\nAnd all three plates come out perfectly arranged. This gorgeous, mouth-watering work of art.\n\n<div class=\"space-around\" style=\"text-align: center\">\n\n</div>\n\n(Or at least that's what it felt like - hey, I was hungry)\n\nFunny thing is, I don't remember what it tasted like, but I vividly remember he'd set it up to look exactly like the model.\n\nAnd that made a light bulb go on.\n\nUgh. Jiro.\n\nYou see, for a while there, it seemed like I couldn't walk into a talk about craft without people bringing up _Jiro Dreams of Sushi_.\n\nIt's about this old chef, Jiro Ono, who has been making sushi for more than sixty years, and runs this little restaurant where you have to make a reservation for months before you visit.\n\nGreat documentary, sure, but it might as well be the \"survivor bias\" of craft. \n\nIt's about someone who devoted himself to a single style of cuisine, for decades, and eventually got world-wide recognition. \n\nThat's nice. Everyone dreams of doing their best work at the equivalent of a 3-Michelin-star restaurant.\n\nBut that's an end state, not a process. \n\nI don't care about how people work when they land the ideal gig on the best possible place.\n\nIt's more relevant how to act if where you're working at is on the un-glamorous end of the spectrum.\n\nHow can you sustain a craft when you're working on what can feel like the tech equivalent of a hole-in-the-wall subway station curry joint?\n\nWhich reminded me of something David Cronenberg said:\n\n> \"Most people have too exalted an idea of what art must be to connect their own impulses to create with delivering themselves.\"\n\nAnd I think this is what trips us about software craft sometimes.\n\nEverybody sees the end result. We expect to come up with the perfect work of art, or at least close enough to some imaginary standard, right out the door. \n\nWhile we may know that's not possible, we don't think about setting things up for incremental improvement. We disregard the process.\n\nAdvice time!\n\nSo let's talk about what I've found with my teams that we can do to help sustain a certain level of craft, without expecting to be the three-star Michelin restaurant from the start.\n\nFind allies who share your aesthetic.\n\nYes, this is about aesthetics. And yes, it's a big one.\n\nIn order to do something in the long run, and to enjoy doing it, you have got to like what you're building.\n\nEverybody can tolerate doing something ugly, for a while. Crunch time, shoddy processes, unnecessary fires. But that's no way to build something to last.\n\nUgliness leads to churn.\n\nEven the language that we use to describe something that resonates with us, a solution that feel just right, is about beauty.\n\n- \"Wow, that's nice\"\n- \"I found a beautiful fix for this case\"\n- \"You should see how well this all fits together\"\n\nAesthetic choices affect platform and system design. \n\nHell, working with people who share your aesthetics will make it a lot easier to agree on what it is you're building in the first place.\n\nAnd keep in mind allies are not necessarily co-workers, or team mates. \n\nAllies can be people in the company who help you sell your approach; a boss who gives you the space to grow your craft; a mentor whose questions help you find your style; someone from the community, who gives you an opinion or points you in the right direction.\n\nYou need people who support you when you are unsure about a decision, or who tell you when you are making a boneheaded move, or who have different blind spots.\n\nPeople whose judgement you can trust.\n\nI've found that when team members trust someone's aesthetic choices for a system, even if they wouldn't describe it in those terms, they are a lot more likely to trust this person's judgement.\n\nShared aesthetics make jamming a lot easier\n\nThere's this myth that a good team is like a finely-tuned orchestra. It's not. An orchestra has it easy.\n\nOrchestras and bands have a score to play. Someone composed it in advance. It will play similarly every time, barring stylistic choices by the conductor.\n\nA lot of it is about practicing, and doing your bit, and hoping everyone else's timing is right.\n\nSoftware development? It's a lot more like a jazz jamming session.\n\nThe members show up, and have a basic set of skills, but they're not going to apply them in the same way every session.\n\nAll too often, you're going to need to improvise, and for this improvisation to work, you need to know your fellow players.\n\nSometimes your group members are going to fumble, and it'll be up to you to pick up and make sure that the bum phrase they played fits into the whole thing.\n\nSometimes they'll need to do the same for you.\n\nNot everyone can be in the front, going nuts, all the time. Enjoying the aesthetics of what you're creating makes even a supporting role rewarding.\n\nIt helps increase the willingness to put aside the individuals's own temporary, show-boating interests to ensure that whatever you are building is better in the end.\n\nWhen choosing who to jam with, keep in mind that diversity is going to play a big part on coming up with interesting results.\n\nYou don't want a band that is 95% tubas.\n\nAnd if you're running a team? You're not a conductor. You're a stage hand. You're a roadie.\n\nYour job is to make sure they have everything necessary to play and then get the hell out of their way.\n\nForget the Steve Jobs movie rubbish about \"musicians play the instruments, I play the orchestra\".\n\nIt's not your band. They don't work for you, you work for them.\n\nShortcuts are tempting\n\nAs part of this, given all this jamming and improvisation, we need to do one key thing.\n\nWe need to put ourselves in a situation where doing the right thing is the easier choice.\n\nBuild habits so that things become autonomic, like putting on the seat belt before you turn on the car.\n\nYou'll need to figure out which things work for your case. \n\nMight be a weekly WTF where you discuss what you screwed up, and how to never do that again.\n\nMight be giving everybody Fridays off so they can learn and train, even if you're against a deadline.\n\nWe repeat things, and we train, to build habit. That way, when we hit crunch time, we can default to best practices.\n\nI saw a tweet a few days ago which said that best practices start with good people.\n\nThat misses the entire point of best practices! They are there as support when you're not at your best. They help even when you slept too little, have a terrible cold, and your brain refuses to come on.\n\nThat's also why you need allies who share your aesthetics. They're part of the support structure. They are there to raise a finger and go \"_ein moment bitte!_\" when you're about to do something lazy and ugly that will bite you all down the road.\n\nPatience and a tolerance for past mistakes\n\nBecause you're going to have to live with your choices. Any improvement will directly correlate with how much you can tolerate cringing at your past work.\n\nI still code. And I assure you that the line about how there's no code more hideous than the one you wrote six months ago is absolutely true.\n\nAnd worse, that never goes away. Not as long as you are learning.\n\nThere's two ways in which allies help here.\n\nAllies give you perspective, especially if they have more experience.\n\nAllies challenge you, when you're hesitant to try something because you feel you might fail at it. There can be no growth without exertion.\n\nPerseverance\n\nAnd you will be exerting yourself.\n\nGetting better at anything is tiring. It'll be a constant fight against your own desire to give up.\n\nThis is why you need to set things up so that it's easier for your team to do the right thing.\n\nThis is also why you need to pick the right allies to work with. You'll have enough stress as it is.\n\nThe wrong people? The wrong people will turn your entire day into table-flipping o'clock.\n\nAgency\n\nCrafting is about shaping the result. Shaping requires agency, the capacity to act and determine your own fate.\n\nSo you might be thinking \"oh, that's all fine and dandy if you're doing your own thing, but I have a boss\". \n\nWhich is perfectly valid.\n\nYou're going to need to find a place where people see the value you provide. \n\nHaving agency will require some negotiation. There can be no negotiation if the other side sees you as a cog - at best, you're arguing about replacement costs.\n\nIt's not an extra, it's the job\n\nNow, don't misunderstand what I said about aesthetics. Craft is not about artistry, or creating something just for creation's sake. \n\nIt's much more about consistency and putting in the work.\n\nYou and your team, getting your heads down and focusing on what you need to achieve. No matter where you all are in the organization.\n\nRemember that the guy arranging these plates day after day so that they look exactly like the model in the window is the cook at a hole-in-the-wall place. This is not the Chief Curry Officer, imposing his glorious craft vision from up on high.\n\nThis is someone just getting on with the job.\n\nDon't let the madness get lost in the method.\n\nAnd still, with all this structure, you can't let the madness get lost in the method.\n\nYou need to bring something from yourself.\n\nIt's easy to just follow existing frameworks, a set of rules that someone else came up with, without questioning if they apply.\n\nThe end result will be dull. It'll be the same thing as everybody else is doing.\n\nFrameworks are training wheels for the mind.\n\nThey're useful when you're getting started, or as a reference point, but can be constraining once you're ready to start going your own way.\n\nWe should keep asking ourselves if hewing closely to the framework buys us something, and where we could be better off by stepping away.\n\nFrameworks are other people's choices. It pays to examine if we're also happy with other people's trade-offs.\n\nA certain disregard\n\nMaybe you noticed that this advice on questioning frameworks can be at odds with what I said about best practices.\n\nIf so, good. You need a certain disregard for authority.\n\nIt doesn't matter if other people are criticizing or providing advice or praising. Make sure whatever they are saying is in line with your aesthetics.\n\nRemember that whatever experience they have, whomever they are, they aren't you. \n\n(And that includes me) \n\nThank you",
"title": "It's about the curry"
}