Take heart. You are not alone.
In software product development, problems are a constant. Teams everywhere are venting, ruminating, introspecting, experimenting, and searching. It isn’t easy, and that is what makes it fun.
Every fix has side effects, and superheroes all have a weakness. The obvious invites the unexpected. Change is nonlinear, and rapid phase shifts can occur unexpectedly. Human systems are messy. We’re biased, stubborn, and fall in love with our ideas. A watched pot never boils and everything eats everything for breakfast.
The problems will never stop coming. The trick then is how to deal with (and to be strengthened by) the constant perturbations, threats, upheavals, and change. How do you foster a self-repairing, self-strengthening system?
Because I’m sure (some of) these will sound familiar…
Lots of the features we ship never get used I have no idea if anyone is using what we build and whether it is moving the needle We can’t jump on opportunities fast enough. We miss the window altogether There’s a basic lack of confidence. We never make a single deadline or commitment Stuff keeps breaking and feels brittle I’m not holding out hope for the reorg. We’ve done this before It takes forever to gain any kind of consensus about how to move forward Getting new environments up and running takes them forever. We’ve been waiting for weeks We outsourced that. And now they are unresponsive I have no idea what is going on. There’s no visibility! It’s impossible to work with this codebase. The most basic thing takes forever We need better user stories. There are too many unknowns. They are not ready for development Our estimates are way off! It is embarrassing How do you put a number on a table-stakes feature? Teams are always stepping on each other’s toes. What can we do? How about the team’s ideas? I think we’ve got some decent ideas There’s so much rework. We can’t seem to nail it on the first or second tries The shift from projects to continuous flow has been very challenging The developers are lazy. Don’t quote me on that, but it’s true. What can I do? I’m a developer and I’m calling the kettle black No one is clear on the roles and responsibilities. Everyone is confused about that What’s missing is leadership. Plain and simple. Sad to say, but I’ve lost trust Everything is OK. Not great. Not bad. I just feel we could do better somehow We have to be able to settle on a definition of done, and acceptance criteria! Without those, we’re lost Not everyone can be as vocal. What about introverts? How do we get our ideas heard? Competitors are running circles around us. How do they do it? The roadmap is too prescriptive How far ahead of the work should we get? Poor alignment. We’ll agree on something, and then all go out and do something different I’m trying to advocate for the value of exploratory testing! It isn’t a brainless task The difference between our A and B players is massive. The A players become overworked It is hard to hire good people. More than hard, actually. Maybe it is a regional thing They don’t appreciate UX as a discipline. It’s frustrating, because I think we add something How am I supposed to keep moving forward in my career? I feel like I’ve stopped learning We are missing the big picture and get stuck down in the weeds I appreciate the idea of co-locating. But that’s impossible in this situation, and the remote team feels alienated We don’t know when to stop working on something. When is enough, enough? Until the VPs stop fighting, we’ll just be waiting around and watching Getting new people up to speed is painful and slow. Things seem so complex People arrive and the best people leave like 6 months later. They get sick of it It depends on the team, but for some people the environment is kind of toxic Do we retrain or rehire? The word “debt” has been cheapened. All I hear about is debt this, and debt that I’m not positive they do it on purpose, but I could swear they are ignoring our team’s requests It has been crunch time for months now. People are burnt out The distinction between PO and PM has been a tough one for us to figure out Too many meetings with nothing to show for it Faster, faster, faster. We’re running fast and loose at the moment. Does that make sense for the situation? Can you measure the agility of a team? How are we supposed to improve, if we can’t measure our teams? The senior team members are so cocky. I’m always scared about making a fool of myself We’ll meet, figure stuff out, but taking it back to the team requires a full reset Story splitting makes sense, but sometimes it seems like we are just going through the motions QA needs to be involved earlier in the process! No one uses the Wiki. Don’t even get me started on writing tickets. Jira is a mess Are we doing Agile right? Can’t complain. I’ve got a sweet job. Team is fun to work with. I’d be happier if I had more say in what stack we use, but I’m nitpicking now The teams just go rogue, even when they lack the experience. How do we tame that? Work piles up in the backlog. It’ll take months/years before we are able to work on some of those items Management just swoops and poops with no notice. So frustrating Design is not something you can do on demand. It takes take alone to get it right Why don’t we catch these bugs before they hit customers? At what point do we split the backend and frontend teams? It’s a chore to get access to the right tools. Always a hassle Details matter. The vision thing is fine, but that isn’t what gets work done Engineers are not robots Our tools aren’t up to date They (UX) are perfectionists. Always tweaking. Can’t we just ship it? I don’t know where the time went. Every sprint feels full on, but we don’t seem to get much done That’s easy. We just don’t move fast enough. Great product can’t save us unless we can deliver Right in the middle of the project we changed direction. All that work for nothing What we’re doing is not scalable. We can’t grow it quickly enough I understand the idea of incremental improvements. But how can we make a big leap that way? All they do is bring up more and more problems! We’re doing our best. We can’t fix everything at once Do we take the plunge and refactor? Do we start over? The standups are a waste of time. Everything is “all good”, but it isn’t We mapped everything out on the wall. The net effect was noticing we are slammed. And that hasn’t changed. Trying to do too much at once Shiny objects! We get in a groove, and then get distracted again and again People were thrown into management roles too early, in my opinion. I get the feeling that some of them don’t even enjoy it The retrospectives seem like a waste of time. We don’t follow up on our action items We seem to worry more about protecting our turf and department’s reputation, than about doing a good job I find myself asking the same questions over and over. Can’t we codify some of this learning? Maybe we are delivering too quickly for our customers. They can’t keep up with the changes Since downsizing we are trying to do more stuff, with fewer people. Does that make sense? There’s so much bureaucracy to get anything real done Move fast and break things. That’s what we do. But we leave them broken! We just worship the status quo. Don’t rock the boat! Don’t change stuff too much How early do we get engineering involved? Too early, and sometimes it is a big waste The team doubled in 12 months. I’d like to say we absorbed it gracefully, but I’m not sure Pairing feels like such a waste of time. I work better alone, and pairing tries my patience The POs are terrible. I wish I had a positive thing to say, but they’re simply bad at their jobs I am hesitant about the consultants. What is their agenda? Why are they here?