Empathetic testing: Developing with compassion and humility
Published November 22, 2023
This video features Marc Gibbons at DjangoCon US 2024 in Durham, North Carolina, USA.
In the world of library development, achieving version 2.0 often takes years, if it's achieved at all. Surprisingly, nearly 90% of packages published to PyPI using semantic versioning have a major release number of less than two. What makes reaching this milestone so elusive?
If we applied software versioning to our lives, what version would we give ourselves? Perhaps in our formative years as students, we'd be a part of a 0.x series, and as we establish careers and become self-sufficient, we might progress to a 1.x scheme. But do we settle there?
Just like software libraries, our lives require maintenance, and despite our best intentions, hacks and workarounds inevitably infiltrate our routines. As these multiply and compound, our health can suffer. Do we wait for disaster to strike? Or, can we take a proactive approach in not only addressing problem areas but also striving for more?
Together, we'll explore certain risks to our wellbeing inherent to our profession as software developers: sedentary lifestyles, long work hours, and social isolation, and how we can plan and design our next major release for success.
"Finding 2.0" is an invitation to reimagine what's possible across life areas. Whether facing health struggles, burnout, or feeling stuck in a rut, this talk provides practical insights and actionable steps for rewriting the code of your life and embracing a future of health and fulfillment.
This talk was presented at: https://2024.djangocon.us/talks/finding-2-0/
LINKS:
Follow Marc Gibbons 👇
On Mastodon: https://mastodon.social/@marcgibbons
Website: https://marcgibbons.com
Follow DjangoCon US 👇
https://fosstodon.org/@djangocon
https://x.com/djangocon
Follow DEFNA 👇
https://www.defna.org/
Video production by Confreaks
Follow Confreaks 👇
https://confreaks.com
https://x.com/confreaks
Marc Gibbons uses software versioning as a framework for personal change. He explains that a 2.0 release does not need to be revolutionary: it signals intentional breaking changes, and he connects this idea to leaving music, becoming a developer, surviving Hodgkin lymphoma, and confronting alcohol addiction. He proposes five steps for a personal 2.0—set an intention, assess the current state, define a vision, accept necessary changes, and make a practical plan—while stressing support, accountability, regular review, and asking for professional help. He argues that people should change by design rather than waiting for disaster, and that those with privilege should make room to support others.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
Speaker 1: Before we begin, I'd like to recognize Lincoln Loop for giving me the opportunity to be here today and for supporting the development of this talk. which is a little bit different. And as a warning, we'll be touching on some sensitive topics around physical and mental health, including substance use. So thank you. Finding 2. 0. Imagine yourself as a child. You're at a family dinner. Maybe close your eyes. Imagine the smell of delicious food. You're surrounded by adults, and there's a lot of laughter and lively conversation. And then suddenly someone, maybe your aunt or your uncle, turns to you and says, So, what do you want to be when you grow up?
Speaker 1: And the room goes quiet and all eyes are on you. What would you have answered? Fast forward a few years, you're a little bit older, you're in high school, you're sitting across from your guidance counselor, and the question comes up again: what do you want to do after high school? Now this time the question's a little different, right? The stakes are higher. Maybe you're preparing college admissions. What was your answer then? Did it change? Can I guess what it wasn't? I bet you didn't say, I want to become a Django developer. In fact, you might have answered something completely different from what you're doing today. Out of curiosity, uh quick show of hands, how many people in the room here today are on their second or maybe even a third
Speaker 1: career? Yeah, like quite a number of you. So thank you. Um but say you didn't raise your hand and you always knew you wanted to be a computer programmer, right? You studied computer science. And uh now you work in the field. The path that led you to this moment today at DjangoCon US was likely filled with twists and turns. And who you are today might be quite different from past versions of yourself. You've likely changed interest. You've probably faced your fair share of hardships. And as a result, you've learned, you've grown, you've become wiser. But there might come a time when life feels a bit like a software library that's been neglected
Speaker 1: There hasn't been a meaningful commit in months, maybe in years. Maybe you're the project maintainer and there's all these open issues and pull requests, and you're having a difficult time making sense of any of them. But now you're faced with this critical issue that must be fixed. But even if you knew where to begin, the weight of all the hacks and workarounds and compromises that have added up over time. Make it next to impossible to begin. And so you've reached this tipping point, and to move forward, you have to make breaking changes. Maybe even embark on a total rewrite. Maybe it's time for version two.
Speaker 1: Now I use the number two today because it has this special meaning. You hear it in popular culture. New and improved, latest and greatest. It's used to market both products and people, even US presidential candidates. But in our world of software development, few libraries ever reach 2. 0. And if they do, it often takes many years. For example, it took Django 12 years to reach 2. 0, and that's not uncommon. As we'll see, many popular libraries seem stuck on zero or one series Are we afraid of 2. 0? Do we lack confidence in our work? Or perhaps even in ourselves? Today's talk is divided into three parts.
Speaker 1: First, we'll define the versioning scheme that Django uses. And by taking a broad look at the Python package landscape, we'll ask: why is 2. 0 so elusive? In part two, I'll draw parallels between software versioning and personal growth. And I'll do that by sharing a personal journey that's led us all to be here today. And then finally, using our skills as software developers, we'll explore what planning a 2. 0 of us, people, can look like It's a bit like starting a garden. It begins with a seed, but it's about creating the environment in which seeds can be planted, grow, and thrive. It takes time and patience and the outcomes not always predictable, but with a clear vision and the right conditions.
Speaker 1: Good soil, enough water, sunshine, and plenty of attention, results are sure to follow. So let's begin. Part one, the software versioning. These are Django's current versions, and I just checked before the talk, it's still true. I'll explain why there are two in a moment. These numbers have a special meaning in what's called semantic versioning. And the way they change is intended to signal to users the risk of upgrading a dependency. The creator of semantic versioning, Tom Preston Werner, wrote, quote, I was tired of everyone using version numbers in whatever way they wanted and knew we could do better.
Speaker 1: So he came up with a system to solve a specific problem, which he describes in the introduction to the spec. Goes like this. Quote In the world of software management, there exists a dreaded place called dependency hell The bigger your system grows and the more packages you integrate, the more likely you are to find yourself one day in this pit of despair. Sounds like a scary place. Here's how it works. Given a version number, you have a major, minor, and a patch number. Increment the major version when you make incompatible API changes The minor version when you add functionality in a backward compatible manner, and the patch version when you make backward compatible bug fixes. And so since version 2, Django follows what it calls a loose form of semantic versioning.
Speaker 1: And Django is a bit more forgiving with its feature removal and deprecations. Now this graph I have shown here is Django's release schedule, and you'll notice how the major and minor releases are planned. You'll also notice how the long-term support or LTS, those versions overlap with the mainstreams And these releases get extended support for security patches and bug fixes. Now what I like about this predictable cadence is that it instills trust and stability. And you'll notice how the major version numbers simply go up by one every two years, right? There's nothing particularly special about it. It's not Earth shattering going from five to six. But getting to 2. 0 and adopting this scheme took some time.
Speaker 1: Semantic versioning suggests that when we get started, we should use the version 0. 1. 0 And quote, if your software is being used in production, it should probably be on one already. But what about two? The spec doesn't really say anything, but it just states that major versions must be incremented if there are breaking changes to the public API. That's it. It's not a marketing scheme and it doesn't have to be revolutionary. It's just a signal of breaking change. Now, Tom Preston Werner argues that major version numbers are not sacred. In a retrospective blog post, he writes: quote, bumping the major version often corresponded to a marketing push. This produced a natural outcome.
Speaker 1: Increasing the major version number was a big deal He goes on to say, today it's still a big deal, and I think that's a problem. Now why would he say that? Let's take a look at data. I was curious about what the whole PyPI ecosystem looked like. So I pulled a list of all the packages and their latest versions and I put them in a CSV. Then I filtered them based on a strict match of the semantic versioning regex. And this accounted for about 75% of all packages. And here's what I found. In this pie, you'll see the largest slice in blue are packages inversions zero, right? uh which is 67% and then in one which is in orange and then two is in green and red and up
Speaker 1: is in red So almost 90% of the packages out there that follow semantic um are below version two. And as I mentioned in the introduction, some really popular libraries that are on version 2 took over a decade to get there, right? Take Django, right? 12 years. NumPy just came out with 2. 0 last summer, I guess, yeah, because we're fall now. Um after over 18 years. Panda 's not that far behind at over 13 years. And then there's packages that avoid the number two completely, like it's a superstitious number, like the 13th floor in certain buildings. It's just skipped entirely. Classic example is Java going from 1. 5 to 6. And then in Python
Speaker 1: land, we've got pip, virtual land, and uh Django all auth, right? They've dropped their major version and just shifted things over by one. So there's just something about the number two. It tells the world that this is different That this replaces what came before it. That this is what you've all been waiting for. That this must be perfection. Could this explain the hesitancy why you know someone would be hesitant to place a 2. 0 on their stuff? I don't think it's good enough. What if I fall short? It's not ready. I'm not ready. Is that what we're telling ourselves? Sounds a lot like imposter syndrome.
Speaker 1: And if you're unfamiliar with that term, WebMD defines it like this: quote. Imposter syndrome is when you doubt your own skills and successes, you feel you're not as talented or as worthy as others believe, and you're scared that one day people will realize that. So I'll give you a real life example. Say you submit a talk to a conference like DjangoCon and it gets accepted. And the whole time you're preparing, and maybe when you're on stage delivering it, there's this little nagging voice in your head that says Who do you think you are? It's happening right now. But back to versioning, don't you think a project like Django was 2. 0 material long before its release in 2017? Well, Adrian Holivati, Django's co-creator, thought so
Speaker 1: almost 10 years earlier. In researching this talk, I came across this really interesting thread. uh in the Django Developers Group. It's from 2007 and it's titled Django 1. 0 Features, the Definitive List. And in it, Aijin writes, quote, Jacob and I have talked in the past about how we should have called magic removal version one. For all intents and purposes, it was 1. 0 in spirit. And for context, magic removal was 0. 95 But what's really interesting about this thread is that Adrian suggests skipping 1. 0 altogether and going straight to 2. He writes, quote, in our minds, in our hearts, we're really dealing with a 2. 0 product. We know Django Rocks and is rock solid, and we should give it an appropriate number
Speaker 1: He continues. My second reason for choosing 2. 0 is less wholesome. After having endured a two and a half year deluge of When is 1. 0 coming out? I would find it incredibly satisfying to release this thing and slap a 2. 0 on it. It would underscore the project's stability while at the same time demonstrate that version numbers are completely arbitrary. And this generated a long and interesting discussion, which I invite you to go see. A few excerpts. Somebody thought that this was a great reason on its own. Someone else suggested to never name anything 2. 0 or 1. 0 because it implies no one's tested it yet. Somebody else says that 2. 0 implies you've got a lot of Ajax
Speaker 1: and something called Dojo. Now is anyone here familiar with what Dojo is? Does anyone still use Dojo? Really? Okay, I want to talk to you after. But um what I find amazing about this is that Django has like it continues to outlive so many JavaScript frameworks. It's really kind of cool. So maybe React will be next. Um my personal favorite was uh we should use Reinhardt's album titles, Paris 1945. But there was some backlash. Armin Ronniker, the creator of Flask, wrote a blog post about why 2. 0 was a bad idea. He argues version numbers mean nothing. Skipping a version is purely a marketing trick.
Speaker 1: And Ruby on Rails recently released 2. 0, and there's a perceived gap between Rails and Django But we hear that theme again. Not ready. Not good enough. Not worthy. So it wasn't meant to be. Version 1. 0 was released in 2008. And 2. 0 would have to wait. Okay. So we've established what versioning is, and we've identified a discomfort with version 2. But what if this discomfort wasn't limited to software? What if this same mindset was holding us back as people from achieving our best, from showing up as the best versions of ourselves? So on that note, I'd like to share a bit of my version history.
Speaker 1: In a past life, let's call it my initial development phase. I was a professional musician. I played the oboe with a number of Canadian symphonies, and that's me on the right side after performing with the Montreal Symphony Orchestra back in 2010. I studied music and after finishing grad school I was freelancing and taking auditions all over the United States and Canada. But there came a point when music wasn't working for me anymore. I would advance at auditions by yet to win the big job. And I was able to live from music, in fact I was like one of the lucky ones. But the future looked bleak Life as a struggling artist didn't align with other goals like starting a family and not being poor.
Speaker 1: But most of all. I was becoming miserable. I did it because it's what I'd always done, and I'd sort of been pushed into it I'd learned to code when I was a kid and I kept up with it even as a professional musician. I loved it and I was reasonably good at it, and I thought I could maybe do this for real. So I went back to school. I completed a one-year program in web development at a community college, and I landed an internship at a PHP shop that was transitioning to Python Django, and the rest is history. And for a while I did both. I was coding by day and playing the symphony at night. But once my first daughter was born, everything changed. I had new responsibilities and deep down, I didn't enjoy music. And I remember vividly driving home one night from a gig that was like three hours away
Speaker 1: and deciding right then and there that was it. And just like that, I haven't touched the oboe since. I deprecated music and removed it from my life. So that was a major breaking change. In semantic terms, that's like going from version 0 to 1 Fast forward a few years. It's 2019 and I'm comfortably settled in my programming career. There's another kid in the mix, as you can see. And you could say things are pretty good, right? I'm married to an awesome person, we own our home, we're living the so-called American dream Now, this photo was taken at our community's annual Terry Fox run. And I'll explain who that is because unless you're from Canada, you might not know.
Speaker 1: Terry Fox is a national hero who in 1980 set out to run across Canada to raise money for cancer research. Now If running a marathon sounds like something difficult to you, imagine running one every day, but with only one leg. And that's exactly what Terry did, having lost his right leg to bone cancer. Terry ran 3,339 miles before cancer forced him to stop. And he died less than a year later at age 22. But his legacy still lives on. And the annual run has raised close to a billion dollars for cancer research. So I'm showing this, I'm sharing this photo with you today because my life was about to change forever.
Speaker 1: As I would soon find out, that year I've been running for me. Ten days later, I was under the knife. I'd noticed this large lump in my neck, but I didn't think much of it. We all had colds at home, you know, if anyone has kids in daycare. Um but as the cold went away, the swelling persisted So I went to see the doctor and she didn't like it. So she referred me to the surgeon and he didn't like it either. He said, quote, those are some big ass lymph nodes, Mark. Here's what we're gonna do. We'll put you to sleep because we're nice. I'll cut you and we'll send this off to pathology to find out what it is. Now You don't typically hear, I have good news and you have cancer together in the same sentence, but that's how he's delivered it to me.
Speaker 1: You have Hodgkin's lymphoma, which is indicated by the presence of the Reed Sternberg cell there, which kind of looks like popcorn. And he delivered it as good news because when I came in, he suspected it was something far worse. He said, this is gonna suck, but you'll probably be okay. Probably be okay So, at this point, the only thing I knew about Hodgkins came from an old episode of Curb Your Enthusiasm. In it, Larry gets into an argument about there being a good and a bad Hodgkins. And of course, this takes place at a funeral home in front of the body of his friend's dad who died of, guess what? It's a really funny scene. Now to be clear, there's no such thing as good Hodgkin's.
Speaker 1: You've got Hoskins and non-Hoskins lymphomas, and typically the former has you know better survival rates. So that was my opening question when I was down at the Durham Regional Cancer Center. Hey doc, is it the good Hodgkins? And he kind of looks at me And then he smiled and had a laugh because he got the reference. So that dispelled a lot of the fear that I had going in and I knew I was in really good hands. By the way, this is Durham, just outside of Toronto, not here in Durham, California, in North Carolina. So yeah, the plan. chemotherapy and because I had like this massive uh six-inch tumor wrapped around my aorta I'd have some radiation And so within a few weeks, just like that, poof, off to chemo.
Speaker 1: But just like software development, things don't always go according to plan. The chemo, after two months, didn't really work. So we pivot. New regimen. Instead of coming in once every two weeks, I'd have to come in four times a week on three-week cycles. It was a lot But it was tolerable. I could carry on with my day-to-day activities. I continued to work and I could still do dad stuff. But the cancer was stubborn and the treatment was extended And now for the timeline, we're in March 2020, if anyone remembers what was going on then. So in another fun twist, right, the coronavirus arrived and from one day to the next the hospital went into lockdown and things got a bit spicy. But care didn't stop at COVID. The chemo nurses were total heroes.
Speaker 1: We pushed through, there were no delays. And by summer, the cancer was dead. Done with chemo, onto radiation. And eventually I got through it. 15 rounds of radiation, 20 chemo treatments. I got to smash this cool gong. I was told I beat cancer and I wanted to celebrate it. I wanted to throw this big party. But of course, due to pandemic restrictions, that wasn't possible and I had to wait. So instead I bought a gravel bike and I got into cycling. So let's call that a new minor version, a backwards compatible change. And on a balmy day in November 2020, I joined a friend on a hundred-mile ride to the other side of Toronto onto the Niagara escarpment. And it was really cool. Like what a contrast from where I'd been just a few months earlier.
Speaker 1: But I still wanted to do something. Now I live in a small town called Yeah, we're on the right slide. I live in a small town called Port Perry. And our local hospital had just launched a $4 million fundraising campaign to buy a CT scanner. And I thought, well, I've had a lot of those. How can I help? And I was in full bike discovery mode at the time and always inspired by Terry Fox 's story, I thought, what if I could organize a cycling event as a fundraiser? And so I pitched the idea to a friend who was the president of our local rotary club in Port Perry Petals was born And despite pandemic fears and restrictions, we managed to convince 200 people to come out and ride the event, and we raised over $40,000.
Speaker 1: It was a huge success. And I'm pleased to report we now have the CT scanner at our hospital, and I've even gone through it twice already. So something good came out of this whole experience. You could say fundraising was an added feature in my next minor release version. Um A local magazine covered the event and the story I just shared with you. And the publisher gave me an enlarged copy of this cover, which I have framed at home, and I look at it every day. Now I'll ask you, What do you see in this picture? You might see a proud dad with his daughters. You might see a community leader. You might see the protagonist in an inspirational story.
Speaker 1: Local man beats cancer, does good thing for community. Maybe. But what if I told you that this was all a lie? Or at least it's not the whole truth. Because when I look at this picture, I also see someone who's suffering. I see someone who's nearing rock bottom. I see someone who, while battling cancer, is suffering from another disease. Which, if left untreated, would lead to the same outcome as the lymphoma. And that disease is called addiction. In 2021, despite this great story and fundraising and all that, I was living with an unbearable level of anxiety.
Speaker 1: Yes, I'd finished treatment, but some of you might not might know you're not suddenly better once treatment ends. In fact, for me, things got way worse. Just a few weeks after that triumphant bike ride to the Niagara Escarpment, um, I started experiencing symptoms again. A PET CT scan confirmed it. There was a new activity. I scored five out of five for cancer, but the site was too small to intervene. So we had to wait and see and get rescanned every few months. It was absolutely brutal. Now each scan caught comes with what's called scan xiety. All the waiting, like going to actually get the scan, then waiting again for the results, then you're just worrying the whole time.
Speaker 1: It was it was hell. And so consider this Python script, which I call life. py. And it's a basic event loop. But my main function do stuff here was beginning to throw some exceptions. But rather than going in and problem solving and debugging like an adult, um, I wrap the whole thing in a broad try and accept And when an exception was raised, I relied on the only coping mechanism I thought I had available, which was to drink. Now, at first that might have looked like had a tough day. Time for a beer. Had a good day, have a beer. The baby finally fell asleep after three hours of screaming. Let's open a bottle of wine. And sure, the loop kept running for a while, but eventually
Speaker 1: the system ran out of memory. I just came home from the hospital and I'm really out of sorts. My wife's upset, and I don't know why. Because I can't remember what I said last night. The CPU started to overheat, the core started to melt down, and that wasn't the worst of it. After a year of living on pins and needles and inconclusive scans, the cancer was back. It went into my spine. It was stage four this time. It was the bad Hodgkins, maybe the versioning pit of despair we talked about earlier. And I was devastated, naturally. But you know what the hardest part was? It was feeling like a failure and a fraud.
Speaker 1: I really thought the whole story I told you was a lie. that I'd somehow conned all these people. You never beat cancer. Give that money back. I would immediately start a type of chemo which is called salvage therapy, which really doesn't inspire confidence. And after almost three months of that, I would go on to have a stem cell transplant. And as that approached, new worries crept in. Would I survive the 5% chance of death from the procedure? I was given 50% odds of success. Would it work? I would be in hospital for a whole month. What will I do? Will I be sick, bored, miserable? What do we tell the kids? Why is this happening? But something happened
Speaker 1: about a week or so before being admitted. There's this shift in mindset. What if this wasn't a sentence, but rather an opportunity? Like who gets a whole month off from life? No work? No responsibility? Now it's kind of sad to think that a critical illness can be viewed as a form of vacation, right? And that says a lot about burnout. But I realized going in that I had a choice. I could choose to be miserable and I could choose to suffer, but I'd be eating a lot of hospital food, so I didn't really need any more suffering there. Um or I could use the time to get sorted out instead. And plenty of time I would have, I would be locked up in this pressurized isolation room for weeks.
Speaker 1: So before admission I declare to my wife, I'm going to leave this place a different person. I'm going to come out of here as Mark 2. 0. Now, it wasn't that simple. I didn't magically leave the hospital a transformed person. That took time. But a seed was planted But what took so long? It took not one, but two cancer diagnoses to get here. Was that really necessary? Like is complete project failure. A requirement to justify a major version. Sure, it might be easier in the short term to accept hacks and workarounds and compromises rather than face the discomfort of making breaking changes
Speaker 1: But maybe like we saw earlier with the software, that leads us to stagnate on zero and one for years, maybe decades. What if instead we set our fears aside? Major versions aren't sacred, remember? We don't need disaster. It might have been a catalyst, but it wasn't a cancer that created 2. 0. Like chemotherapy isn't a performance-enhancing cocktail of drugs. 2. 0 is what happened next. It was a decision, followed by a process that I really think is transferable, and I'd like to share with you today Finding 2. 0 starts with an intention. When I was admitted, one thing became crystal clear It was from that moment on I would do everything I possibly could to remain cancer free.
Speaker 1: Now, of course, this will look different for everyone, but getting started on a 2. 0 project requires this clear attention from which all else will follow It's a declaration. I am watching version two, period. Once we're committed We need to assess our current project state. Like we know we want to release version 2, but before embarking on a journey, even mapping out our route, we have to understand our starting point. Now, if you were to do this, you'd be asking yourself questions like: what's working for me today? And what isn't? What's holding me back? What would I like to change? Think about it. I knew I had to get drinking under control, but I also felt like life was mat
Speaker 1: like lacking meaning and purpose. Work dominated everything. I hadn't even taken time off for cancer yet Now working from home has its obvious benefits, but it also comes with downsides. I was always online. I was pretty sedentary. I was lonely I didn't interact with other humans face to face. My communication was mostly text-based over Slack or pull request comment, and it wasn't exactly good. So on that topic at 3. 30 today, Casey Kelly is giving a talk about optimizing remote work and effective communication strategies. So if you ever work from home, I encourage you to go see his talk. But back to this. Working remotely plus working hourly made me view life in terms of billable time.
Speaker 1: I thought an hour not billed was an hour wasted. And once you start viewing the world through that lens, your your family, your friends, your health all come last. So part of this assessment step is asking, what does a typical day look like to you? How do you spend your time? And I'll give you an example. For me back then it looked like this. I'd wake up, usually hungover, I'd get the kids off to get daycare, then I'd get right to work. I'd drink coffee all day. I wouldn't eat. I wouldn't take breaks. I was pretty irritable, as you can imagine. And it would felt like the blink of an eye. The day was over, kids were home. I'd switch from coffee to beer, and then you know, feed them, get them off to bed, and sometimes cook a separate meal for my wife and I. And eventually I'd pass out on the couch watching Netflix.
Speaker 1: Rinse and repeat. This went on for like years. It's no surprise I got sick. So that's extreme and I hope your days don't look like that. But what do your days look like? How do you spend your time and is it in alignment with your values? So if the assessment identifies their starting point, a vision sets the destination. What does version 2. 0 look like? What is the definitive list of features and what's being deprecated? And this can be fun because you can really let your imagination run wild. Like at a macro level, if you could do absolutely anything, What would it be? Would you start your own company? Would you sell all your possessions and like move to Costa Rica to be a yoga instructor?
Speaker 1: I mean, what's holding you back? And then at a micro level, kind of more realistic, what does a good day look like? And I don't mean like a beach day on vacation. What does a good weekday look like? Does it involve a certain activity? Does it mean spending more time outside, maybe seeing friends, in community? Is there something that brings you joy and purpose? And as you'll recall, back in semantic land, um a change in major version number implies breaking changes And that's something we must not only accept, but embrace. And yeah, it might be painful. Changing careers, moving to a new city. Getting sober, leaving a toxic relationship, whatever that may be, it might be uncomfortable.
Speaker 1: Your circle of friends might change, your hobbies may be your very identity, and that's okay Discomfort is often followed by growth. Okay, so we set an intention, we've assessed our current state, we have a vision. And we've resolved that we're gonna break some things. Now we need a plan, otherwise, this is all talk. How will you achieve your vision? What are the actionable steps you will take to fulfill your goals? Does it sound daunting? Well, it doesn't have to. As software developers, we kind of do this every day. We build castles in the sky and we use tools to help us. For example, project management tools. Why not? Version 2 is just another roadmap, so maybe create a new project.
Speaker 1: Give it a name, and most importantly, set a release date. Don't wait for perfection before launching. Otherwise, it might never happen. Don't let perfect be the enemy of good. Then maybe divide your project into categories. These are the ones I came up with. There are five. So health, health and fitness, family, community, career, and finances. And some of these might be more important than others at different times, but ideally you want to strike a balance. And then we'll drill down into specific issues just like we do in our software projects. have detailed to-do steps and descriptions and due dates. And I'll give you an example. Say you're watching this online and one of your goals is to attend DjangoCon in person next year.
Speaker 1: That plan will include dates like travel days, deadlines to buy tickets, maybe submit a talk proposal. How will you fund your trip? Maybe you build a budget. Can you apply for an opportunity grant? Can your employer sponsor you? Put all this in your plan, and you'll be surprised. You'll get it done. So notice how I'm using labels on the issues here. These can be helpful for further refinement, enhancement, bug, won't fix, the usual. But there's one label in particular I'd like to draw your attention to. Help want it. Just like we have clients come to us for our expertise, there are experts out there, therapists, maybe coaches, who can accompany us in this kind of work.
Speaker 1: And let me just say there is zero shame in asking for help. I'd almost go as far as saying it's a requirement. And so having help is useful for accountability, just like you are to a client or an employer. Having an accountability partner can help you stay on track with your 2. 0 project. Of course, things don't always go according to plan. In fact, the plan not going according to plan then has to become part of the plan. But you might have to take a detour. You might have to abandon a route altogether. But so long as you're moving in the right direction towards your intention and your vision, you're making progress. You might also consider sharing your journey with someone close to you, who knows. You might inspire them to come along on the journey of their own.
Speaker 1: But at a minimum, check in regularly. Maybe write yourself a weekly status update like you would for a project. And this allows you to recognize and celebrate your accomplishments, but also draw attention to where it's needed. So there you have it. An intention, an assessment, a vision, acceptance, and a plan. These are the pillars of 2. 0. This is what I came up with in the hospital. This is totally doable. So if you're curious, if this is something that interests you, you might be asking, when's a good time to start? The next time you open a Python shell, I invite you to type the words import
Speaker 1: and this. You'll be graced with words of wisdom and perhaps the answer, which is now is better than never If you're stuck in a rut or you've been holding back an idea, an ambition, a dream, why wait? You don't need permission. There will always be a reason to delay. I'll get started once my house is tidy, which for those of you who have children know that that will never happen. So don't delay. Life is short. Shit happens. I'd like to share a quote with you from Annie Leonard, who is the executive director of Greenpeace USA. Now, it's about climate change, but I think it applies here really well. She says: quote, change is coming.
Speaker 1: Change is inevitable. The question isn't if we are going to change, but how. Because we're either going to change by design or by disaster. So, what will it be? Design or disaster This was the path that I took. Sure, there were some challenges and some setbacks. But in the year of chemo I had following my transplant, I radically transformed every aspect of my life using the pillars that I showed you earlier.
Speaker 1: Now, one of my goals in giving this talk today is to reach someone. Because if you are that person, like the one I showed earlier, who's suffering in silence, you're not alone. There is a way out. And if you're sober curious, come find me this week. I'd love to chat. My other goal today is to inspire you to launch your own 2. 0 release, whether that be for a software library you maintain or for your life. You have the skills to do it and the steps I outline might work for you too. You don't need to experience cancer or some other disaster to do this. But what happens if disaster does strike?
Speaker 1: There are things that happen to us that we can't control, but what we can control is our response. Because within hardship often exists an opportunity. I showed you how one disaster led to creating Port Perry Petals Which over its three years raised almost $120,000 for local health care, and how another started this journey that has led to this exact moment here today. But don't wait for disaster. Two point oh is not sacred. Once the 2. 0 threshold is broken, subsequent releases tend to come sooner and more frequently.
Speaker 1: Um we saw it with Django, but Take a look at setup tools like 75? Are you kidding me? Like wow. I thought it'd be important to mention today that my journey through both cancer and personal growth. Came from a place of enormous privilege. As a Django developer, I had the freedom, flexibility, and resources, and that's not the case for so many people. But more than that, simply being alive today is a privilege. I'm here and not living under a bridge thanks to universal healthcare. The treatment I received cost millions of dollars, and my total out-of-pocket cost was zero.
Speaker 1: So with privilege comes responsibility. A responsibility to help others and advocate for those who are less fortunate. Now, Canadians decided long ago that health was a fundamental right, but it's not something we can take for granted. So, for those of us who have the privilege to be citizens of free, fair, and democratic societies, have a responsibility to participate. And at a minimum, that means getting out to vote. And if you're thinking, Mark, like interesting talk, but doesn't really apply to me. I'm like a living setup tools on version 75. I say awesome. But There might be someone in your orbit who's suffering.
Speaker 1: If 2. 0 is a bit like planting a seed, can you expand your garden? Can you clear a bit of land for them? And if you're managing a team, are you fostering an environment in which people have the space to be their very best? Do they have a sense of agency? And what role, if any, does substance use play in team building? So the video worked amazing. I relied a lot on metaphor today, and uh in addition to leaving you with an idea, I have something for you to take home. We'll call it uh 2. 0 starter kit. I love food and I love to cook, but gardening is really not my strong suit. And the one vegetable I can usually grow with success is basil, which is great because a few leaves can really elevate a dish.
Speaker 1: So in the spirit of 2. 0 being like planting a seed, I have some packets with a lot of seeds in them actually. And I'd like to hand them out to you and I invite you to share them, plant them, and nurture them. I'd love to see what happens next. I'll put up my handles on the next slide. And if you're willing to take a photo and share it of your progress, I'd love to see it. Thank you for being here today. I appreciate you. I'm Mark Gibbons, and this has been Finding 2. 0.
Speaker 2: Thank you, Mark, for taking us with you. Um I want to go back to the music.
Speaker 1: Yeah.
Speaker 2: Because the equivalent of two point oh in music is the band's famous difficult second album. You know, their first album they've spent Since they were teenagers and then they were on the they were practicing a lot, and all the ideas that they had for many years went into that first album, it's a success. And then they've got it over again and they've used up all their experiences and ambitions and so on from before.
Speaker 1: So
Speaker 2: there is a a there is a similar difficulty in popular music as well. As in software for two point oh and I I wonder if if there 's similar kind of difficulty about reinvention after that initial flush of invention
Speaker 1: Well, I think that my takeaway and what I'd like to share is that it doesn't have to be revolutionary. Kind of like the idea behind semantic, it's just release. It doesn't have to be this revolution and this groundbreaking thing. And I think that if we take that mindset and we feel like we have to achieve this level of greatness that may have come in previous versions, that that might actually hold us back. And and so I think you're just like in software, like just keep deploying, just keep releasing, keep going. Yeah. Yeah, that's a great analogy.
Speaker 3: Thank you so much. Give a round of applause to Markley.
A major version signals incompatible or breaking changes to a public API; it does not have to be revolutionary or perfect. Django uses a looser form of semantic versioning, with predictable major releases and deprecations.
Discussed at 7:22Nearly 90% of the PyPI packages that follow semantic versioning are still below 2.0. The speaker suggests that developers treat 2.0 as a major marketing event and fear that their work is not ready or good enough, which can resemble imposter syndrome.
Discussed at 8:08Start with a clear intention, assess what is and is not working, define a vision for the life you want, accept the breaking changes required, and make a practical plan. The speaker compares this to planning a software release and emphasizes that disaster is not required to begin.
Discussed at 29:09Create a project with a name and release date, divide it into areas such as health, family, community, career, and finances, and break goals into specific tasks with deadlines. Seek help from experts or an accountability partner, and review your progress regularly.
Discussed at 33:06Start now rather than waiting for perfect conditions or permission; “now is better than never.” The speaker argues that change will happen either by design or by disaster, so it is better to choose and plan it deliberately.
Discussed at 36:13Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 14, 2026