We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Keynote - The Impermanence of Software

00:00

Formal Metadata

Title
Keynote - The Impermanence of Software
Title of Series
Number of Parts
69
Author
License
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
43
Thumbnail
29:29
44
Moment (mathematics)Point (geometry)LaptopMetropolitan area networkLogic gateObservational studyMathematical optimizationNumberMultiplication signProof theoryJSONXMLUMLComputer animation
Game theoryComputer programNewsletterDifferent (Kate Ryan album)Boom (sailing)Pivot elementBitCodeMereologyBit rateSlide ruleOffice suiteEntire functionPixelMetropolitan area networkNumberSystem callVideo gameCellular automatonInformationFiber (mathematics)Software developerInformation technology consultingRight angleDisk read-and-write headLimit (category theory)Computer animation
Bimodal distributionImpulse responseLine (geometry)PixelPairwise comparisonTouchscreenVideo gameMobile appBitSound effectProduct (business)Line (geometry)PressureGame theorySeries (mathematics)FrequencyBookmark (World Wide Web)Adventure gameoutputQuicksortCopyright infringementPhysicalismFloppy diskMiniDiscPlanningTwin primeEmailDot productSystem administratorImpulse responseFlash memoryComputer fileMultiplication signVirtual machineUniverse (mathematics)Design by contractBlock (periodic table)Cartesian coordinate systemSemiconductor memoryInternetworkingProcess (computing)Hand fanGoodness of fitDegree (graph theory)BuildingProper mapWebsiteHard disk driveFerry CorstenCrash (computing)BackupIntegrated development environmentOpen sourceImage resolutionHypermediaMedical imagingStructural loadLoop (music)MultilaterationCD-ROMBlogNumbering schemeFigurate numberDigital rights managementEvent horizonInheritance (object-oriented programming)NumberMereologyMatching (graph theory)Covering spaceParticle systemCategory of beingRight angleMetropolitan area networkDependent and independent variablesResultantComputer configurationWave packetHill differential equationFile formatPoint (geometry)WordComputer programMathematicsReal numberComputer animation
WebsiteCodeSemiconductor memoryComputer animation
Product (business)FacebookWebsiteGodExistential quantificationEndliche ModelltheorieComputer animation
ArmEntropie <Informationstheorie>CodeGoodness of fitLink (knot theory)Physical lawMultiplication signLogical constantComputer animation
MathematicsLimit (category theory)ResultantBuildingMathematical analysisProcess (computing)Virtual machineInheritance (object-oriented programming)NP-hardEmailVideo gameSlide ruleRankingComputer fileUniverse (mathematics)State of matterPoint (geometry)Goodness of fitMassRootPrice indexComputer animationLecture/Conference
Musical ensemblePolygonComputer animationLecture/Conference
Musical ensembleForm (programming)Chord (peer-to-peer)Point (geometry)
SoftwareSoftwareLine (geometry)CodeStructural loadVideo gameOpen setReflection (mathematics)Commitment schemeTerm (mathematics)Point (geometry)FamilyProfil (magazine)Slide ruleDigital photographyEmailState of matterMomentumDataflowLattice (order)Multiplication signQuicksortVariety (linguistics)SurfaceImage resolutionComputer programThread (computing)BlogCore dumpUniverse (mathematics)DatabaseOpen sourceHuman migrationChemical equationDirection (geometry)CommutatorSelectivity (electronic)Closed setTask (computing)Stress (mechanics)Perspective (visual)Disk read-and-write headComputer-assisted translationGroup actionFood energyMultiplicationNP-hardOnline helpDigital rights managementField (computer science)Data storage deviceStudent's t-testTouch typingComputer animation
Axiom of choiceDatabase normalizationGame controllerGroup actionComputer configurationText editorProcess (computing)Multiplication signTwitterFerry CorstenGoodness of fitDescriptive statisticsDigital rights managementTheoryOvalVideo gameComputer animation
Group actionDean numberCodeData miningBitPoint (geometry)Arithmetic progressionOnline helpNP-hardPlastikkarteSoftwareRevision controlWave packetComputer animation
CodePixelSoftwareVideo gameRight angleComputer animation
ComputerXML
Transcript: English(auto-generated)
So, just one point of business, I did do the 5K this morning because I'm an idiot. When I got there, they gave me this number, which seemed a bit harsh, and so far this
morning I'm not using my laptop, we've had to change that around, so I blame the 5K, which is also why my legs hurt. So before we start properly, I would like everybody to stand up, which you also would give room for anyone standing at the back to go and find a seat.
Everyone standing up, laptop's down, splendid, can we put our hands in the air like this? Okay, can we turn around, face the back? Alright, you can put your hands down. Put your hands down, it's fine, it's fine. And then turn all the way around, back, back around.
If it's your first RubyConf, can you stay stood up, please, and everyone else sit down? Now, everyone who's sitting down, find someone standing up and give them a high five.
I mean, any time today, for those of you who haven't done a high five yet, get to it. Alright, you can sit down now. I mean, Sam, sit down dude.
Proof, therefore, that the man with the microphone gets to get you to do whatever you want, whatever he wants. Alright, so you might not realize this, but I already know what you're thinking. You're thinking, I know this guy. He's the entire reason we're here, and he's nice. And you're thinking, I read her books, and she managed to actually explain programming
in a way that helped me understand it. And you're thinking, this guy, books again, plus helping the entire RubyConference get off the ground in the first place. So who is this grinning idiot? I'm Andy, that's me.
Those of you who can actually see me, I'm actually the kid on the right. In 1982, with hair. So who am I? I'm no one special, really. I'm just a working developer, like most of you. I call myself a consultant, because it helps keep the day rate up.
The only difference is the programming committee have unwisely given me exclusive use of this microphone for the next half hour or so. I run a little opinionated newsletter that sends a little bit of Ruby code out every couple of weeks, like with a when and why and how to use it. You should sign up. I also lied, actually just then, about the only difference being the microphone.
I'm also shit hot at Keynote. Boom. So this is actually quite a personal talk. There's not much code.
We are going to be getting to some serious life stuff. I hope you will indulge me. This is Carl. It's funny Sarah told the story about her coming to Singapore the first 10-ish years ago. Jesus. I met Carl when I worked in Singapore. He was starting up the Pivotal Labs office out there. He's now back in the US running the Seattle office.
He is a huge part of me being able to do the work that I do now. He influenced my professional thinking. He gave me the opportunity to work with him and his team. And he helped me get the first conference off the ground. But the reason he's on my slide is that he pointed out the following conceit, which I have basically stolen from my talk.
So this is the number of hours in the average human life. And about 10 years ago, Carl worked out, roughly, it's the same as the number of pixels on one of these fabulously old school monitors. Now I'm a modern man. So I have a more modern comparison.
I have a normal non-massive iPhone. There are as many pixels on its screen as there are hours in the average human life. In my life, perhaps. So what does that look like? This is what life looks like as a phone screen of hours. I mean, scallop a little bit. The phones have got bigger, but they're not.
You lose this to sleep. This is like learning to talk, learning to walk, learning to go to the loo, lots of playing. This is school. This is university, if you go. I am roughly here. I know you don't look it.
So this tiny orange spot, which you can still see, is this conference. At which I am delighted to be speaking. Oh, slightly terrified as well. This larger block, this little red block, is the week of no sleep I had on the floor of a hospital when one of my twins were born.
You can see my daughter there is already plotting to take over the world. These dots are the three years of the Ruby Conference I run in the UK, Brighton Ruby. If you fancy getting a transatlantic flight to the south coast of England in the summer next year, it would be delightful if you could make it.
This block is the 20 workdays it took for me to upgrade the last Rails application I worked on from 3 to 4. If you have any old Rails apps, I can do that for you.
And this little sliver you can see, this is the amount of time it takes to watch all 28 hours of the Marvel Cinematic Universe. So the idea that life is short is not a new idea. Hell, Chad even mentioned it in his talk yesterday evening,
as I slightly freaked out. 2,000 years ago, Seneca, a Roman philosopher, wrote, People are frugal in guarding their personal property, but as soon as it comes to squandering time, they are most wasteful of the one thing in which it is right to be stingy.
Probably a little freaked out right now. Chad's talk about life being short. I've mentioned it again. Particularly if, like me, you've seen any of the Marvel movies more than once. Strap it. It's not going to get any better for a bit. So hands up if this sentence means anything to you. That's not bad, my people.
This is going to be a beautiful trip down memory lane for you. So Lucasfilm Games was an offshoot of Industrial Light and Magic, who, with a special effects company, formed when they created Star Wars, which went on to become LucasArts.
They had a strong line in these fabulous point-and-click graphic adventures. They were made by small teams with strong personalities, creative people writing. They're funny. You can buy them now on iOS. Some of them, they've been remastered. They really hold up. In my formative years, teenage years,
I spent days enjoying the words, puzzles, worlds, writing and humor of these games. They really do hold up. But this was my favorite. The game I loved was called The Secret of Monkey Island. It came on four floppy disks.
It had physical copy protection. That disk you can see, you had to spin it round and match the pirate faces and then put a number in. It was a tale of a piratical adventure. It's alleged to be the source of some of the Pirates of the Caribbean things because it was influenced by the same ride at Disney. I loved this game.
I loved it. So what do you do with this enthusiasm if you are a massive 15-year-old nerd? Let me take you back to a 15-year-old's bedroom. This is my first website. I managed to dig back into an old CD-ROM backup. It has table tags.
It has image hovers. I cut all the images out myself. It amazingly loads in modern safari. But it does look a bit weird. I wonder why. That's better. So the desired resolution as specified by 15-year-old me.
Now this is clearly the efforts of quite a lonely 15-year-old boy. How can you tell it's the late 90s? Webring! Webring! Webring!
So for those of you who don't know what a webring is, it's what we did before social media. It's sort of like Reddit, but when the internet ran on Steam. It's that kind of thing. You can see also the new GIF,
which is a feature that sadly disappeared from modern websites. Sadly, this work of unalloyed genius burned too brightly and is lost to the... Oh, come on! Sadly...
Sadly, this work of unalloyed genius burned too brightly and is lost to the internet forever. That's what I was looking for. Half keynote, half panto. That's good. Years pass. I get a degree. I get a blue chip corporate job and lose it.
I get a girlfriend. Keep her. Get married, despite the Monkey Island fan site. I moved to Singapore. I changed careers from big corporate back to the websites that I loved building as a teenager. Working with my friend Carl in small teams of great people learning how to do engineering properly.
Properly-ish. So I was roped in by a good friend in Singapore to this startup. We raised a little bit of money, as it was pretty easy to raise sea capital in those days, particularly as we had a real business plan. We were going to sell things for money. It was unusual for some startups.
So it's a travel startup doing flash sales for luxury hotels. The tech was awesome. The team was lovely and hilarious. I have text files on my hard disk of stuff we said, like sitting in Starbucks all over the city. We solved interesting problems. We were one of the first companies to embrace responsive email. We had a cool admin thing that spoke over an API
to the main app. It was awesome. We had an iPhone app. We even had some profitable months. But travel, if any of you work in travel, will know it is absolutely brutal. And unless you can make the Google ad machine work, you are shit out of luck. So this also is gone.
You don't need to r that one. It's fine. So when my wife and I returned to the UK, as Impulse Fly was winding up, Joe heavily pregnant with the twins, I decided to do some contracting for a bit. I didn't want a job. I'd really committed to this startup. I'd put my life and soul into it.
I definitely didn't fancy the VC startup world, and I was sick to death of travel. Which is how I ended up working at House Trip, a VC funded travel startup. Nice work. So I joined, it was a massively dysfunctional product environment. I joined a team of four people
re-implementing MailChimp, rather than just using MailChimp. So the engineering team were terrified of the legacy app that they were working in, and the pressure of a high growth startup. So they were raising like the Series C or D round, which is like more money than any of us can really imagine. They tried to raise this cash,
and had been throwing money on the Google bonfire to accelerate growth. But they hit a wall, and their luck ran out. So six months into my job, there were layoffs, like lots of layoffs. It was a shitty fortnight. More than half of engineering, 80% of design, 60% of the product managers, 30 to 40 people, my co-workers,
all gone inside a week. However, post this unfortunate event, something strange started to happen. The remaining product team of 10 or so engineers and a couple of designers really started to gel. It was an awesome team, like lots of pairing, lots of teaching, lots of learning.
We worked sensible hours. We moved the product along. It turns out I really love the shit work of unpicking the past and refactoring a legacy app to something smoother and sleeker. It was sort of changing the wheels on a moving car. As long as I'm dealing with awesome, capable, nice human beings, I love it. I've worked again with some of the people I work with there.
We keep a legacy slack around because who doesn't need another slack? I often describe this period of house trip as keeping the nose up on a crashing airplane. We sort of got safely to the runway, but we still crashed. We didn't crash into the sea like miles from the airport. Still crashed.
I'm feeling a little bit how Charlie Sheen looks in Ferris Bueller. And aside here, allegedly he stayed awake for two days to get that properly off-his-face look for this cameo. I mean, in later years he just took all the drugs, so it was fine. So given that house flies have a better survival rate than my websites,
I'm beginning to think this might be something that O'Reilly might be interested in. Okay. Really proud of that. So who here has shut down a website or been in a failed venture? Yeah, that's pretty good. I'm surprised there's not more of you, actually.
Maybe I am terrible at this. But I guess I'm not alone in all of my code being gone. I am hardly the first person to have made disappearing websites or products. These are years of people's lives. I miss Google Reader.
I heard that. Me too. There's a marvelous tumbler from a chap called Phil Guyford in the UK. It republishes the cheery shutdown notes of failing startups as the remnants of them are bought or more likely hired by Google or Facebook.
The sites are abandoned and their user's data is gone. It's not all bad, though. Like, some things deserve to die. I mean, I don't know who thought like, t-shirts that show off when your arms are sweaty was a good idea.
Budweiser advert, anyone? That seemed to last a long time when it was around. So what have we learned here? Like, you can't force it. Adding money doesn't guarantee longevity. Having good design and engineering
does not help. It's not even the things we turn off or shut down. You know, as Chad was saying yesterday, it's the constant refreshing, redesigning, re-architecting. Our very day-to-day work is often the destruction of the work we did before. Links rot, code decays,
entropy wins. So, if it's not about the results or the work, given we're building on shifting sands, like, perhaps, it's about the journey. So, what can we learn from our industry about success and making it?
I did some research. I have done a detailed analysis of every email I've received from a recruiter in the last two years. And I would like to share with you the scientifically derived average job in the tech industry.
So, it's not just the rank and file of the tech industry. What do, like, our industry's leaders have to say about things? So, Steve Jobs famously wanted to put his dent in the universe. Sounds good. Making history.
That's Marissa Mayer, CEO of Yahoo. Being there on the weekend is a huge indicator of success. Mostly because these companies don't just happen. They happen because of really hard work. Okay. Work super hard. Got it. Jeff Bezos, founder of Amazon.
Work hard, have fun, make history. A glorious legacy. This is Travis, until recently the CEO of Uber. A startup which can best be described as the Uber of sexual harassment.
Ah, Jesus. I can't even pretend to take advice from this man. These people are all, in the nicest possible way, wildly foolish.
Including Steve Jobs. Sacrifice your health by working all hours as a point of virtue? No thank you. Like, run a company with abject morals? Nope. Treat people poorly in the pursuit of some nebulous success? I don't think so. I mean, this doesn't stop.
I've been guilty of this in the past. Go big or go home. You know, leave your mark on the world. Work long hours. Advice from successful people is survivorship bias. The human brain is a storytelling machine that likes to add narrative where there wasn't any. People look like they know where they're going
but they don't. In fact, if they think they do they might be genuinely dangerous. Our Roman friend Seneca again. It is inevitable that life will not just be very short but very miserable for those who acquire by great toil what they must keep by even greater toil.
New preoccupations take the place of the old. Hope excites more hope and ambition more ambition. They do not look for an end to their misery but simply change the reason for it. So Seneca's not the only philosopher I'm going to introduce you to this morning.
This is merciful. I've put Sarah's star on my slide. This is Alan Watts. He's a British philosopher who reinterpreted a lot of Eastern wisdom for the Western world in the late 60s and 70s. He had this to say about the journey. Audio ready? Audio ready?
Audio on?
Can I quickly have the holding slide? Don't mind me.
Yeah, I'll do it. Because music as an art form is essentially playful. We say you play the piano. You don't work the piano.
Why? Music differs from say travel. When you travel you are trying to get somewhere. In music, though one doesn't make the end of a composition the point of the composition. If that were so, the best conductors
would be those who played fastest. And there would be composers who wrote only finales. People would go to concert just to hear one crashing chord. Because that's the end. Same way in dancing. You don't aim at a particular spot in the room. That's where you should arrive. The whole point of the dancing is the dance.
So I'm bringing us back to this slide. What if this is all you have instead? This is a photo from last December. You might deduce a family resemblance from the profile. This is a photo of me and my dad.
It's the last photo of us together. He died two weeks after this was taken. He was 64. He worked hard his whole life. Long multi-hour commutes into London late nights. He'd recently remarried and was looking forward to his well-earned retirement. He was 64.
In his eulogy that he wrote himself, he was always prepared. He admitted that lots of points in his life he got his work-life balance wrong. At his funeral people most admired the way he quietly looked after everyone. Not the tasks he achieved at work.
I'm not trying to panic you. I'm trying to give some perspective in the way that it was given to me in the last year. If you do want to leave a legacy don't expect it to be the obvious.
I guess my point here is the finale is the same for all of us. And it's not the journey we should focus on. There is just the one destination. This is why I love Alan Watts's metaphor for life as a dance. Your work, the code isn't going to be remembered. Chad said as much yesterday. But this should be freeing in all sorts
of ways. At what point do you decide your life is not going to be fun? The only truly profoundly extraordinary things most of us experience will be the things that every human can experience. Death. Love. Birth. Friendship. If there's no certainty
you can still enjoy the movement. So a psychologist might call this self-actualization. I love to dive into the flow state of programming. I love taking apart software and putting it back together. I love improving things little by
little, leaving the code better than I found it. I love to lose myself in problem solving. I love the dance of code. This is why I love Ruby. The feels. Designed for programmer happiness. It fits me. There's another famous philosopher who said
for me the purpose of life is partly to have joy. Programmers often feel joy when they can concentrate on the creative side of programming. So Ruby is designed to make programmers happy. Specifically designed to help us get into the light fall flow state. We can dance with Ruby.
That joy in the movement momentum perhaps can lead into all sorts of bad behaviors though. The bad behaviors we talked about before. The long nights. The hard work. My current gig is with a fabulous team of seven in my home town. Brighton. One of the best habits we have is regular as clockwork full team retro.
It takes a couple of hours every week. Every three weeks. Every week. But every time the meeting comes around I think bloody hell. Again? And every time we surface problems, solve issues and understand each other better. There's a variety of behaviors around this that help. An openness
or respect for each other. But for me it's the self reflectiveness that really shines through. It gets my head out of the weeds. My friend Sarah is right about loads of things. Whilst our code may not last forever and no one is going to build statues of us life is too short to be building
useless stuff. The point of this reflection is to work out the movement you enjoy. Kevin Bacon. The happiest people I know have found a way to maximize their day to day joy. Don't hustle yourself to death in search of success. We need to stop romanticizing over
exertion. Coffee is not a food group. We have to avoid blurring the lines between commitment and self endangerment. Thinking in things in terms of a journey means you're clinging to a destination. You don't know what the destination is
or what it will be like when you get there. You don't even know if you'll like it. So one final philosopher from one of the 1980s greatest minds. Yep. I said it before and I'll say it again. Life moves pretty fast.
You don't stop and look around once in a while. You could miss it. Love that I managed to pipe just right there. Ferris Bueller was right. Take care of your mental health so you can take care of others. Step away from your email. Go for a walk. It's not news to take care of
yourself, but this is your periodic reminder. This should be no surprise to those of you who've been watching me weave the human thread through this talk. Dancing on your own can be fun. Dancing with others is a basic human joy. All of the things I remember from my career are people.
I don't remember the code I wrote. I don't remember great database migrations of my past. This is why I'm here in this room giving this talk. Ruby is its people. The core team. The open source contributors. Everybody I've ever, unfortunately
for them, paired with. The blog posts I've read. The books I've read. All the people here indulging in a shared passion for what is, let's face it, quite an abstract notion. The only dents in the universe you will believe are in other people, so let them be nice dents.
These are a selection of marvelous people I've worked with over the years. I'm close with some of them still. I've lost touch with some. But they make up a huge proportion of the laughter and taught me basically all of the things I think I know. Their company has made my life better and I hope that's true in the opposite direction.
This is a quote from my friend Saran. I cannot stress this sentiment enough. And it's true if you're not a manager as well. This now is my all encompassing theory of humanity. Told you it was going to get deep.
We are all scared and clueless and we are at the mercy of our lizard brains. Food. Stuff. Our choice of text editor. Wanting other people to do what we say. How much in control of your inner stroppy
toddler you are is how much of a pain you are to be around on any given day. And if you need help trying to control the infant inside, remember that everybody else is a toddler too. The same way you might humor a four year old, you should also apply to the people around you.
You cannot peer into people's minds. You can ask. You should ask. They may tell you. They may not. You cannot tell what shit people have going on unless they choose to reveal it to you. I mean half the time I don't know how I feel or why I feel like it.
How are other people supposed to know? We crave that certainty but nobody has it. There's a dangerous trend in our industry to demand like fealty to a dream to a company. From the startup offering a shitty salary for options. Worth zero by the way.
To those rare opportunity job descriptions. I've had managers tell me during exit interviews that I'd never find another job as good as the one that I was leaving. A group of people don't know what they're doing any more than individuals do. I've been on both sides of redundancies
just like I talked about earlier. The people involved behave as well as they can but a company does not care about the humans inside it. It just wants to survive. Do not be loyal to companies. Be loyal to people inside them. This is Sarah Simon, a friend of mine who gave an awesome
talk at Brighton Ruby last year. We've begun to talk a lot about empathy as a community which is great and when confronted with something obviously awful I like to think we'd all help but it does take more than that. Yes, I am now changing quotes together. This is Derek, a friend of mine who lives in New Zealand. He made the point that it's what you do that counts
not what you say you want to do. So be kind. Kindness is underrated but it has outsized impact and I think this community is testament to that. Kind people are more fun to work with. It's so easy to take out your shitty mood on the
people around you. It's so easy to think the other person is an idiot. It's so easy to communicate poorly. There is a constant battle to be the best version of you. This is Kylie, she is also very smart. So I take the opportunity before I give up this microphone to ask
what are you doing with your privilege? Are you helping? It doesn't need to be starting ground initiatives or doing lots of volunteering. It can be as simple as trying to improve the culture where you work. Or it could be as difficult as trying to improve the culture where you work. I am a work
in progress. All I have for you is my experiences and smart things said by other people. I do not have all the answers. We're all a work in progress. I've shipped a lot of software. Not much of it is still running. I've laughed hard. I've been pulled along by marvelous people.
I've done a bit of pulling myself. What we often think is the work often isn't the work at all. Looking for certainty in your code in the software you write or the things you can build can distract you from the enjoyment of the dance. The dance is other people.
In the midst of all the technology and code and the bustle of the everyday, don't lose sight of your own happiness. Or the real legacy that you leave. The legacy of the people that you work with. And with that, I'll leave you as I have a bunch of pixels to fill with life and other people. Thank you very much.