Showing posts with label collaboration. Show all posts
Showing posts with label collaboration. Show all posts

Friday, October 13, 2023

AskAppSec - Security Champions

The first time I heard about security champions programs was from Tanya Janca and the idea stuck with me ever since. If you haven't come across this concept yet, here are a few good resources on it.

For the first time, I'm in a company that not only has established a security champions program, it's also the first time I became a champion myself! Therefore, the topic grew even more relevant for me in the past months.

Recently, I came across several rather negative, or let's say frustrated viewpoints on security champions programs. People I met said it just never worked for them. Some shared they were not having real organizational buy-in and the program was merely a point on a checklist to tick off for the company to look good. Chris Romeo shared lots of security champion antipatterns in his Reasonable AppSec newsletter that made me think. "Why Security Champions Are Not the Silver Bullet" by Matthias Rohr is another thought-provoking piece pointing out that other initiatives might work better in certain contexts. What I don't hear much about in my bubble, though, are success stories from security champions programs. I do remember one person at Booster Conf talking about their program that managed to raise awareness and spread knowledge. Yet that's... basically it.

It's my first experience with such a program and I only see its current state after having run for quite some time. Therefore, I can't really tell how effective our program is and if it improved the situation compared to the one beforehand. From what I've observed, it does indeed seem to work quite well so far. It did manage to bring people together and scale the efforts of our InfoSec folks through having invested volunteers as contact persons and security advocates in each product development team, hence building bridges. There's clear guidance for lots of security topics and good practices. In the teams we have on demand support and feedback from InfoSec at any point from idea to production. At least from my personal perspective, collaboration works really well. We have buy-in and time set aside for security topics and can actively help drive security efforts for our products and the company. Huge shout-out to our awesome InfoSec folks at this point!

That being said, we recently also talked about how our program can be evolved. The conversation was initiated by an InfoSec person sharing Snyk's Security Champion Playbook and asking people for improvement ideas we could try. I did share my personal point of view of what I'm missing or what would help me benefit from the program even more. We're all working remotely and as of now asynchronously as security champions. It's not a secret how much I am a fan of synchronous collaboration, so that's what I would wish for more. Be it in the sense of regular calls with champions and InfoSec, or frequent pairing and ensembling sessions to work hands-on together. This could be on specific learning topics, general fun challenges like Capture the Flag (CTFs) sessions, on our regular security related tasks, or on solving current challenges in the teams - together. Joining the regular InfoSec call where folks exchange current news would be a great addition as well. 

We haven't decided yet what exactly to try out next. I'm curious what other ideas people have, what worked for them best so far and what not at all. More real experiences that we can all draw inspiration from. So, let me ask you: what makes security champions programs effective?

Wednesday, July 27, 2022

A Time of Transition - Eight Months on a New Team

It's been eight months now that I'm at my new company, on my new team. Beginning of the year, I've shared my observations on the first months and my onboarding experience. Now that I've been here for over half a year, it's time to look back and reflect on what happened so far. Brace yourself, there's a lot to share.

In the following I'll be reflecting on my own team's context and transition. My team is usually my home base to operate from across teams. It's also where I deliberately put my focus on for the first part of my journey at this new company. We've already been through many challenges together, we've grown a lot, there's more change ahead, and I'm still having good reasons to stay at the company and move in better directions together.

Now, besides my team, there's a lot more to say about my first impressions and experiences at the company. On the one hand, there's the quality engineering guild with so many knowledgeable people I'm still honored to be colleagues with. We had great interactions so far, though not as many as I'd love to have yet. I mean, imagine the possibilities! On the other hand, there's the rest of the company with lots of more amazing experts of all areas. Like our infrastructure people, our medical doctors, our security experts, and many more. It's been a pleasure having our paths overlap already - again, not enough for my taste yet. And still, the focus on my own team was an intentional choice and I still feel it's where my attention is needed most. Which brings us to this post about the transition we went through together in the team: looking back to where we started, what happened, where we are right now, what helped on our way, and what the future might hold.


Where did we start?

It's always good to look back and see where we started out together. Without intentional sugarcoating, just as I've experienced it. In hindsight, some of my initial observations became stronger with additional evidence, other realizations only came over time. Please note that it's about people here. People who wanted to do a good job given the circumstances, people who have my respect. We'll see later how things changed and what impact this had, yet let me first paint the situation as I've observed it.

  • Solo working as default. I've experienced this as quite a contrast to my previous team. When joining this one, people could not really relate to me speaking about "pairing" or "ensembling". I realized they just never experienced effective synchronous collaboration. Everybody just did their thing, then considered it done and handed it over to someone else. I joined a team by name, yet did not encounter a team by spirit.
  • Limited communication within the team. I've seen people share a few sentences once per day during our daily. I saw only very few messages sent in the team channel or directly to me. I did see a few pull request comments from half the team. Whenever there were team calls, many people were completely quiet. That most people had their video turned off all the time did not make it easier. Yes, there are valid reasons why people don't turn on their camera, and I don't want to force anyone - yet it does make communication and building relationships harder for me.
  • Knowledge silos, gatekeeping, non-transparency. Oh my, this was a tough landing. I've seen people not share information with each other that definitely could and should be shared. I've seen the same with knowledge or any kind of learning. I've seen it with permission and access, be it for tooling or invites to meetings or channels or anything. At times, people were not only not involved, yet being actively kept out of conversations. Usually, there was only the one person who you depended on to get anywhere - yet you first had to find that person. You can imagine that people did not know the whole system they were working on. You can imagine the knowledge loss when people left the team. You can also imagine there was lots of misunderstanding and unrealistic expectations towards each other, as there was no shared understanding on a team level. You can also imagine that people did not like sharing their own work in progress before they considered it "done".
  • Expert role thinking. I've seen people treating each other very differently based on the role they identified with. I've seen them retreat to their own box, and shift tasks or responsibilities towards others once they did not fit perfectly in that box. I've seen "that's not my job" attitudes and other defensive patterns. This group felt at times like a conglomerate of sub-groups of individuals based on expertise or identities, like the "backend people" and the "frontend team".
  • Inaction, not daring to make decisions. I've encountered this over and over. I was coming from great environments where I learned that most of the time it is okay to go ahead without formal permission and rather ask forgiveness afterwards (while always considering impact upfront). Here, I encountered people who turned in circles over and over before daring to take action - if they took action at all. Let's rather have someone else make the decision or give us permission. Let's wait for someone else to make the first move. For everything, even very little things within the pure scope of the team. You can imagine that there was no experimentation going on or any tangible improvements to be seen.
  • Being pulled in various directions. There was no clear vision for the team or their product, at least none I learned about. Instead, I've seen the team being torn in various directions by various stakeholders who lacked understanding of the complexities of product development. Expectations were left unmanaged and I did not see any clear communication in place. Frustrations built up as people outside saw the team did not deliver things to the end, while the team was frustrated that before they could finish something they got pulled on to the next big thing.
  • Boundaries being crossed. Some people were super mindful with boundaries, and I celebrate them! Yet truth be told, I've seen the very opposite behavior with other people and this takes a toll. I've seen the team being asked on a late Friday evening to get results for early Monday morning. I've been myself in calls the whole day and being asked in each call to do something right away - yet when? Of course, the super urgent "whatever it was" was not being needed at all, or not being followed up. Expectations were unrealistic and definitely not healthy or sustainable. We lacked breathing space. I definitely did. I felt the need to push back heavily and make my boundaries overly explicit with some people, while trying not to fall back into my own personal pattern of being a people pleaser.
  • Blame shifting. This was maybe the most unfortunate, yet it explained lots of the defensive behaviors I've seen. Anyone made a mistake, any failure - and the blame game started. Be it across roles in the same team, or across teams - it's always the other one. No wonder why people came up with coping mechanisms, retreated to their own little safe places and did not dare do anything they might get blamed for.
  • Bad team reputation in the company. Another very sad thing I've heard from different people, even before I joined in. Their history (or rather their historical outside perception) wasn't shining a bright light on the team. It seems lots of communication issues across teams occurred. People expressed frustrations with the team introducing changes that broke things for other teams. People complained about all the perceived issues with the product. When joining the team, I did not find too much evidence to support this, yet once a team has a certain reputation it's going to take effort to switch this around.
