Poornima Vijayashanker

How to Respond to New Ideas in the Middle of a Software Project


In the last episode, we shared two ground rules you need to set for yourself to get through a software project successfully. But we know that managing our own anxieties is only half the battle to keeping the project on course; the other is navigating new ideas or unanticipated challenges.

Many of our teammates have ideas and solutions that can help. They are eager to have their ideas heard, so they speak up, whereas others are shy and worried about speaking up—but their insights and ideas can save the project!

As the project lead, you know it’s important to hear your teammates out to uncover challenges early on and prevent them from derailing your progress. But how do you encourage and instill confidence in the introverted ones, and is there ever a point when you can stop entertaining new ideas and start building?

Well in this week’s episode of Build, we’re going to answer these questions and more!

We’re continuing our conversation with Jen Leech, who is the VP of Engineering at Truss, a software consultancy. As you watch today’s episode, here’s what you’ll learn:

  • why it’s not new ideas that take a project off course, but the implications they have;
  • how to teach teammates to think through their ideas, the impact they will have on a project, and instill confidence to share them; and
  • when to stop entertaining new ideas, building a consensus, and get to work!

Once you’re done watching today’s episode, tell us about the last time that you were managing a project and somebody brought up a change. How did you respond to their request? Let us know in the comments below!

Listen to the episode on iTunes!

How to Respond to New Ideas in the Middle of a Software Project Transcript

Poornima Vijayashanker: In the last episode, we addressed a number of anxieties that come up when you’re managing your first high-stakes project. If you missed the episode, the link to it is below this video.

Today we’re gonna tackle how do you handle getting blindsided by your teammates when there are new ideas or challenges on a project you’re working on. So stay tuned to find out more.

Welcome to Build, brought to you by Pivotal Tracker. I’m your host, Poornima Vijayashanker. In each episode, I host innovators, and together we debunk a number of myths and misconceptions related to building products, companies, and your career in tech.

We’ll continue our conversation about managing your first high-stakes project with Jen Leech, who is the VP of Engineering at Truss, which is a software consultancy. Thanks again for joining us, Jen.

Jen Leech: Sure, absolutely.

How to respond to brand-new ideas that may cause you to miss your software project’s deadline

Poornima Vijayashanker: So, Jen, based on our conversation last week, I know you’re awesome at listening to people, incorporating their feedback, and putting a plan into action, but there comes that time usually in the middle or towards the end of the project where somebody’s got a brand-new idea and you are worried about the deadline and making progress. Do you have any rules or mantras for how to handle this situation?

Jen Leech: Yeah. In general, I love it when people bring new ideas to the table. That’s what I want. That means that they’re engaged, they’re thinking creatively, that they feel some investment in the project. I wanna encourage that as much as possible.

If the idea that they’re bringing to the table is a simple one, it’s great. It’s pretty easy to think about, pretty easy to reason about, and you can go with it or not go with it and move forward. The complexity comes in when the idea they’re bringing to the table is something that is a much larger idea, or it has implications beyond the implementation of that idea itself. In those cases, I don’t always know what the results would be of implementing that idea. As someone who’s experienced leading projects, I may have an intuition for it. I may be wrong, following along from my last episode.

How to teach teammates to think through their ideas and the impact it will have on a software project

But the thing that I do in that situation is I ask the person who’s presenting the idea to take their idea and follow it through to its ultimate conclusion. So that means asking them to say, “OK, so…” Using the example from our last episode, of a microservices architecture, I say, “Well, we have problems A, B, and C, and D in the system. And I think that a microservices architecture is gonna solve it.” And then, as a project lead, I can say to them, “OK, well so let’s say that we move forward with that. What are the implications for the project? Does it mean that we’re gonna have more service support? Does it mean that we are going to have to have a different team structure? Does it mean that we are going to have new work in our backlog that wasn’t there already? What is that work?”

And then ask them to think through their problem. In the case of microservices architecture, that might go something like, “Well, that means that we have to make sure that these units that we’re turning into microservices are independently deployable, they’re independently testable, that they have a well-defined interface, that that interface is versioned, that we have someone who is keeping track of what all of the requirements are from consumers of the interface.” So you might need to have a product manager. The list of potential implication gets bigger and bigger, and then all of a sudden you need an entire team to manage this one component.

And then, we can look at that and say, “If this does solve the things that you’re saying it solves, it’s the cost of potentially increasing our headcount by x. Justify that benefit. Or are there other ways we can get the same benefit?”

