00:00:10.719
Today, I'm going to be talking about the narrative structures that underpin software teams.
00:00:12.000
We'll explore how we can use metaphorically repurposed fiction writing techniques to reshape our team's narrative structures.
00:00:23.680
Narrative is how humans make sense of the world. We use stories to fit the chaos of our everyday experiences into a pattern that is memorable and meaningful. Crucially, it feels alterable.
00:00:38.000
Everyone on our teams tells themselves stories, and these stories aggregate, often in response to that flickering test suite that just won't die.
00:00:47.680
As people compare notes, a consensus slowly starts to form. The team begins to believe that the test suite is flaky and unreliable. Subsequently, the team's coding practices will shape themselves around that narrative.
00:01:07.200
This situation can unfold in a few different ways. It could go positively, where the team decides to spend time fixing the problems in the test suite to restore reliability. But it could also take another direction.
00:01:16.720
The team might conclude that the tests won't provide reliable feedback, leading them to abandon writing tests altogether or to adopt defensive coding practices because they can't trust anything in the codebase.
00:01:35.360
At that point, we move from a situation where the team shapes the code to one where the code shapes the team. The team that successfully streamlined their testing will feel confident in their code and their ability to address issues.
00:01:54.159
This establishes a self-reinforcing cycle: they identify problems, solve them, and become confident in their abilities. In contrast, the less fortunate team, gripped by distrust, suffers from growing technical debt and feeling of incapability, ultimately leading to paralysis.
00:02:03.200
We find ourselves stuck in cycles where the feedback loops of narratives and teams interact constantly. A system that has feedback loops like this will accelerate in a certain direction. Hence, the critical question becomes: How do we establish the right feedback loops?
00:02:22.800
If the team's momentum is in the wrong direction, how do we change it? This talk seeks to explore how we can apply narrative as a lever in this endeavor.
00:02:28.240
Let’s first look at a common narrative in software development: the predictable delivery of new features, which is often perceived as the core of our work. There's no denying that estimations are essential; marketing needs to coordinate media buys, for instance.
00:02:41.919
However, I contend that the assumption that specific features are our most crucial deliverables is flawed. Software development is unique in that we construct towers out of Legos, while simultaneously creating the Legos themselves.
00:02:52.800
Determining which Lego pieces we need can often be challenging, as we regularly misjudge what’s necessary. This has implications for our teams and the code they develop.
00:03:05.680
The key to sorting out what's necessary is evaluating whether a task enhances the team or codebase, or better yet, both. Capability isn't merely about meeting current user needs; it's equally about preparing for their future needs.
00:03:11.360
When a project increases our capability for the next endeavor, it creates a positive feedback loop; if not, it inevitably leads to a negative one. This raises an essential checklist for fiction writing that we can apply to our own work.
00:03:20.880
Let's discuss how world-building, plot, character development, and editing can inform our roadmap planning in a way that allows our teams to become more capable and healthier.
00:03:38.480
When we consider world-building, we often visualize epic projects akin to 'The Lord of the Rings,' imagining a singular genius crafting a meticulous environment with detailed histories and languages. However, world construction and storytelling differ subtly.
00:03:51.760
In this programming conference filled with nerds, let's see how many of you have read 'The Hobbit.' Now, those who read 'The Silmarillion' - keep your hands up. I've noticed many hands have gone down!
00:04:04.880
For those unacquainted, 'The Silmarillion' is essentially Tolkien's encyclopedia of all the world-building details that didn't make it into the primary books. It's not an easy read, and many have tried and given up, myself included.
00:04:20.800
To grasp world-building's context in storytelling, let's reference Samuel Delany, a science fiction grand master known for his classics 'Babel-17' and 'Dahlgren.' Delany has engaged with how language patterns in science fiction differ from those in conventional literary fiction.
00:04:36.840
In his essay, Delany discusses how the underlying assumptions of a given narrative, much like in our development teams, can impact the directions we take. This brings us to examine our own assumptions and tell a different story.
00:04:50.880
The way we communicate about these narratives ultimately shapes our day-to-day work and our approach to managing projects. We often fall into patterns of rushing through the final phases of development, creating pressure beside ourselves to deliver while skipping necessary processes.
00:07:16.080
As a result, we might miss critical resolutions in our narratives. Just as in storytelling, where we need to address and resolve conflicts, we must likewise pay attention to conflicts that arise in our software projects and use them wisely.
00:07:39.680
Successful storytelling requires tension to engage audiences. By integrating creative storytelling techniques, we can transform our team dynamics and encourage a culture of collaborative growth where each voice matters.
00:07:55.040
The conflict that shifts us toward resolution requires constant attention. In our efforts, we face not only computer-related issues but also deep interpersonal challenges that interact within our sociotechnical systems.
00:08:10.960
Using a structured model like the MICE system can assist us in categorizing these conflicts - Milieu, Inquiry, Character, and Event. Organizing our thoughts and amounts of tension introduced will allow us to mitigate stagnation in our projects.
00:08:27.520
Conflict arises from unmet needs or broken aspects of our pipeline that need resolution. Just like in literature, where features need to be fleshed out, our engineering projects demand similar attention.
00:08:51.360
A stretched narrative means everyone level is allowed to be a part of the growth of the entire team. When we cultivate this generosity of spirit, we foster a community that encourages the collective growth of knowledge and innovation.
00:09:06.640
As we engage in stretch projects, it's essential we also initiate the practice of pairing; it allows for greater collaboration and shared learning rather than impeding it due the pressure of individual performance.
00:09:28.000
Stretch projects shouldn't be solely about the individual; they should encourage the growth of the team as a collective. This also includes the added element of time haziness that often emerges from feature delivery.
00:09:36.760
The pace of progress is not uniform. Borrowing from successful examples in storytelling, we must focus on gradual transformations that lead to cohesive character arcs that resonate with audiences.
00:09:48.080
Likewise, in teams, it's important that stretch projects bring lovely and meaningful growth. Allow for gradual foundations for skills to take root so that the team can flourish in their craft.
00:10:08.560
Throughout these interventions, storytelling remains at the forefront; by capturing various pieces of knowledge, we can help shape our team dynamics and ensure they remain supportive and welcoming environments.
00:10:26.201
At the same time, we must treat stories within our portfolio of projects as active narratives that allow all team members to capitalize on their potential.
00:10:38.319
As we engage with our technical work, we must remain vigilant of our internal motivations and perspectives. Developing a flexible architecture based on reciprocity ultimately transforms the way we connect with our tasks.
00:11:04.320
In storytelling, the audience's experience is only as enriching as the author allows for in terms of creativity and engagement—much like how we should approach our coding processes.
00:11:23.760
Cascading effects of team dynamics and narratives form the basis of our collective experiences. Likewise, fostering an open environment on our teams breeds successful experiences and encourages creativity.
00:11:44.600
Constructing narratives not only helps define team dynamics, but it also highlights the importance of formalizing roles within the shared construct of teamwork. Thus, all voices must participate, and equitable collaboration should lead opportunities for all.
00:12:23.120
Every project roadmap must consider the narrative elements at play that can lead to beneficial collective growth. This way, we cultivate not just narrative intelligence, but also a mindful team ethos that enhances everyone.
00:12:40.560
As we learn, the importance of continuous growth highlights the value of capacity in software development. So, remember that nurturing your team encourages good practices for everyone involved.
00:12:57.760
A collective narrative helps create an environment where everyone feels the potential for their growth while contributing to innovative projects. The key is supporting each other as we engage in our shared experiences.
00:13:06.039
By promoting open collaboration within our teams, facilitating the sharing of knowledge and perspectives will ultimately support differentiation rather than an overly competitive culture.
00:13:14.720
Creating a narrative that celebrates team capacities encourages attentive practices that foster understanding and empathy as well as inspire optimal solutions to complex problems.
00:13:28.799
As we engage in every project, let’s strive to build stories that invite openness, creativity, and growth. In the end, remember, each journey in software development is a collaborative story worth telling.
00:13:42.039
When this shift occurs, our role not only as coders but as team members becomes increasingly significant. Continuous storytelling builds resilience that leads to a vibrant and dynamic coding environment.
00:14:00.440
Efforts to develop more cohesive narratives require reflection and vulnerability in our interactions, ensuring each colleague feels supported in their journey.
00:14:21.440
In doing so, we lay the groundwork for storytelling that goes beyond mere problems but emphasizes the importance of solutions that arise collaboratively.
00:14:43.440
This collective storytelling informs our experiences and shapes our expectations, creating narratives anchored in resilience and optimism. We must focus on nurturing teams that maximize everyone's growth.
00:15:02.760
To summarize, each project should involve all voices participating in shared narratives, actively engaging every team member during their learning journey.
00:15:20.680
When teams develop a collaborative mindset, everyone can excel regardless of their initial abilities. Our collective success hinges on our capacity to build narratives that foster shared growth.
00:15:36.880
By promoting teamwork that embraces each individual's journey, we can shape a culture that uplifts everyone and ultimately drives both personal and professional success.
00:15:54.000
Collective narratives within our software teams help identify potential risks and enable informed decisions that ultimately shape the future of our shared projects.
00:16:11.040
Let's take this opportunity to recognize the value of every team member's contribution and frame our experiences as narratives filled with potential, excitement, and collaboration.
00:16:29.680
Acknowledge that our realities involve interplay between various individuals, thoughts, and projects—together building a cohesive effort to thrive and succeed. By supporting each other, we can tell compelling stories that resonate with audiences.
00:16:48.360
We must diligently craft our narratives and employ them toward achieving synergy in all we do. Likewise, we can inspire others to take on challenges bravely.
00:17:04.240
The work we undertake together in coding can inspire great stories that not only bring us fulfillment but can also help sustain entire communities in tech.
00:17:15.600
As we share our experiences and enact thoughtful practices into our routines, we contribute positively to not only our teams, but to the greater tech landscape.
00:17:35.920
To conclude: embrace the power of storytelling within your tech teams, focus on collaboration and development, and build a supportive culture where everyone thrives.
00:17:53.040
This needs to be a constant theme in our software teams as cultivating and enhancing our narratives remains at the heart of everything we undertake.
00:18:11.200
As these narratives take shape, they will redefine our realities and establish new paths toward vibrant growth. Ultimately, it leads us to enrich our understanding of software development as a community.
00:18:25.920
Making these connections—both through our technical work and personal experiences—allows us to evolve our craft and gain transformative insights.
00:18:38.000
Consider that these narratives empower individuals to contribute actively and foster supportive environments where creativity flourishes. Together, we can share our experiences and expand our collective stories.
00:18:54.600
Embracing enhancements resulting from various narratives results in a more engaged community. The intertwining of each story emphasizes the significance of opportunities to learn, adapt, and grow together.
00:19:11.120
You are all valued within this community. Embrace your narratives, foster growth, and remember that trust and collaboration lead us toward transformative journeys.
00:19:27.040
In moving ahead, let’s aim for a framework that nourishes collaboration, curiosity, and limitless possibilities for everyone involved.
00:19:43.960
As we reflect on this collective potential energizes us all, it’s essential to acknowledge the changes we spark in one another. The beauty of narrative lies in every person’s unique contribution to the overarching story.
00:20:02.760
Take this forward in your tech projects. Turn challenges into narratives full of resilience and celebrate the development journey in tandem with each voice and effort.
00:20:22.640
This creates a path towards the evolution of innovative ideas, encouraging meaningful growth through every collaborative venture. Together, let’s build tighter connections and a space where everyone thrives.
00:20:40.280
So, as we gather here, I hope you each feel empowered to contribute to the narratives that shape your teams. Thank you all for being a part of today's discussion.
00:21:01.680
Now, I'd like to encourage each of you to reflect on your work, to share openly, and let’s cultivate environments that allow us to flourish as contributing members of this community.
00:21:15.840
Thank you for your time. I hope we can all find opportunities to engage meaningfully in our areas of expertise.
00:21:26.960
Please feel free to approach me afterward if you have any questions or thoughts to share, but I absolutely don’t want to keep you away from dessert.
00:21:40.000
Thank you all once again for your participation today. I hope this talk has inspired some fresh thoughts about our practices and the power of narratives in software engineering.