Suffice it to say, I've encountered a group of individuals who tried their best working in this situation. They tried to help and support each other according to their knowledge and experience, given these conditions. Suffice it to say, I thought they deserve better - me included. So, let's shift this narrative and craft our own. But before that, let's add more details to the picture and also have a look at how testing and quality was considered in the team.
  • Throwing it over the wall. Automated tests were in the realm of the developers, yet anything else was "moved over the wall" to the dedicated quality engineer on the team. It was even considered a phase in the workflow. At this point changes were merged into mainline already, developers moved on to their next topics and feedback loops took really long. Little to no collaboration across roles could be observed. Later on, I found out lots of reasons, from not understanding what testing is about to developers not daring to test themselves, fearing they might miss important things.
  • Skipping backend testing. Changes on backend side often slipped through the cracks and were just moved to "Done". Well, you can imagine people were surprise about changed behavior. You can also imagine that avoidable bugs escaped to production.
  • Lack of foundational knowledge. Due to the knowledge silos and lack of sharing, people were not aware of things that I previously would have considered essential to the very task. They simply never had or took the opportunity to find out, and there was no incentive in it for them to do so either. I'm talking of knowing how to run your services locally, or calling the API of a deployed service. And these are good people - they just weren't aware of their options or sought to find out what's possible. Many even had been told it's not possible and it stopped there.
  • Testing only integrated states. As testing was coming in late, people only ever tested the integrated system. Sometimes this meant lots of changes combined already which in my experience makes it hard to detect problems, pin them down and relate them to their root causes. It's way easier to go in small steps and first see how the small change in a single piece behaves in isolation, before you put the pieces together and look how they behave together. 
  • Poor testability. Wherever I looked, things were hard. Harder than they needed to be. Time to find out how to make it easier, so it's also getting easier to spread the knowledge. Yet at the beginning, no one looked into making testing easier, they either thought it's not possible, or not worth it, or did not have capacity or the needed reward to invest in it (yes, similar to above). Instead, let's go the way of least resistance for now and either not test at all besides automation, or test the integrated state. Yet even there, we had poor visibility into what's actually going on.
  • Starting over finishing. As people were focused on their own piece of the work, and once it was done for them, they considered it done overall. Guess what? People continued starting new topics. All the time. Didn't hurt them, right? Yet when starting a trillion things and not following through to the end, you will end up with a huge queue and block yourself. Developers might have three topics to juggle with themselves in development, and maybe one or two to review - which is already a lot yet might still be okay for one person. From a dedicated tester's perspective though, this is a nightmare. Five developers each having their three topics going on means fifteen topics to switch context between for you. And lots of ping pong. Forget about throughput and flow, let alone fast feedback.
  • Poor observability and monitoring. Knowing or rather not knowing production was one of the first things I realized. If issues occurred, they were not easily and quickly spotted. Investigating issues was not straightforward yet complex. Responsibilities were unclear as well; who even responds to the people raising our awareness to problem reports?

I guess there's always more to share, yet this should give you the context where we started from to understand the transition the team made.


What happened?

So many things took place in the last eight months. Here are a few highlights of our journey together.

  • Team changes. First of all, the team I started in is not the same anymore as the team I'm on now. Five former people left, two contractors joined and left within this period, four new permanent people joined. It's been an overly huge team when I started out, now at ten people it's still at the very maximum when it comes to team size from my perspective. Communication pathways are already very complex.
  • Finding a dearly missed product manager. The team had multiple, frequently changing product people before and suffered from it. Now we got really lucky and found a wonderful product manager who is all up for transparency and knowledge sharing and always involves the team. Someone who sets clear priorities and gives the team focus. Someone who sets clear expectations with stakeholders and also shields the team from unhelpful organizational issues. Someone who makes quick informed decisions, instantly takes action and leads by that. I cannot overstate enough what difference this makes!
  • Rediscovering how to release. Knowledge got lost, and even such crucial knowledge as how to even release. Yes, that hurts. Given we have to consider compliance for very good reasons for our product, this was no little effort to figure out what's needed to get a new product version to the market. As the rediscovery phase took long and lots of changes queued up, it was a huge release. We all wanted to practice this more often and have smaller releases with less risk. With each following one we learned more about how we can make it easier, and we're still learning. Yet now we have transparency, the whole team is involved and enabled to do releases.
  • Team canvas session. This was initiated by our new product manager and was what the team needed at that time. A place to share what's important to us, where we want to grow into, what opportunities we see for our product, our personal values, and more. A foundation for the team to build on. As an outcome we now also have made our team values explicit. This way, we have a great reference for us to live by and also for people outside the team or joining the team to start with.
  • Huge epic. Beginning of the year, the team was made aware of an upcoming topic. When I heard of it, I instantly knew this will mean a gigantic effort, while observing lots of expectation mismatches (even down to "we'll do this in 2-3 weeks" - no way). In the end, it was a gigantic effort indeed! We're in the finishing touches now, yet this was huge. It was so huge, we had to literally drop everything else in order to make this happen. Kudos also here again to our product manager setting expectations very explicitly.
  • Extinguishing lots of fires. The time from March to June was a bit extreme. Lots of super urgent topics that all had to happen at the same time created lots of pressure. All while we also already worked on that huge epic. I think we only got through thanks to trying to tackle one thing at a time and our new product manager really stepping up. Can't emphasize this enough - she's seen the worst in her first month and is still with us! So, to see the positive here: this was the opportunity to set clear constraints and manage expectations, share the situation with other teams, get their understanding and support. I really felt this was a moment which could either break or make the team - and we ended up on the good side, the team really grew closer together.
  • My first time away from the team. I deliberately declined conferences and other endeavors within my first months, yet at some point they were coming. I knew up to this point, I needed to have the team enabled to take over testing themselves. They have the full context, anyone external would end up in the situation I was finding myself in when I started, it's not worth it for a temporary period - and also it would have reverted lots of the culture change we've been working on.