Essentially asking the person to walk through all of the implications from the leadership perspective.

When it makes sense to adopt a new idea in the middle of a software project

Poornima Vijayashanker: From their idea that they’re putting out there.

Jen Leech: Correct. Think about what that really means for the company as a whole. Then it facilitates them realizing assumptions that they have made or costs that they have envisaged, and when you get to the end of it, either you’re on the same page and you say, “That was a great idea, we should totally do that.” Or you’re on the same page and you say, “We should not do this.” And you’ve gotten there together. So that means that the person who’s brought these ideas to the table both feels like their idea has really been heard, and if it was an idea that you should not move forward with, they’ve convinced themselves. Then you can both move forward with whatever you agree is the right course of action.

How to instill confidence in teammates who are shy or reluctant to share their ideas

Poornima Vijayashanker: I think some people would be up to that challenge, they may even think through their idea, but you’ve got a lot of people who are, just say, eager beavers. They may be new to the team, maybe they don’t know this whole process or policies and just kind of blurt out in a meeting, like, “I’ve got an idea.” Is that an appropriate time to say, “That’s fantastic you have an idea, here’s how we operate. We do X, Y, and Z. So let’s have you walk through the implications, etc.?”

Jen Leech: That’s a really good question. Sometimes a meeting is the right time to walk through that—depends on the meeting.

Poornima Vijayashanker: Sure.

Jen Leech: A lot of times it’s not. And in those cases then I’ll usually say, “Oh, Kimmy, let’s take that offline. Can we talk about that later?” And talk about it independently. However, through failure I have discovered that when bringing new people onto the team, they often need a little bit of intro. In this particular project that I was describing from last year, there were some new people that came into the team, stepped into these processes, started presenting new ideas, and then all of a sudden were blindsided when people started really probing into their ideas, and they weren’t expecting it.

So then I had to take a step back and then I realized that I haven’t given them the appropriate context. And I sat them down and I said, “Hey, I realize I didn’t explain this, but in this team you should expect that we’re gonna really thoroughly look at new ideas that are brought to the table, and we’re gonna investigate them.”

Poornima Vijayashanker: I’d imagine it takes a lot of confidence even to just put an idea out there, so having it be shot down is going to impact people.

Jen Leech: Yeah, absolutely. What I started doing is I started having onboarding conversations, essentially, with new people who came onto the team to explain that we investigate ideas that are brought to the table really thoroughly, and that we do that with everyone. And it’s not any particular person, there’s not good, there’s no bad, we just wanna understand what this idea means.

The particular person who I was talking to in this case hadn’t yet seen somebody else go through the same process. Later on as we went through the process of exploring new ideas then it became more normalized. But I began having onboarding conversations with new people on the team to help them understand that we really investigate ideas really deeply, and that that’s normal, and it’s not to be taken personally.

When to stop entertaining new ideas, build a consensus, and get to work on your software project

Poornima Vijayashanker: So it’s great that people are proposing ideas and that you’re investigating them, but you remember from last time, we told our audience we would tackle this question. There’s gotta be a point where you stop investigating, you’ve gotta stop consensus building or talking about the ideas, start making decisions and put a plan in place. So let’s pick up that question.

Jen Leech: It depends on the problem but there are a few different approaches that you can use. One approach that I enjoy using is that of framing whatever question that we’re looking at in terms of a hypothesis. And saying, “Well, right now we think we’re trying to solve problem X.” And then when you really target the problem you’re trying to solve, it’s easier to hone in on the specifics of does this solve that problem. Then, either it does or doesn’t, then you can move on to the next thing.

When you’re dealing with something more complex, let’s say you’re dealing with a system that is sufficiently complex such that you can’t really say for sure what the result is gonna be, and furthermore, maybe you’re trying to solve problems A, B, C, D, E, and F. Then there are a couple approaches I use in that circumstance. One is to say, “Let’s build a quick and dirty prototype. Let’s try it. Give it a limited amount of time, and see what happens.” So you build out something very quickly. Ideally, you could do it in under a day, but it depends on what it is. And hopefully you’ve got your tools in place so you can do that. Maybe a week, but time box it.

At the end of it you then bring it back to the table and say, “Does it look to us like it’s gonna be solving these problems? And what did we learn from the process?”

Poornima Vijayashanker: So constraining the problem will hopefully constrain the conversation, and then creating a time box around when something is due will also create those constraints so that you stop that consensus building and get down to work.