At the same time, we had lots of other constructions sites and room for improvement in the team. After the first month of observing, building relationships and growing my knowledge, here are the initiatives I ran within the team.

  • Onboarding and offboarding guidelines. Already in my first month it became clear that the team lacked shared knowledge, it was a rough start. As I had to gather the information bits and pieces anyway, I revised the existing onboarding page to a guide to help the next ones joining. Documentation itself was only half of the story, the other half was the mindset how to meet a new teammate, how to make them feel welcome and taken care of. Just last week a new person started in our team. Based on their feedback, it seems we're doing things a lot better already! Now, as much as there will always be new people coming, there will also be people leaving. That required a guideline as well to make sure we not only have a good last time together, yet also to handle permissions and set up the new team for their own future.
  • Making knowledge common. This ranged from sharing knowledge while collaborating, to sharing what I learned in the team channels, to writing "how to" documents. I quickly realized people really appreciated knowledge sharing! They also wanted to have fun together. Hence, we introduced a bi-weekly "knowledge & games" session where we took the first half to share whatever we learned, as informal as it could be to lower the barrier. The second half was reserved for games, whatever we were up for on that day. Already in the first sessions, I observed lots of aha-moments! During the high phase of the epic, we observed less knowledge sharing and more games, yet it was one the few things we did not stop. Now, we also see the sharing part being revived again, which makes me happy.
  • Issue handling policy and issue investigator of the week. One part of knowing production was to know how to deal with reported issues in production. The company had a guideline overall, yet it was not actionable enough for the team's context. I made good experiences in the past with having an explicit policy in place, so that's what I tried here as well. I made a proposal, I requested comments, we walked through everything together in a call, we all agreed to it. And we live it. Part of the policy is that we make quick decisions and not allow issues to hang around in our backlog, rotting away and just representing waste. Another part was quick response time to issues that we either identify ourselves or that are brought to our attention. Now we have a rotation in place, every teammate taking a weekly turn as "first responder" (or "issue investigator" as we call it) to evaluate any issues and then handle them according to our policy. At first, the team was not really comfortable with making calls like "we won't fix this, it's not providing enough value" and reflecting this decision in the ticket status by closing it. If it's not worth working on right away, however, then let's rather face the truth we won't tackle it at all unless our knowledge about the situation changes. If things are more important than initially thought, they will surface again. Ever since beginning of the year, you can see not only a clean issue backlog (some old issues had gathered dust there for three years), yet also quick decisions, important issues actually being fixed, quick responses to new incoming ones, and a lot less weight on the shoulders of the team. There's a lot more clarity now.
  • More cleanups, more transparency. As the issue backlog cleanup was so successful, we decided not to stop there. We also cleaned up the rest of our backlog, closing old epics that hang around, outdated tickets and more. Absolutely freeing and also providing more clarity. Great timing as well, just before our new product manager joined. We also cleaned up our wiki space - so many outdated documents! Also here, nothing got deleted, yet pages got moved in an "Archive" section and hence the rest of the wiki is now lean, up to date, accessible and manageable again.
  • Shaping the system to include everyone. For us it was crucial not only to pull single people into conversations actively, yet to have things accessible and visible from the start so people can make their own choices. For example, having all team related calls on the team calendar. Little thing to do, massive improvement in team culture! Or having one call link always available where everyone can join in and work together or alongside each other like in a physical team room. This way, I also overheard lots of conversations I wouldn't have access to myself otherwise. Or dissolving other systemic silos, like granting permissions to all needed tooling to all team members alike, independent from their role. Fostering a culture where people outside the team reach us through a common team channel so that we all see it and all can respond, instead of having individuals as single contact points and hence bottlenecks. Makes a huge difference in sharing load and increasing resilience, as well as in shared ownership and a feeling of team responsibility.
  • (Re)Discovering ways to collaborate for flow and fast feedback. When I started out, I realized the people on the team did not have any connection or understanding what I refer to when I speak about "pairing" or "ensembling". I understood they were working very asynchronously as well. Therefore, I tried to meet them where they are and at first collaborate very closely in an asynchronous manner. Working the board from "right to left", providing feedback on the items farthest in the process first and then working my way closer to what my developer teammates worked on right now. I added my findings as comments to the ticket as they couldn't oversee them this way. I used Slack heavily to ask questions or share insights. I tried to be fast and basically overtake them so we could work "side by side", being quick in any asynchronous manner. This worked nicely and people started to see what I meant with fast feedback as they experienced it! I also stopped talking about "pairing" and instead started to catch people in our daily calls, asking them "can you stay on for a moment? I'd like to show you something". Sharing screen, demonstrating where I had questions on or what I found, and then continue interacting with the system during the call. Demonstrating the benefit of looking at things together, making it easier to understand what's going on. At some point, an early adopter turned this around. He asked me instead if I could stay on the call. This developer wanted to share the current state with me and actively pulled my feedback on an early iteration. He had realized this shortens the feedback loop and he can move faster! He continued asking me for pairing sessions from then on. He even said maybe he should wait with merging. Maybe we won't need the "testing" column anymore in the future. Big win! Especially as he lived this in front of the others. I had my early ally already advocating for new ways. This grew to me pairing with each and everyone. Having them pair with each other as well. Having small groups work together as ensemble. People pulling in more people on demand. Sometimes just working side by side, yet more and more often together on the same thing.
  • Living continuous holistic testing. Not only speeding up feedback throughout delivery, yet also testing all kinds of pieces, from ideas to logic units, from mockups to automated tests, from documentation to architecture. Testing earlier and earlier, smaller and smaller. With trying to overtake people to meet them where they are or even before they picked up a new task, I naturally started testing smaller iterations and smaller pieces. I was used to that from my past teams, yet no one on the team experienced this yet. Some people on the team felt it's a waste of time or not the correct approach in their minds. I decided to just do it (as so many times) and let them experience the benefits. And they did! Nowadays, I finally can even join them when implementing a change or any other activity. In the first months, though, I was already content with joining efforts on testing only. I also made a point to brainstorm test ideas before people picked up new work planned for the sprint. Again, meeting them where they were by simply leaving comments in tickets and making people aware, asking for their thoughts, using them as conversation starters, and moving on from there.
  • Solving testability problems. By testing earlier, I came across lots of things that made it hard to test. Discovering solutions that were good enough, then building on them helped massively. For example, understanding how to run things locally as this right now provided most visibility under the hood. Or improving readme files and creating Postman collections for an easier starting point. Or using Wiremock to stub out external dependencies and explore more of our service's behavior. Or using other tools to gain more insights while testing. Also creating "how to" guides to document this for others as references. Yes, all that at the same time was a massive endeavor, and I really drew a lot from my past experience. Honestly, starting at a new company validated the experience I gained over the past six years heavily. Nowadays, I feel a lot less like an impostor. There's still a lot more we can do to increase testability, and I have lots of ideas - yet capacity is limited and I have to choose carefully what would have the most impact and not run too fast for the team to follow up with change.
  • Stop starting, start finishing. Luckily, I was not the only one repeating this mantra. Product and engineering managers joined me in this constant preaching. Preaching alone does not help, though! You have to lead by example, taking actions, making clear calls. Setting up the system to reward "finishing" behavior. Only when people experienced the pain themselves it got easier and they started to think first where they can help each other before they started something new. Well, some weeks were better than others, yet we're all human. Especially when pressure is on and we feel stressed, it's so easy to fall back to old habits. I see that with myself over and over again. Nowadays, the flow is a lot smoother and on most days we have a lot higher throughput than before. What helped here as well was that we had clear focus on our huge epic, clear priorities, and this approach was very clearly supported by our product manager. Focus really helped to get everyone not pressing ahead on their own yet to collaborate closely.
  • Enabling the team to test. Having each teammate now experience pairing sessions with me and practicing testing together with me (including documentation), they learned more and more about the whole system, what to look for, how to do it. Also here, I tried something that had helped me with past teams: I created a generic testing guideline. It always helped me personally not to forget about specific things that are important in the context, and I learned it helps others as well, especially if they are less practiced in testing. We don't have to re-invent the wheel! Also here, it proved to be a nice reference for people to think of when I would not be available. As it happened, I was off the time for increasing periods of time. At first, I was away only for two days. A few weeks later, for a whole week. Shortly after, for over two weeks. People really knew what's coming up and realized they have to step up, they can't just let things slide if they don't want to fall back massively. What happened? The first two days, the early adopter developer made a heroic effort of covering testing all by himself. He mimicked a lot of what he's observed with me, it was amazing to see! Yet it was a lot and all on him. The second time around, the team struggled and rather favored working on new changes over testing others. Tickets piled up waiting for feedback, and they experienced the pain and friction themselves. When I returned, it also took me the next two weeks to get back to a clean state together with them. Well, it was expected that people struggle, they've never done this before. And finally, my longest off time came - and they managed super well! I came back to an up-to-date state, could calmy start without pressure, things were taken care of by three of my developer teammates this time. Absolutely amazing outcome! I've seen teams successfully taking over before, yet never so fast so well. Super proud of them.
  • Doing releases as a team. When rediscovering how releases were done, I documented the single steps in a "how to" guideline. Then we started sharing this knowledge across the team. For our previous release it was the first time all teammates available on that day joined in with release testing together - massive improvement! As all of them now are also experiencing the friction in our current release process, they got inspired to find better ways, make it less tedious. Our current release has now been done without me being in a leading position, I'm just being consulted when needed and obviously I'm still there to support. This is a huge step again for the team!
  • Fostering cross-team collaboration. For the huge epic we're working on, it requires lots of teams. A great opportunity to establish and learn how to work well together across teams, including testing together! Absolutely nice to gain empathy, learn about the system as a whole, get to know the domain better, and especially also create relationships. Another topic: we showed up as a team during incidents that also required collaboration across teams. People suddenly saw our team in a different light, they saw us collaborating closely and constructively in a stressful situation. I bet it gained us reputation points or at least made people reconsider their viewpoint. We also had lot closer communication and collaboration with people from other specialties, like infrastructure services, customer experience, medical knowledge. Creating bridges and bonds here, always trying to be as transparent, constructive and helpful as possible. Learning which dependencies we have, who needs to be informed about what and be proactive about it. We've now also seen people actively reach out to us asking for how we work and pulling knowledge.
  • Knowing production. This is still a huge topic for us. It was one of my first ones to start with, and also one of the first to sadly be interrupted during the hot phase of our huge epic (I know, what a contradiction - just when we needed it most). I invested in learning more about our current infrastructure setup, our tooling to see what's going on, started to clean up and filter out noise to see the important parts we needed to act on. Before trying to create good practices in the whole team, I implemented a daily habit for myself to see what's actually going on on the only system that counts in the end - production. I discovered issues this way that we fixed which was a promising start. Then it came to a halt, just keeping the status quo without improving further. Only now we all can pick it up again.


Where are we now?

We made huge strides on our journey. Remember where we started out? Compare it to what we see now.
  • All kinds of collaboration modes. Synchronous pairing and ensembling, working side by side in the same virtual space, as well as asynchronous solo work. Wherever people are right now, whatever they deem best right now. And still evolving.
  • Heavily increased communication and making things explicit. This occurred thanks to synchronous work in general, yet can also be observed in team channels and in calls. Also across teams!
  • Inclusion and access by default. A topic we will continue learning about for a long time, yet we can already see how people changed their behavior, thinking of the team - which they also benefit from themselves. This was a huge game changer for us.
  • Higher confidence in our product, less observed issues. Fast and early feedback paid off! As did increased testability and enabling everyone to do foundational testing. Sharing knowledge across roles. Including diverse perspectives. All of that and more.
  • Increased systems thinking, higher focus on getting things done. People started to realize which impact actions can have on a system overall. Starting to see flows and queues, throughput and waiting times, and more. How we can help each other across roles and main areas of expertise, how we can share the load. At times feedback is again slow, yet our flow improved massively compared to when starting out.
  • Trying things out becomes safer and more normal. We're not having an experiment-driven culture yet, yet just feeling the freedom that we can make our own decisions and give something a try was liberating for the people on the team. We saw a lot more initiatives already and kept the good.
  • Becoming a team. We all grew a lot closer - I can now really say we are a team indeed! It's heavily more pleasant to work in this team, experience the spirit, to co-create something great. And this is by far not the end of it, it's an ongoing journey.
  • Being seen as a different team. Our reputation and outside perception already changed to the positive. We are continuously working on improving this, intentionally.
We're also coming into calmer waters now, finally. We all acknowledged that for the time being we needed to make tough calls in favor of achieving the challenges we faced - like this gigantic epic to tackle. Yes, there had been a few hiccups, yet overall, I'm super glad things went very smoothly! Many thanks and kudos also to our neighbor team here including the very amazing Patrick Prill. I loved the close and super supportive collaboration. They had a big part in this success and also a very positive impact on the team's journey.

I also want to acknowledge that I'm now working on the most diverse team I've ever been on in my whole career. Ten people from nine countries of origin, people of four races, with three women, and also other aspects I'm aware of like educational background, parenting, and others. Yes, I'm sure we're missing out on certain perspectives. At the same time, we have as many as I never had combined in one team so far. Invaluable, I'm learning so much.
All this has not been an easy ride, it's been a real challenge. It will stay a challenge, I'm sure of that. Yet now we're truly in this together and can all make our way to better directions. We're growing and changing; the future awaits us.

What helped make this transition?

People within and outside the company asked me how I contributed to the team's transition. Yes, I had my part in it with initiatives as described above, yet there's been a lot of people working together to achieve this. Thinking about what helped me on this journey, I realized I'll need to think about this further. I am considering making this the subject of my next talk proposal, as I feel there might be inspiration in there to try out and build on. I'm sure there are many ways how things could work. Whenever we don't see any way right now, sharing experiences like these could trigger a new spark, something different we could try. For now, let me share a few more things that helped me in the last months.

Remember my post "Dear Future Me: I Am Not Alone"? At peak times, I really had to remind myself about this. I did not intend to get into a similar situation again, yet here I was. My own advice from last year still proved valuable for me this year again.

What else helped? Patience, patience, patience. And lots of optimism and hope. Adopting new mindsets, changing behaviors and shaping systems take a long time. We're working with humans after all, and are human ourselves. We won't always have our best days, either. I'm in for the long game! So, whenever I see anything praiseworthy, I'll celebrate. Really, celebrate each step on the journey, every little thing. It's where I gain lots of energy from to go through the less successful periods. You might see me do this publicly a lot. You might think from the outside it's all nice and shiny. I can tell you it isn't. It requires the same effort. It requires the same patience. I do celebrate every win, and we fail a lot more than that and that's okay. There's no shortcut I know of. There's still so much more to do and we have it in our own hands to do it.

I drew a lot from what I've made good experiences with in the past. Like: approaching any situation with curiosity, showing you want to learn. Appreciating what's working, seeking the positive and turning up the good. Showing gratitude for help and explaining why it's impactful for me. Knowing people usually have good reasons why they behave in certain ways. Many people just never made good experiences or had opportunities or permission to try things out. So, let's give them just that, let them make their own experiences. Changing my own behavior - I cannot change them. Observing, gain ing transparency, creating awareness, luring people to experiment. Lots of "we" thinking, messages and also action. Leading by example. Being authentic and vulnerable, sharing as you go with all successes and failures. Not bothering with theory, yet getting down to tangible action. If it's not feasible, no one will pick it up anyway. Acting in ways to support people's work, not obstruct it or gatekeep. Using lots of pragmatism as well and not holding too closely to high ideals when we're trying to get foundations in place. Living very close to people and their needs. Speaking their language. Starting where we are and incrementally improving from there. Striving for better than we left it, yet never jumping to perfect - better is good enough for now. Explaining your reasoning behind actions or decisions, the why.

Not everyone is the same and that's great. I have early adopters as well as late adopters in the team - sometimes one person is both on different topics. Both types made huge transitions relatively to their own previous position. Someone who held back would now instantly go on calls with me. Someone who never did work together at the same time would now ask for people joining them to have more eyes on the same critical action. This might not be my own ideal for our future (which constantly changes anyway), and at the same time it is a huge step for them that I personally judge very positively. In short: don't expect to make everyone make the same jump at the same time. People need to go at their own pace and different things are differently challenging for them.

Work where work is visible for the people you'd like to lure into change (like ticket comments). Try not to convince them that certain things are valuable to do (test in isolation first, test the API only, read the code, test the tests, etc.). Instead, just do it and let the results and outcome convince them. Don't take it personally when it does not work out right away - remember, this takes a lot of time. Confidence helps - yet most often, we have to build our own confidence while we already need to take the team along, which is a challenge. Try to be clear about it yet not be put off. Yes, I also still need courage.

Just last week, I finally finished the amazing book "More Fearless Change" by Mary Lynn Manns and Linda Rising - and realized I'm using a lot of the various patterns to help change mentioned in the book. It resonated so much with me, it's incredible. Really recommended read if you are up for change.

What else? Let's get to know each other and build relationships, we're in this together. Let's create a safe space for us. Then we can focus on learning, try things out and see what happens so we all improve and can do a bit better each day. So yes, first and foremost, dare to try something. Inaction does not help. Someone else will not fix it, or not in a way you'd like to have it. Take action yourself. It doesn't have to be perfect, just a bit better than yesterday. It doesn't have to be huge, just a tiny step. You don't have to be in a formal leadership position, you have power to change things from your very career start. Observe, try something, reflect on what happened. Based on this learning, try something else. Continue.


What's next?

A lot happened in the last eight months. The team is not comparable anymore to the group of people I encountered when starting last December. We really started to craft our own narrative, and it's by far not the end. I'm looking forward to what the future holds for us and what we can do to help shape it to our team's as well as the organization's needs.