Jen Leech: Yeah. And finding every piece of work you do, in terms of here are the problems we think we’re trying to solve, here are the solutions we think might work, and make everything an experiment, a discovery of new information. And the discovery, at the end of the day, might be does this work for our customers.

As you frame it in terms of exploration and discovery, then it becomes natural to not have to have 100% solution. Because what you’re doing is finding out.

Poornima Vijayashanker: It’s fantastic that you’re making this a discovery and that you wanna get out there and explore more, but there’s always that time where we think we’ve done a lot and still something comes up. Maybe even a customer says, “You didn’t think through this enough.” Or somebody on your team brings it up. What do you do in those moments?

Why it’s OK to constrain the problem space in your software project

Jen Leech: Right. I think of this as the curve ball question. You think that you have the right hypothesis, you think you have a good solution, and then all of a sudden something comes up that you didn’t expect and you find that maybe what you’ve put together does not satisfy a certain circumstance or certain constraints.

In that circumstance, I think of it as having a new problem to solve. And when you have a new problem to solve the first question that I ask is, “How can I learn more about this problem? Who is on the team that knows about this? Who is in the organization that knows about this?” Maybe there’s somebody in the finance department that can answer a question that we have. Who in the community can we talk to about this?

It’s interesting because I find that taking a problem and expanding it beyond the scope of the team is something that I don’t see nearly as often as I would expect, considering the fact that you have, clearly, a limited amount of information within the team.

Poornima Vijayashanker: Limited brains.

Jen Leech: Limited brains, limited experience. And so it would seem completely natural to open questions up to a larger audience. And yet, it’s easy for people to stay in their own little group and not necessarily bring in outside opinions.

This tactic is all about seeking new information. One example of this is when building this system that I was building last year. Some of the people who are gonna be using the system were data scientists. Some of them were experts on the data that we were processing.

Whenever a new component or a new feature came to the table as something that we needed to come up with a new design for, the first thing we would do is have kind of like a brainstorming session, but really more like an information gathering session where we would bring in everyone from the company, who might potentially have a real interest in the result or be a potential user of the product, and say all of the problems that they’ve ever had in this area that they want solutions to.

As an example, we were designing validations on data and we needed to understand a validation system existed before at this company. What did we like about that? What did we not like about it? And we had people who were not engineers, but who had to understand the correct use of the data, come to the room and tell us what their problems were.

This is a lot like user research. And then that led to a collection of problems that we eventually may have realized existed, but hadn’t really framed as the problem that we were trying to solve here. And it dramatically impacted the design that we came up with.

Poornima Vijayashanker: Let’s do another example for our audience kind of playing that out.

Jen Leech: Another really, really good example is that we were using a tool for building the system that wasn’t an open-source tool that had been built by Airbnb. It turned out that we had some questions about the right usage pattern, the right deployment pattern, some questions about how they manage the flow of data between nodes. And, coincidentally, it turns out that Airbnb was in the next building over.

Poornima Vijayashanker: Oh, great. That’s a great building by the way.

Jen Leech: Yeah, lucky. We contacted the maintainer of the co-depository and asked him if he would be willing to come and talk with us. And he said sure. So he came over and had an hour long conversation about how Airbnb uses the tool and various critiques and pluses and minuses of using it one way or another. And at the end of the conversation we had a much better idea of what things we were doing with it were good and we should keep on doing, and which things we needed to change. And it was about an hour of time for a huge improvement.

Poornima Vijayashanker: I feel like this also helps you from causing more bugs because you know how to use the tool, or going through that drama of, “I don’t know how this works.”

Jen Leech: It saves you an immense amount of time to just ask the right questions to people who know things.

Poornima Vijayashanker: That’s fantastic. Thank you again for sharing these rules with us, Jen.

Jen Leech: Absolutely.

Poornima Vijayashanker: Jen and I want to know when was the last time that you were managing a project and somebody brought up a change? How did you respond to their request? Let us know in the comments below this video.

That’s it for today’s episode of Build. Be sure to subscribe to our YouTube channel to receive the next episode where we’ll dive into how to keep your team motivated to stay the course and ship. Ciao for now.

This episode of Build is brought to you by our sponsor, Pivotal Tracker.

Build is produced as a partnership between Femgineer and Pivotal Tracker. San Francisco video production by StartMotionMEDIA.