As we're now going back to a more sustainable pace, picking up things we had to drop in the last months, and also growing further as a team, a new exciting time is starting. There's a lot of topics to dive in to and further initiatives to drive from a team perspective. More problems to solve and friction to reduce. Lots of knowledge, skills and tools to learn to help us build a more valuable product. We can work on technical foundations now, grow into experimentation as a lived team culture, and make further connections with other teams. So much more to do. Lots of opportunity ahead, it's not getting boring any time soon!

In addition, there's a few organizational topics I'd like to dive into. Now that we are returning to a usual work pace, I'll have more time to reflect, to really stop and think about my next endeavors and experiments. I'm thinking of more knowledge sharing across teams in various setups. I'm thinking of more hands-on collaboration across teams, especially more pairing and ensemble sessions. I'm also thinking of acting on organizational observations I've made over time to achieve change on a bigger scale. I'll have to see what to try first to learn fast, where I'll have the most impact, and what also adds to my own growth. I cannot tell what's next besides it's going to be in the same organizational context. I'm curious myself for the future.

Thinking of my team again, change really does take time for humans. We've come a long way in quite a short time and I'm grateful.


Bonus: Collaboration Celebrations

You can see our team's transition reflected in my tweets over time. Some of them I already embedded above in context. Yet there's more, especially on increasing collaboration and growing closer as a team. Here's a tweet compilation to showcase the collaboration highlights of the last months. Remember, I celebrate every little thing and there's lots of white space in between. And still, there's so much worth in celebrating the good and the awesome people I have the honor to work with.

Sunday, April 10, 2022

Asking for Help

How is it that asking for help can be both so easy and the hardest thing to do? In my case, if I'm feeling calm and relaxed, I can ask about anybody to help me out. If they agree and do help, awesome! If they don't, well, it's a pity yet I'm calm, so it's not the worst thing in the world either. After all, things are under control anyway.

That situation changes completely when I'm feeling overwhelmed, fires are burning everywhere and I feel the weight on my shoulders (it might not actually be on my shoulders, yet perception matters). In this situation I happen to switch to one of two kinds of modes. Usually, it's my extreme "get things done on my own" mode, which let's me see only one way: pushing through until everything's done! And as I know how to do it, I just do it right away on my own to get things out of the way as quickly as I can. After all, I want to get back to a sustainable pace and things being under control as soon as possible. In this situation I don't feel I have time to enable others to do the same and help me out, I just keep going. On the other hand, I might be going on extreme mode for a while - then everything is getting slower and slower, while I still try to push through. I have less and less energy, so dealing with people is also not high on my list in this situation either. Don't get me wrong, I love people! Yet I'm very introvert and people interactions mostly drain me, unless we also do something together that gives me energy again (like getting valuable things done effectively - this is a real booster for me; hence effective pairing or ensembling does not drain me as much and also gives me back a lot).

Either mode - you don't want to get me there. It might help on the short run, and yes things are getting done - yet I'll do no good to anyone on the long run when I'm in this mode! It's been a while since I realized this and it was a tough pill to swallow. Wait, it's not me saving the world? No, and it never should be, and no, I'm not capable of that either, and yes, it's arrogant to think for a moment I could. And after all, I'm not alone, this is a team sport. Plus, I'm not doing my best work in this mode anyway.  I do my best work when I'm calm. Constraints can help, yes, yet I shouldn't get anxious or overwhelmed or drowning in too many feelings - this is usually throwing me off balance.

Getting back to asking for help: when I didn't catch a situation early enough to stay calm and enable others, and it got too far - then it's getting very difficult for me to ask for help. Especially, what help to ask for anyway? There usually are lots of people trying to help or who offer their support, yet what if they are not in the situation yet that they can actually provide help? Then I'd have to enable them first. Yet do I have the energy? Also, what if other people who would be closest to be able to help do not even see that I'm drowning?

What helped me in these situations are the following things. I'm sharing them here mainly as a reminder to myself. Feel free to go ahead, try them and see if they also help you as well.

  1. Do the right thing and ask for help. No, you're not alone, and there is a team to help out. No one should be left alone anyway, and if that's really the case in your team, then there are bigger issues to solve.
  2. If you can't directly ask for help for any reason, confide in trusted people and have them act as sounding board. They probably will tell you that you're not alone and yes, you really should ask for help! Some might ask you what you are afraid could go wrong if you ask for help. Think about this carefully.
  3. Okay, tomorrow you'll ask for help! Yet it's so easy to chicken out when tomorrow actually comes. What can help is to have someone to keep you accountable on what you committed to do, which is asking for help. In my case it really helps me to make this public (I learned that during my personal challenges). Might be scary, yet it's less scary than actually asking for help. Oh, and then everyone knows, so I'd better really do it tomorrow! Tricking my brain like this usually works extremely well.
  4. Point out and explain the challenge you perceive and how it impacts the team, how others can help you in concrete ways and why, and what part you will do yourself to get out of this situation. Just lay it out as it is. It's not about finger-pointing or blaming in any way how you ended up here, yet here you are. If it's too much work for one person, make the work visible. If it's lack of knowledge, make it clear. Whatever it is, let's get out of this together.
  5. Last but not least, for any situation where you ended up being the bottleneck and hence better ask for help: the only way to break out of a bottleneck and knowledge silo situation like this is indeed to stop and enable others. Yes, it will cost energy - and it's very well spent (I learned this the hard way last year). So do just that, enable others. Don't go on your own anymore. Pair and ensemble, document. Have others take over, trust them - accept different approaches and outcomes, they need to learn their way as well (and no, your way is not always right). It does not have to reach your quality bar either, by the way. You can still debrief and catch the most obvious issues - yet oftentimes, good enough is just that, good enough. Oh yes, and if it's not clear yet: Don't become a bottleneck in the first place. Yet if you really have to (sometimes there's just no other feasible way), don't continue this way and instead destruct it again as quickly as possible. It's about the resilience of the whole team. And testing should never be the bottleneck anyway, yet that deserves a whole other blog post.
Now that you (I do speak to myself here) know what to do, do it. What's the worst thing that can happen after all? Also, only if you do ask indeed, you'll know what actually happened (not what you imagined would happen).

Let me tell you what happened for me when I got into this situation again last week. In my mind, there were several crucial tasks to do that all ended up being on my desk, among them also lots of testing activities. Nothing that I could let fall down, I already cut what I could. In addition, everything needed to happen during the same weeks. I was a complete bottleneck and knowledge silo for the team. And I had planned off time from the next month on - and hence one task on my list was to get more people on the team enabled to help out with testing and quality in various aspects.

On Monday, I had conversations about this perceived situation with two peers. I shared I knew what I had to do and that I needed their backing to have the whole team help out. Both gave me the advice to ask for help indeed. They asked me the questions I needed to hear - what was it I was afraid of? Hurting my relationships with my teammates that I already invested in quite a lot? That things got done with less quality? That I needed to let go? I reflected on what they were saying and yes, I needed to fix myself here. So I tweeted about this to hold myself accountable and get me to really ask for help the next day.
Tuesday came, I summoned up my courage and wrote a message in our team channel, making things as explicit as possible (I asked for help quite a few times the last weeks, yet it seems the message didn't get through to them - I learned that sometimes I need to be a lot more explicit than I think I already am.) I chose the text format here as writing helps my thinking, and sharing on the fly in a call is very hard to  do for me. Second, I wanted it persisted so we could go back to this moment in time, have an artifact to refer to. Third, my team currently works mostly in an asynchronous way still, so I hoped this would fit them. In my message, I pointed out that I needed their help, the challenge I perceived (part of it was too much work in progress, hence people starting to block each other and trying to mitigate this by starting more new work before getting the old one done), what needs to be done when, how they can contribute to solve this challenge and what I commit to do to be part of the solution as well. Then I waited while I continued my work.

The good news: I didn't have to wait for long! The team responded amazingly well and I'm considering myself fortunate - and still they couldn't have responded that well if I never gave them the chance to do so in the first place.
  • One teammate instantly agreed to pair test with me on their story, clearly seeing it was too much for me.
  • One teammate took action right away and took over testing for two other stories, I didn't even need to bother further.
  • One teammate shared they're struggling as well with their task, yet I can ask any time and we can do things together.
  • One teammate had a chat with me and shared they got inspired by my message and took action to take over testing where they could.
You can't imagine how relieved I was! Also, it went really well. Yet I know from experience that these kinds of helpful bursts can happen and still, soon enough things go back to the previous normal again. I was curious to see how long it holds this time.
Wednesday came, and I paired again with the same teammate - just as the first session, it was amazing and we discovered lots of valuable information while also sharing knowledge. Now they know a lot more how to test these kinds of changes as well and what to look for.
Thursday came, and more good stuff happened! I asked the previously struggling teammate to pair on a specific story - and we did! I know this didn't come easy to them so I'm even more grateful. Again, really valuable insights in short time on both sides. I also had asked generally in the team who can pair with me on another story - and one teammate quickly volunteered, a person I didn't expect to do so! This was in itself such a nice thing that it made my day.
Friday - another pairing session with yet another person, hence enabling the team further, and it was a success just as well. Again, I'm aware this might collapse again, as it's hard and takes time to change behavior and mindset; there will be setbacks. Yet four really positive days in a row make me very hopeful. I am very happy I did ask in the end, and very grateful for the amazing response of my team. If we continue on this journey together, I do think there's a bright future ahead of us.

Overall, our work to do as a team already became more manageable in short time. I could feel the relief in my bones! I'm already a lot calmer. Which makes it easier to ask for help again. And if asking for help is difficult once more, remember you are not alone.

Tuesday, June 8, 2021

Dear Future Me: I Am Not Alone

Dear future me. I'm writing this while being very tired. I am still spending my time and energy on this deliberately, hoping to remind you of a very stressful time I'm still recovering from: the last six months.

Over the past couple of years, I've started to think a lot more about my energy levels and capacity. Especially when the pandemic became obvious beginning of 2020 and life changed, I felt I needed to cut down on what I do and focus on a few things at a time, working at a sustainable pace. Thinking I had achieved that, I promised myself never to get back into a situation with high stress levels over a long period of time, feeling completely overwhelmed. Little did I know, I did not have everything in hand to prevent what happened since beginning of the year. So here's a reminder to myself and anyone who relates to this situation: if you encounter circumstances again where everything ends up on your desk, be reminded of what happened this time, what consequences it had and which strategies helped to get through it.

So what happened? In short, my work load exploded, I went with it and the energy spent left me depleted.

  • Team size exploded. End of last year, my product team consisted of six full-time employees and a working student. With only three full-time developers we were looking for more people to join. Then one of the three decided to leave and the situation became more urgent to solve. As a blessing in disguise, four developers moved internally and one developer came from outside the company to join our team - all within one month. Yay, problem solved, right? Well, this meant we suddenly were eleven full-time employees plus one working student. I guess most people who have worked in cross-functional product teams can understand what that meant. Our communication pathways multiplied with every new person on the team. With me as the dedicated tester on the team still being involved in all stories, the team mostly working in solo mode at that time, and people starting new stories when waiting for feedback, meant that I had at least twelve stories at the same time on my desk. Imagine the context switching effort and waste coming along with that alone. Feedback loops slowed down immensely and our cycle time increased. Everything took long. Working modes that were okay-ish before did not work at all anymore.
  • Onboarding effort multiplied. So overall, in January and February five new developers joined nearly at the same time. With me being one of two persons having been the longest in the company, in the team and on the product, plus having a unique holistic view on everything that's involved with developing it, this meant a lot of the onboarding and knowledge sharing effort ended up on my desk. While I really enjoy onboarding new people - and these five were lovely people to join our team - this really took a toll on me. Yet still, we need to set people up for success and give them the knowledge they need to have impact themselves. I simply can't leave my teammates hanging.
  • Old conflicts reached the melting point. My team from last year was together for quite a long time and it started to dissolve more and more. We had wonderful times together, and also times we did not manage well. There's a lot to learn from that alone, yet the sad fact is that a long and slowly growing conflict took a toll on each and every one who had been part of that old team constellation. In the end, the two other former developers decided to leave the company for new opportunities as well. All these ups and downs took a lot of emotional energy from everyone of us. It took up a lot of cognitive capacity as well and made any interaction way harder than it had to be.
  • Building a new team, remotely. Since beginning of May, we're now finally our new team constellation and starting to shape this team to the one we want to be on, where everyone is welcome, included, safe to speak their mind, encouraged to experiment and collaborate and learn together and everything. Exciting times, yet we need to put in lots of effort. Also, this is the first team for all of us, where nearly everyone on the team only met each other remotely. We need to learn how to grant ourselves social time, get to know each other, evolve our culture, and more - all virtually. We are distributed across four locations, so the remote setup is amazing in leveling the playing field and providing the same access for everyone. I'm curious where this journey leads us, and already very happy to be part of this new team.
  • Upskilling people to enable them to take over activities that usually ended up with me. No matter how often I reached a point where testing was indeed a whole team activity, with the former team constellation it ended up again mostly with me. Especially exploratory testing or testing for any kind of other quality aspect than the core functionality. The same with operations and infrastructure tasks, responding to alerts, user support, writing release news, and so on. Scheduling and facilitating meetings. Cross-team communication. All kinds of glue work to keep the balls from falling to the ground. I strongly believe in the whole team approach and creating a base of knowledge for everyone. No need to become the expert in one area, yet we should be able to help each other out, reduce bottlenecks and waiting time, unblock each other, being able to go on sick leave and also vacation without things piling up for us in the meantime or worrying they won't get done. So with new people on board, this task could only be done by me, naturally. Super thankful that my new teammates are very open and supportive and not hesitating to see beyond their own nose. They stepped up and took over responsibility even if things were outside their usual comfort zone.
  • Taking up product work and sharing its responsibility in the team. Our product owner had great news: his family got a new member! I really appreciate him going on a long parental leave and also preparing the team for it. He is still working one day per week, yet we all agreed to spread the product responsibility across the team and see that we all carry a bit of the load so it's not too much for anyone. Still, with me being the one longest on the team and product, I ended up as natural contact person for most people outside the team, even though it was communicated differently. So many requests coming in! While I am only seeing a fraction of it, I'm in awe of product owner work. Also, we all in the team are now learning how to tackle user experience in a better fashion, how to spread UX knowledge in the team and how to support our researcher better with his work, and how to fill the gap of other UX roles like design or writing. A lot more to learn on this path!
  • Our team's domain got lots of fresh people. Since beginning of the year, a lot more new people joined our domain, including two new persons on the domain leadership level. New people bringing new energy and lots of ideas! Naturally, onboarding needed to be done on domain level as well. Again, as being one of the persons longest in the domain and also having the "Principal" seniority level, sharing a lot of knowledge and experience ended up on my desk without the possibility of delegating this work. Giving feedback to new initiatives, doing my share helping to drive them forward, new sync meetings, participating in domain workshops, and more.
  • Seeds planted over the last years in my colleagues' minds finally began to sprout. I really don't know what exactly happened, yet since beginning of the year a lot of people reached out to me. Suddenly they were taking me up on my continuous offers to give workshops or talks, to listen and give advice where wanted, to support their own experiments and initiatives, and more. I love seeing people this energized and acting on their ideas and I'm happy to support. "People first" as a principle does not only apply to my own team, so I didn't turn them down. Yet all these requests added up for me.
  • Mentoring, coaching and an accountability partnership. Over the last years, I had about one mentee at a time, sometimes one or two more without the formal relationship. This year I got a new mentee to nudge further on her journey - which is great! Also, this part of the job comes with the seniority as well: growing more senior people. With my mentee from last year we had agreed to continue the relationship as accountability partners - on the topic of saying "no" (imagine). In addition, I took on my very first coachee as an experiment for both our growth as well. Each and every of these relationships have clear boundaries and don't take up much time - yet overall they do add quite a bit. Yet again: people first.
  • Co-creating and running a series of six leadership workshops. I'm in a hybrid role as a principal engineer who's embedded on a cross-functional team. This means that I spend part of my capacity on cross-team initiatives to drive change on a different impact level. Over the last years I've found a rough rule that worked nicely for me: one third of my time I spend on everyday work on my team to evolve our product, one third for thinking ahead and driving innovation within said team and product, one third for initiatives outside my team, usually on a global scale. Worked pretty well last year, helping me to focus on less work in progress and also keep a sustainable pace. For this year, the main initiative I chose to do outside my team was to pair facilitate a series of six leadership workshops together with our coach Shiva Krishnan. I had participated in these workshops in the previous year and found their content to be very relevant and valuable to spread further. My experiment was to build quality on yet another level here, setting the base line and culture for good things to emerge. According to my experience, driving specific testing and quality initiatives mostly failed when they clashed with the existing culture. This year, I wanted to work on the mindset part from yet another angle and also build awareness on diversity, equity and inclusion topics as part of these leadership workshops. Well - long story short, Shiva and I ended up reworking each and every one of the six workshops, pulling them to a higher level and building yet a better framework by doing so. The magic of pairing! Any one of us alone would not even have imagined the end result. Together we put in a lot of effort yet also had a way better outcome in the end. I don't regret any moment working on these workshops - even though it was way more work than anticipated, and we had put ourselves up to keep hard absolute dates with each workshop.
There might have been more things that I've forgotten to list here. Yet you can already see that there's no way that all of this would ever fit into a 40 hours work week when everything needs to take place at the same time and the goal is to achieve all that in five to six months. Some colleagues reached out with lots of requests, and when I explained my situation they shared they can really relate and things can wait; while giving me yet three more tasks. Sigh. My task list of additional "small things" to work on grew to 40 tasks that all would take at least 15 minutes to 1 hour and I just didn't know when to ever do them, while me being the only person who could work at them. I felt I was set up for failure and adding to that myself. Believe me, on each thing landing on my desk I pushed back way harder than at any time in my career before, challenging every bit of work if it really needed to be done, be done this way, be done by me, be done by me alone, be done by time x, be needing my attendance - and yet way too many things ended up with me anyway. Way too often I was in back to back calls the whole day (with follow-up tasks coming from them of course), while in the meantime I received so many chat messages with way more tasks waiting for me. Yes I can pull through this, and yet it will drain my energy levels completely. Way too often I felt I'm playing a game of "Whac-A-Mole" without being ever able to win - at least not on my own.

The consequences of all this?
  • Being the bottleneck. It's been a long time since I've enjoyed being the bottleneck. A long time since I said goodbye to that mindset and never wanted to look back. From time to time I still ended up being the bottleneck (e.g. being the only one knowing how to do a certain thing), yet I usually took this as an indicator to change the situation. Having bottlenecks and knowledge silos is neither resilient for the system nor fun for the individuals. It just increases waiting times, triggers unhelpful behavior (like taking on a new task while waiting) and more. Believe me, I'm totally happy with not being the bottleneck and I'm way better able to contribute then.
  • My cognitive load exploded. With all the points above I had to keep way too many things in mind. Way too many context switches. Way too much balancing and juggling. If one thing dropped, way too often it cascaded into other things. Once more I realized what 100% (or more) utilization really means: a catastrophe. So many times I simply could not think anymore; you know, deeply think, really think something through. Staying too superficial just to cope with the situation led me to make less fortunate decisions. I lost focus on what's actually important and what can wait. Trying to make all these switches slowed my thinking to a halt. And yet I tried to pull through instead of taking breaks.
  • The more stressed I got, the more I fell back to bad habits. Like solo work, trying to solve everything myself (so it's "faster" and just "done") without pulling others in (so more people could help out in the future). Especially in the first months this was a missed chance. Another bad habit: being unable to say no. I know I'm a people pleaser, a learned behavior from childhood years, so I'm aware I need to work on this. I do have an accountability partnership specifically for that reason, so we can keep each other accountable on keeping an eye on our load. Practicing saying "no" to opportunities, or "not yet". Trying to delegate things, sponsor other people instead of taking on more things that are not in our focus, outside the area where we want to make the biggest impact. End of last year this worked well, yet this year I learned that the higher my stress levels, the lower my boundaries to accept new work load. This is something to keep in close check.
  • Getting angry with myself and the example I set. Angry with myself that I let this happen to me (which was not helpful at all but just added another layer of energy spent and capacity used up). Angry with myself that I felt the need to pull through all this and cope with the situation - despite me never wanting to take on as much anymore. The contradiction alone. Also, I was well aware being in a position of leadership, and leading by example taking on that much and not being able to delegate or take breaks, this is setting a really bad example I did not want for our culture. Working late or on weekends? I was always the first one telling my teammates that this is not the way to go (unless where really needed to balance with life), and that it's not good to set this bar for the rest of the team who might start thinking it's expected from them. All this while I was doing exactly that, just trying to hide this from my team. While I am also the one who advocates for transparency! Oh my.
  • My body alerted me of the elevated stress levels. I mean, more than usual. I started developing new physical responses to stress to a level that my body actually made me notice - a first timer for me. This was something I could not push away yet really got me thinking. It made me realize I really need to stop this. Get out of this situation as soon as possible.
  • Feeling overwhelmed, helpless, anxious. Way too many times I broke into tears or screamed in frustration or wanted to throw something. Anything. All this took up again time and energy that I felt I needed to spend to resolve this work situation and get out of it as soon as I can - while still being aware that this would mean months. Several colleagues and friends repeatedly reached out to me sharing their concerns that I'm stretched too thin and that I really need to get things off my table. Yes, I know. I don't know how though, and I'm sad it shows. I really appreciate you all for reaching out - I still couldn't see any other way out than pulling through.
Of course that's not everything. There's more to life than work.
  • We're still living in a pandemic. I learned that I am totally happy with continuous change at work and drive improvements actively, yet especially in private settings I need a constant to hold on to and give structure, like my schedule. Any change in my daily routine takes a long time to establish new automatisms around it - costing lots of energy. The constant change of rules what's allowed and what not in the pandemic really drained me. Rather give me a more restricted set of rules and keep it for longer, I can live with that way better than having it change every few days or weeks.
  • Family and friends having a hard time. People were needing me in many different ways. We went through lots of ups and downs. Having to solve a lot of things remotely with people who are not used to work that way is a challenge in itself. Solving problems I never had to solve before while conveying that knowledge at the same time took a lot of energy from my side.
  • My personal projects and endeavors came to a full stop. At first I tried to make time for them nonetheless, then I realized I had to stop whatever I could. The last years I took on a lot and I'm aware of that. At the same time, my personal projects served as a sort of boundary for work, any hours outside working hours were simply reserved for other things already which helped me to keep these boundaries. They also gave me a lot of energy and allowed me to learn a lot of different things. Yet they had to go - during the past months I simply didn't know anymore how to ever manage that load otherwise. Slowly, I am now taking up a bit of public speaking again, yet mostly around existing sessions with the least effort possible.
  • Crossing my own boundaries for self-care way too many times. I failed to keep up my personal goals to do things only for myself (like games, sports or reading). Feeling guilty here as well and trying not to.
  • Way too many private messages and communication. While I heard many people struggling with the reduced connections during the pandemic, I so often wished for a lot less. I am usually receiving around 40 to 50 private emails every day, with around 10 I really need to respond to. Usually I'd be fine with that, I learned to get them out of the way quickly whenever I can. Also I'm happy when people are reaching out! Yet in above situation over the last half year these messages were way too many! Hence, seeing any kind of new email or social media notification immediately made me cringe and increased my stress levels.
If I've ever felt burned out or getting real close to it, it was over the last months. A really scary place to be that I wanted to get out of as soon as possible. So I did work on finding my own way out. Oh yeah, this came on top - yet I felt this would be my saver. I tried a lot of things, yet here are strategies that indeed helped me on the long run in my specific context and situation. They mostly resolve around setting boundaries and spreading the load by enabling people to help out.

  • Take breaks. Really, I need to take breaks even if I feel I don't have the time for them. Sometimes just getting away from the table helps, like when making myself a new tea even though I didn't need one yet.
  • Take time to reflect and think. Sit down and reflect on what worked in times that resembled the current one, like back when I was working on big teams. The past months I continued reflecting and taking note of my thoughts in a journal. In hindsight this helped me a lot to unload myself of emotions or thoughts as well as to clear up my thinking. I had discovered over the last years that writing helps my thinking, so journaling is a great way for me to get my thoughts straight. If you wonder, I mostly just take bullet points, as little as needed, and sometimes thoughts are just flowing and filling up the white space.
  • Reduce the load in progress. Making principles like "stop starting, start finishing" very explicit again so people start looking around if they could help out someone else before starting something new, or just not start something new not to increase our work in progress even further. Cut down what you're working on, and then cut down even more.
  • Remember you are not alone. As shared, I'm a people pleaser and this often drives my behavior. I am using an "allower message" as antidote, so whenever I perceive being a failure (meaning I cannot please all people), I remind myself of a specific message to ground myself again. "Please yourself first" worked well for me last year. This year I changed it to "I am not alone". This reframing allowed me to break out of my solo overwork behavior (that helped no one), reach out to others earlier, and accepting their help better.
  • Refrain from solo work. My current team is not yet familiar with ensembling, yet open for pairing. So I paired a LOT. To the point where I committed to testing only together with other people - if we didn't find time together, well this thing did not get done. Giving myself permission to use that time to finish other things instead, and not to use off hours to test something. I deliberately went slow here so we all could go fast in the future, together. When things are valuable to us, we need to own them together. Sharing knowledge is one thing, sharing activities is key.
  • Focus on unblocking people. Teach people how to help themselves and the team and then let them do it. Let them be responsible of follow-up tasks instead of grabbing any little further todo in addition, like setting up meetings or taking notes or checking in with another person.
  • Invest in upskilling people, continuously. Pairing added to that goal just as much as sharing knowledge in a fun and realistic way. For example, I gave two operations and support trainings that put my team in the actual situation of an incoming user request or an alert by our product, while also enabling them to investigate the situation and go through it. This helped a lot with sharing why this work is important, why we need to bring our pieces of knowledge together, and how to do it without making it a tedious burden yet allowing us to learn from it.
  • Explain your situation and manage expectations. Share your context in any interaction. Being open and transparent with people helped a lot with their understanding and us seeing the full picture. It also allowed us to find alternative ways to accomplish things faster or with less effort.
  • Find sympathetic ears. What really helped me was talking with a lot of people - people who listened and I'm ever grateful for that. Sharing your situation and speaking out loud helps reflection and becoming clear that this is not a situation to stay in. It sometimes triggered other ideas what to try, or re-established my confidence in doing my job; yet even if it only helped make the other aware of my situation, talking already helped.
  • Refrain from taking on more on top. Saying "no", "not yet", "not me". A lot. If you can't (as priorities change, right?) communicate what goes instead - you can't do everything at once.
  • Connect people. Instead of taking things on your own desk, empower others to do so. Sometimes all there's needed is to make people visible and connect them.
  • Reduce your cognitive load and singletask. Wherever possible. Do one thing at a time and complete that one thing at a time before tackling the next one. Sometimes more stuff comes in on which you can't decide right away, yet instead of keeping this in the head just park it in a todo list or similar. Anything that freed my thinking capacity to focus on the current task at hand helped. Sometimes it also meant getting rid of a few smaller and less important things just to free my mind again for the big important impactful one. Anything to get calmer or stay calm enough and maintain thinking capacity. If I'm drowning, my biggest value is gone: being there for people, going deep thinking in different perspectives and creating bridges and connecting people, driving experiments and inspiring change. So I'd rather should help 10 people not 100. Spreading myself too thin does not work.
  • Consider unplanned work. No matter what we do, we will discover new things as we go. Whether it's the tooling that suddenly does not want to work with us anymore, or incidents taking over priority, or a personal crisis. Some things will happen and shift previous plans. We need to keep this in mind and enable us to act on new insights quickly.
  • Maintain your own space. I need space to drive testing and quality topics in my team. I need space to contribute pro-actively. I need space to help other teams and people in the company as well. I need space to be helpful. The safer I feel and the more space within constraints I have, the more ideas I get and think positively about my work and the impact we can have together. Sometimes I just needed space to tackle a few things on my todo list - so I'm really thankful for my team giving me this space. Yet remember: filling the day with back to back calls is the opposite of maintaining space.
  • Make space for others to step up. My new team achieved a lot of things I wanted to drive forward just by getting the space to do so. Together, we finally tackled some long waiting improvement points. We introduced integration tests for consuming Kafka messages, added template testing for our frontend, increased the level of observability of our backend, introduced actual feature flags to decouple deploying from releasing, integrated first accessibility testing to tackle this increasingly important quality aspect, and introduced user tracking with Hotjar to get even more data and make more informed product decisions. Yes, I nudged a bit on all these topics, yet most of this was achieved by my teammates with me getting out of the way.
  • Reclaim your calendar. Setting my work and private calendars to tentative helped me a lot. This can serve as a signal to others looking for free slots and having them reach out to me directly, yet it mostly served as a signal to myself when looking at my calendar. Screaming in my face: "no more extra meetings during this time, don't schedule or accept if not absolutely needed".
  • Reclaim your inboxes. Responding to private emails only on weekends; just because this way no further response could come in between and add to my load.
  • Prioritize sleep. This grew very important, especially after my body made clear my stress levels are too high. Cutting on sleeping hours is never the way to go.
  • Make space for "me time", no matter what. Canceling private appointments to get a little me time here and then. Even if I just used it to watch another episode of my current series. Anything to distract my mind from work.
  • Accept what you cannot change. We don't have everything in our hands. Accepting this can be hard, yet many times I can only change how I cope with what comes.
  • Be okay with being not okay and focus on finding a way back to okay. As soon as possible. In the end it boils down to that. I cannot be of any help to others, especially on the long run, if I don't take care of myself. Remember the oxygen mask and why we need to put it on ourselves first.
  • Take time to socialize and have a good time with people. With my new team starting to grow together, I drew a lot of energy from any social moment we had, great conversations as well as having fun playing a game together. I desperately need the bonding and building these relationships on more than just work topics.
  • Celebrate achievements. I sometimes really need to acknowledge what I managed to do and allow myself to feel not only overwhelmed but also take in good energy from these achievements. The trick is: even if I don't feel like it, celebrate nonetheless. With the responses the good feelings come along. Looking back I'm thankful I did and can now feel more proud than at that point in time.
With all that, after half a year, I finally feel I'm in a better place again. Most of the topics on my desk that had absolute dates attached are done, people around me are finally enabled to help out, and I have capacity again to deal with what's still there while remembering not to take on too many new ones at a time. The rest can wait, there's a time coming for that.

Huge kudos and gratitude to my new team - I really appreciate you for stepping up big time, feeling responsible for the whole product and team, for more than your own area of expertise. For being ready to take over unfamiliar things outside your comfort zone. For sharing the load and helping each other. For learning every day with each other. For experimenting. For really having my back when I went on vacation or spoke at a conference. For listening. For sending me on vacation early. I know some of you feel you're just doing your work - yet let me make this clear again: yes, you are doing your work, and I appreciate you for doing it well.

Huge kudos to so many people of our lovely communities - thank you all for listening to me in this time or for bearing with me canceling appointments, not accepting pairing requests anymore, and not being there for a lot of things. I am coming back to all the lovely community stuff, yet I need to remember to use my energies wisely and look for synergies where I can.

Huge kudos to my friends for reaching out, and especially to my best friend and sister Marlene Guggenberger - thank you for honoring me as first listener of your first novels (which are amazing, so people who understand German should definitely check them out!). I loved the live reading as the story progressed, it was the time off my head that I needed on many of these days and hence a real life saver for me! Not taken for granted.

The one most helpful thing I've learned to prevent a situation as described above worked also as the way out of it. Dear future me. I am not alone.