In short
Dev Interrupted Podcast Episode Notes
Episode Title
The Essence of Shipping Code: a CTO's Perspective | Flowcode’s Mike Hamrah
Hosts
- Dan Lines (Host)
- Mike Hamrah (CTO at Flowcode)
Episode Overview
In this episode, Dan Lines engages with Mike Hamrah to discuss the core responsibilities of developers and tech leaders, specifically focusing on the act of shipping code. Mike provides insights into the current state of the industry, emphasizing the need to refocus on the fundamental purpose of development amidst complex methodologies and processes.
---
Key Discussion Points
- The Importance of Shipping Code
- Core Responsibility: Developers and tech leaders must prioritize shipping code as it reflects their contributions and value to the company.
- Industry Lament: Mike notes that the focus on shipping code is diminishing due to distractions from Agile methodologies, meetings, and planning.
- Happiness in Teams: Shipping code correlates directly with team happiness; teams that succeed in this tend to feel more fulfilled.
- Communication and Alignment
- Role of Communication: Effective communication is crucial for both individual contributors (ICs) and management. It helps in understanding the 'why' behind coding tasks and allows teams to align better with business goals.
- Empowerment vs. Code Monkey: Transitioning to management doesn't guarantee empowerment. Engineers should understand the product and the customer to genuinely influence outcomes.
- Navigating the Developer Experience
- Developer Experience (DevEx): Happy developers lead to effective code shipping. Organizations should ensure a supportive environment that values the contributions of engineers.
- Creating a Smooth Ecosystem: Leaders must cultivate a conducive environment that minimizes friction in the development process, akin to creating a smooth playing field for sports.
- Agile Methodologies and Their Impact
- Agile Challenges: Mike discusses the pitfalls of overly rigid Agile practices that may disconnect teams from the essence of actual coding and shipping.
- Focus on Outcomes: Teams must ensure that their day-to-day activities are directly tied to achieving meaningful outcomes rather than getting lost in process.
- Goal Setting and OKRs
- Daily OKR Discussions: Flowcode emphasizes the importance of constantly discussing Objectives and Key Results (OKRs) to maintain alignment and focus.
- Concrete Connections: The discussion highlights the need to translate high-level business goals into actionable engineering tasks.
- Engineering and Business Alignment
- Translating Business Goals: Mike illustrates how translating classic business goals into specific engineering projects is crucial for success.
- Resource Allocation: Adequate resources must be allocated to projects aligned with the company's strategic goals, emphasizing the significance of quantifiable outcomes.
Key Takeaways
- Shipping Code is Fundamental: The essence of a developer's job is not just coding but effectively shipping code that meets business needs and customer expectations.
- Continuous Communication: Regular discussions around OKRs can help teams stay aligned with the organization's goals and enhance focus on shipping the right features.
- Empowerment through Knowledge: Developers should be empowered with knowledge about the product and customer needs to foster meaningful contributions.
- Measuring Success: Using metrics to assess performance and bottlenecks can provide insights into team dynamics and areas for improvement.
---
Additional information
- Learn More about Flowcode: [flowcode.com](https://www.flowcode.com/)
- Flowcode Hiring: [Join Flowcode](https://boards.greenhouse.io/flowcode)
- LinearB Offers:
- [Start Free Trial](https://linearb.io/start-free-trial?utm_source=podcast&utm_medium=referral&utm_campaign=devint-shownotes&utm_content=shownotes)
- [Book a Demo](https://linearb.io/book-a-demo?utm_source=podcast&utm_medium=referral&utm_campaign=devint-shownotes&utm_content=shownotes)
---
Conclusion This episode of Dev Interrupted provides valuable insights into the significance of shipping code, clear communication, and effective goal alignment within engineering teams. Mike Hamrah's perspective as a seasoned CTO emphasizes the need for a strong connection between technical execution and business outcomes, while also highlighting the importance of fostering a positive developer experience.
Written by AI. May contain mistakes. Listen to the episode to check what was said.
Transcript
Automatic transcript. May contain errors.0:00And the thing that I've seen when I like talk to the community is the happiest teams and developers ship code. They ship code hosting, right? Yeah, yeah. So they go hand in hand. The ones that are unhappy are like, I've been working on the project for six months and it hasn't gotten to production. So it's like, I don't know what my worth and value is to this company. Are you an engineering leader and tired of constantly being asked, when will it be ready? Stay one step ahead with Linear B's project delivery feature. Our powerful dashboard lets you visualize key milestones, forecast delivery accurately, and align stakeholders effortlessly.
0:41With Linear B's product delivery, you can confidently showcase your planning, prioritize work effectively, and even make data-driven cases for additional headcount. Say goodbye to delays and missed milestones. Sign up for Linear B today and answer, when will it be ready, before anyone even asks. Hey, what's up, everyone? Welcome to Dev Interrupted. This is your host, Dan Lyons, Linear B, co-founder and COO. And today, we're joined by Mike Homra, CTO at Flowcode. Mike, welcome to the show. Hey, everybody. Dan, thanks for having me. I'm really excited to be here. Yeah, so awesome to have you with us today.
1:25You have more than 20 years of software engineering experience. But before becoming Flowcode CTO, you were a VP of engineering at BlueCore. You were a chief architect at Namely and a technical lead at Uber, you know, a small, little known company. Actually, these are like great engineering companies. And today, yeah, today you're joining us to talk about why the job of shipping code keeps getting abstracted away. what that means for engineers and the teams they work on. So we're going to dive into a bunch of those topics. But first, we always like to ask our guests kind of a little more about their background and their career and how you got into engineering and how you eventually became a CTO.
2:20Great question. I can't believe I've been doing this for more than 20 years. I've been definitely going through the midlife crisis and the midlife career crisis. as of late, I think a lot of us are in the, in the, as we're coming out of COVID, but I've, I've always loved technology. I've always loved building. My, my dad was a Apple computer reseller in the eighties and had a small business in the eighties selling Mac. So I kind of grew up around computers and I, I didn't really start programming until I was in college. And then when I entered the workforce, I was coming off of the dot-com bubble.
3:00So a lot of my CS grads were actually going into finance and I kind of stayed in tech and had an interesting job working at a Shakespeare festival whose director was a consultant that did programming for law firms. And he was like, needed some help. And I was like, I didn't have anything else going on. And it was a great first job because I really had to connect with customers, you know, being, being that young and just being like dropped in and having to chat with people and figure out what, what to do. It was definitely figuring out a lot of stuff, but that communication, which I think has enabled me to be pretty successful throughout my career and a forcing function of communication early, I think really helped me out.
3:42And then I stumbled upon a startup that was doing fashion imagery and entertainment imagery that eventually got bought out by Getty Images. And I worked at Getty Images, which wasn't on the hit list, but a very great company that I met a lot of wonderful people and I had a lot of wonderful mentorship on it and spent many years at Getty Images before I moved on to Uber because I did want to, you know, this little small startup. I joined in 2015. And if you've seen the Showtime show, I joined right before the Beyonce concert in Las Vegas. So I got to experience that. And Uber, I think, was a really great place.
4:24There are so many talented engineers that work there and the scaling challenges from an engineering perspective. I don't think that we actually talk about that enough and how interesting and challenging that was and how fast it was happening that you really had to be focused and sharp on what you were delivering and how you were delivering it, which I still have carried with me through Namely and through through BlueCore and now at FlowCode. That's so cool. You got to see the queen bee, Beyonce. I did. I did. Just standing somewhere and, you know, next thing you know, I'm like, you know, 20 feet away from a private Beyonce concert.
5:02It was, it was something else. You know, one of the things that I noticed in a lot of the, you know, CTOs or VPs, that style person that comes on the pod, you mentioned communication and customers. both of those words stuck out to me. And I think that's like a skill set that I see that people want to go on more of that management, leadership track, get into the C-suite. Think just for the audience, think about that. Get close to customers, understand the business. You have to have all the technical chops too. And then the communication skills. Yeah, and I think it's, yeah. Yeah, absolutely. And I, you struck something out, which I think is like directly to the kind of like the heart of, you know, what I'm passionate about is I see a lot of engineers wanting to get into the management track as an avenue for empowerment, right?
5:53It's like you feel like, hey, I'm kind of being told what to do. I don't really agree with what's going on. Like, why aren't we doing X? And you feel like the answer to that is to become an engineering manager. And the next thing you know, you're dealing with all of these problems that you had no idea what you're dealing with. And the empowerment that you thought that you were getting, you're not actually getting. And I think that communication is not just about management and it's not just about leadership. I've actually gone from IC to management in many times in my career. I was a manager at Getty and then I was a principal engineer.
6:32I was an IC at Uber. I was IC at management at Namely. I was full on management at BlueCore. But it all comes down to really understanding what are you doing and why are you doing it? And do you have alignment? And it doesn't matter if you're a manager or if you're an Eng Level 1 or an Eng Level 2 or a principal engineer. That context and that understanding and that communication and that really knowing who's using your product and what do you have to change is really important. And it's so key, I think, to that like Marty Kagan philosophy of empowered product teams that have control over their destiny and empowerment.
7:13And you as an engineer, can you prototype something or hack something or go in a different direction? And how supported are you in doing that? Yeah, great point. I mean, when you're an individual contributor, it's like your influence. And the way that you can influence more is knowing the business. And the way to know the business more is know the product and the customers. And then you're going to probably get people to move in the right direction. Yeah, absolutely. Absolutely. And I think, you know, the technology aspect, we focus a lot on, you know, code and technology. I want to learn Go. I want to learn TypeScript.
7:46I want to learn Rust. I want to learn Kubernetes. And those are all important. Like, you should know those. But those are tools in your toolbox. and like knowing Kubernetes or knowing Rust isn't, doesn't mean anything unless you're applying that effectively. And, you know, you can know how to use a hammer, but, you know, do you want to use a hammer to build a house or do you want to use a hammer to like craft a chair, right? Those are two very fundamental different things. And if you want to build a house, don't work at a place in a furniture factory because it's like, you're not going to be stimulated.
8:19But if you want the like artistic element of like building furniture, then don't go into construction, right? because it's like you're not doing what you want to do. And I think that there's a lot of interesting mismatches in how people are applying technology to the products and the industries that they're in. And that passion of being able to apply technology effectively to the product you're working on, I think a lot of people have to figure that out and find it. Because if you're not passionate about the work that you're doing, you're missing something. And I think that you don't really realize that you're missing it until it's too late.
8:57Yeah, perfect. It's a good time for everyone to take a beat after this pod and just think about it. Think about that. What am I doing? Is it, you know, my purpose and passion? The other thing, Mike, from your background that I wanted to ask you, and I know like CTO roles, they differ widely. It's probably like one of the titles that I can't say exactly what it means for every single business. And I actually don't know what it is for you. But I saw that you went from a VP of engineering to a CTO. And typically, maybe most of the time, when I think of a VP of engineering, it is more so, okay, I have a larger engineering team.
9:41I'm trying to deliver on a product roadmap. I'm dealing with a lot of people. And then sometimes, I don't know if it is for you with the CTO. It's like, I have a smaller team. I'm meeting with like, I'm trying to make sales, even meeting with customers and impacting the technology and the roadmap. Is there a reason that you went from, and I don't know if that's the case, but went from VP to CTO. Is there anything there for the audience? No, I really loved Bluecore and I wasn't looking for another switch. You know, I actually like BlueCore is very close to me because the CTO and co-founder of BlueCore, Mahmoud Aram, was one of my good friends.
10:25We actually met because we both have children of the same age and we live in the same neighborhood and our nannies that we hired for healthcare were actually friends. And so our kids were playing with each other. And I was kind of getting gossip from our nanny. It's like, oh, you know, he's in tech and his wife is a lawyer and my wife is a lawyer too. And we actually like saw them in Prospect Park. We live in Brooklyn. And I was like, I think that's, you know, who our son plays with. And we introduced ourselves and we just we hit it right off the bat. And I saw BlueCore at the time. This was in 2014.
11:00I saw BlueCore go from kind of having like an office WeWork space a little bit. just getting started to like the massive growth spurt. And I was just starting at Uber at the time and I was, you know, befriending Mahmood and, and we were exchanging like technical growth ideas. And, you know, they went through a round of funding. I went to Namely and eventually the paths crossed that Mahmood was like, you know, please, you know, finally join me. And I was like, I have to, I have to, you know, work with him because we're not going to be friends anymore if I keep on telling him no. And that company, you know, we went through a series either over the past two and a half years.
11:37It's a great product, data science as a service, really great team, great, great people. And it was hard for me to leave because I was so closely connected to it. But there was this opportunity that came up to join a QR code company. And I was like, you know, QR codes, like, how is that a business? I didn't really understand it too much. But as I learned more about the company and the product, I became fascinated. And the company has like six core cultural values, but the one that stood out the most for us is the team is the product and the product is the team. And we are a very early stage company.
12:13The product has transformed itself. And the teamwork that we foster there was so strong in the interview process that I just, I really wanted to be a part of it and be a part of what I saw was something incredibly special. And then on the product side, you know, QR codes for us is really an entry point into a much larger experience. You know, we say you're in the real world all the time. You're walking around, you're going to restaurants. You know, I love living in New York City because there's just so much to experience. And QR codes, you know, you think about, oh, just like I'm scanning a QR code.
12:50But for us, it's really this entry point onto a much larger platform and much larger experience where I scan a QR code at an art gallery. I can learn more about the painting. I don't need to go to Google and search. I don't want to go into a product pitch. Just stop talking. I like that. But I was personally very fascinated and very passionate about the project, the product. And being there a year now, and it gets into your DNA, and there's all of these possibilities that we talk about. But it's, I'm very lucky that I've loved all of the companies that I'm working at. And this was an opportunity that I just didn't want to pass up, which led to it.
13:25And it was a flex, right? It is that leadership, it's supporting people, it's all of the wonderful excitement and messiness that goes with early stage startups that, you know, if you're listening and, you know, you're pre-seed, you're Series A, Series B, you know exactly what I'm talking about, that you're just going through and you're doing it with people that you really care about and that you're excited to work with and a product that you're passionate about, which is what you really need, I think, at any company, but certainly to make early stage startups successful. Yeah, it's like the same message that you've said from the beginning, which is like, choose projects you're passionate about that will probably lead to career success.
14:04Well, the first topic is around shipping code. And maybe that it's getting abstracted away a bit. which I think, you know, you've said a few times here, the job of the developer, of course, is to ship code, but maybe you've noticed a trend across the industry that it's getting abstracted away a little bit. Can you expand on what does that mean and what are you seeing? Yeah, absolutely. And I think like this is definitely materialized as I've gone again into that early stage startup where shipping code is paramount, right? But not just thinking about 18 million different ideas and how do we kind of create chaos, but making sure that we're doing the right thing.
14:51And I think that at the end of the day as developers, and I think that this could be like a controversial statement, but even like my job as a CTO, it's to ship, right? Like if I'm not shipping code and not having my team ship code, I'm not doing my job. Even if it's fixing bugs, like in order to fix a bug, you have to ship code. In order to develop a feature, you have to ship code. And certainly if the only thing that we're doing is writing code, that's bad because it's like, what code are you writing? Do you have? And we'll get into that in terms of like context on it. But I think that the thing that we're really like losing out, having been on 18 million different stand up meetings and sprint planning meetings.
15:35And, you know, I think this is the curse that we're all realizing of Agile is we kind of forget that our job is shipping code. And if we're not talking about what code we actually have to ship or what we're changing with our product, and we're getting down to that essence of like, what are we changing and how do we do it in a way that we can keep on changing it without coding ourselves into a corner or causing a lot of technical debt, we're not having the right conversations and And we're not contextualizing the work that we have to do effectively. Now, certainly like there's 18 million, like, you know, do we go in down this road or this other road?
16:17There's certainly like alignment on it. But all of these things that we're doing, all of it comes down to, can we ship code faster, right? Is like, is using the CD pipeline going to help us ship code faster? Is using Argo rollouts going to help us ship code faster? Is using Kubernetes going to help us ship code faster? Is using this framework going to help us ship code faster, which ultimately means make product changes easier and better and make all of our lives easier? I know what product changes do I have to make, and can I do it effectively, and I do have that right context in order to do it.
16:49And we lose sight of that, I think, too much in the process ceremony that inevitably happens with trying to organize efficiency. Yeah, no, I mean, you're kind of preaching to the choir here because for sure on this pod, if you think about the purpose or the mission of a great engineering team or even what does an elite engineering team behavior look like? it's that we're shipping code rapidly really really high quality and it's in the mission of company value that's probably the the other key there or the art of it is how much value are we able to shift you know uh ship is it in the you know with the right goals and all of that yeah and you know obviously for us at linear b we're measuring this kind of stuff we're finding bottlenecks, you know, our customer base is obsessed with it.
17:50Yeah. But it's what's funny is you said, hey, this might be even a controversial statement. And and and what made you kind of like double think that is it like the agile ceremony stuff or like because I know for your team, you're measuring, you're measuring, you have. Yeah, I was just going to say, like, look, I'm here like I use linear B like one of the first things that I did when I kind of came on, you know, certainly like not on day one, but after just, you know, getting my bearings as I brought Linear B to the organization, because I love, like, I love the DevOps metrics. I, you know, I want to try and address into like the Dora metrics versus the space metrics versus, you know, DevX and how as an industry we're evolving in the metric space, but I love linear B because it takes a code first view of engineering teams.
18:44Right. And the reason why I say like shipping code is controversial is nobody wants to be treated like a code monkey, right? Like we're not talking about just arbitrary people like keyboards, just, you know, banging away. Like, and I think that's the controversial statement is that there is a fine line between our job is to ship code to being treated like a code monkey. And I've, I'm a huge Marty Kagan fan. And if you haven't read his books, Empowered and his blog, Silicon Valley Product Group, I definitely do that because that was very eye-opening when I came across him as an IC. He talks about the difference between feature teams and product teams.
19:24And if you can get into the product team mindset as an engineer where your job is to ship code, it's much different than being treated as a code monkey, which is not what anybody wants, right? Like I want empowered people, autonomous people, supported people that are bringing their best ideas to the table and know how to get them in front of customers and want to get them in front of customers. And the thing I like about Linear B is it helps teams take a code first view of the work that they're doing, right? It's like if you're shipping code that is not associated with a shortcut story because it was like this left field bug that came in and you're just like getting it done, you see that, right?
20:05So you see how well you're planning versus executing and how well your interrupts are doing. If you have a PR that you need reviewed at standup, you see that, right? You're not looking at a shortcut ticket that you forgot to move into ready for review and who's going to assign it. And that whole team is really rallying on this code first view of how your day-to-day and how the team is unfolding. That helps with the shared context of how are we changing our system and how quickly can we get that system into production? And what is our true bottlenecks in that lead time, cycle time, release time, failure rate that is preventing us from having like the momentum that is going to help shape future investments very clearly in terms of what the work the engineering organization has to do.
20:56I remember when I first started developing, there was that whole code monkey thing. yeah, we don't want to be code. And I usually only see that when engineering is like really disconnected from the business because it's kind of like, okay, engineering, we just tell you what to build and that's it. Yeah. And so I think if you have like a decent culture of your engineers should be able to impact the product, your engineers should be able to, while they're working on a story, give a better suggestion, get on to cut. Like usually you can get out of that that code monkey mindset. You mentioned something else that's interesting, which is that DevEx or like developer experience, which is something that it's kind of like a buzzword of interest right now.
21:41But what it really means is developers are vital to our business. Therefore, we want to make sure that they're having a wonderful experience and are happy. And the thing that I've seen when I like talk talk to the community is the happiest teams and developers ship code and they ship code right yeah yeah so they go it's hand in hand the ones that are on yeah the ones that are unhappy are like i've been working on the project for six months and it hasn't gotten to production so it's like i don't know what my worth and value is to this company yeah so it's good you think it's good it goes hand in hand right yeah yeah and i also think that the friction that you experience And I mean, I, so many times I just wish I had a magic wand that could just fix stuff.
22:32Right. And I know that, you know, a lot of people like, and I think that this is one of the love and challenges of being a leader is like, you know, I know that people are like looking up to me to like help solve systemic problems. Right. And deal with frustrations. And as much as I wish I could snap my fingers and just make everything like better, you know, I can't like, we have to work together. We have to prioritize. There's only so many resources. We have to figure out how to do stuff. And that experience of together goes into the teamwork and the camaraderie that we have to foster and just that ruthless transparency of what do we need to prioritize?
23:10Do we have a solution for this? Okay, we don't know how we're going to fix it. What can we proof of concept? How can I represent and communicate that to the rest of the business? why the team had a bug that they had to swarm on this weekend and we're going to be delayed this week and how do we eliminate the failure rates and all of that stuff, which is like the system that you're creating for success. And in any system, there's entropy where things, even if it's perfect, things will naturally degrade and you have to deal with that ebb and flow of, I changed something, I have to react to it, I have to fix it.
23:44Okay, we're in a swarming, storming phase. Okay, we're in a plateau phase, we're in a scaling phase, and just dealing with all of those transitions in order to stay focused on shipping code. What do I need? What's the pain point that we need to remediate? Let's prioritize that. Let's see how it changes the system and move on from there. I love the way that you described it because for engineering leaders, like you're a VP, you're a CTO, or you're like a director at a big company. It's almost like, I don't want to say like God power, but you're like creating this, uh, field or this world or this ecosystem that your developer or your development team is playing in.
24:28And the field hopefully is very smooth. Like if we're doing sports analogies, nice turf, it's easy to pass the ball. Yeah. It's, uh, easy to like shoot at on goal, like soccer or something, something like that. Or if you're in a situation you don't want to be in, you've created this world where it's bumpy. It's hard to get code out. It's hard to do a good pull request review. It's hard to actually push the shit button. It's hard to test. And that's it. When you were talking, that's kind of like the mind I had, the mindset I had. Do you see it that way? Like you're creating this like playing field?
25:06Yeah, totally. I mean, I think like, you know, having again, like lived in Brooklyn, And I like the urban studies or like civic analogy, right? Where it's like, I want to be able to walk out the door. I want to be able to get into the subway. It's, you know, totally clean. My tap to go works. The train just is right there when I get on. I get a seat. I go in, I get to where I need to go. But it's like when, you know, it's like raining outside and I forgot my umbrella and my tap to go doesn't work and the trains are delayed and it's like super crowded because the trains are delayed and then there's a signal failure.
25:43So the train gets rerouted and like, you know, your whole day is like, it's like developing is like the same way, right? But it's like, you're never going to consistently get that like, you know, green light everywhere and, you know, like fixing a signal problem in the New York City subway. It's like, it's a massive change, which is like the same thing. like if you have a huge monolith or you know or mono repo and you know like those those tests that you were adding caused cypress to take kind of too long and now you're scaling up your infrastructure but then your costs are too high so like and you have to like do this massive refactoring it's like that's just like all normal stuff that that is never going to go away and you just have to make sure that again like you're dealing with it you're not letting things fester you're being transparent about what the priority is to just make it as successful as possible.
26:32And the theme that I always see that I try to preach as much as possible, and I actually need to revisit this, is don't be afraid to refactor. And I think that it doesn't matter if you're refactoring your code base or you're refactoring your sprint processes or you're refactoring your infrastructure is if you're afraid to refactor, it's just an inevitability of problems like later on and where you can really focus on healthy refactoring and get that into your code base and get that into your practices. It's going to just help keep curation running because like running a complex pipeline of like even more than a dozen engineers, you know, where we're at, you know, 40 plus engineers at Flowcode and I've, you know, seen thousands of engineers organization teams.
27:22It's like, it's a lot, it's just like running a city and like making sure there are no potholes in the streets. And how are you prioritizing all that? It takes a lot to like maintain and like run that infrastructure. And it's not always going to be pretty, but you just, you have to stay on top of it as much as possible and stay focused and make sure that you're manicuring your lawn or your garden as best you can. And of course, like when you talk about signals, all of this stuff is measurable now. You're up to like 40 engineers, then maybe you're growing again. Things are good, double in size.
Read the full transcript
27:52It's harder to get these signals. They're all there for you. I do want to take us to the next area. I want to talk about goals with you. Yeah. And aligning either engineering goals or goals to the business. Like, how are you approaching that at Flowcode today? Yeah, absolutely. Because this is fundamentally the most important thing, right? It's like, we can talk about shipping code, but if you're shipping the wrong thing that's not helping the business, you're working hard, right? But you're not actually aligning to the outcomes that you want. And it's probably no fault of your own, right? Like, yes, you know, of course you can, as the manager, we'll get more aligned, you know, like pay attention.
28:33But it's like, nobody's like, I'm actively going to derail our business, right? Or like, you know, like maybe somebody's, messing around with a new language when they should be shipping something, but that's usually more of an isolated incident. I mean, everybody really means well. They are doing the best of their ability in order to do what they think is right. And so the question is, how do you give them context? And we're a huge fan of OKRs at Flowcode. I've used OKRs at several times, but I think that the interesting thing at Flowcode that we do with OKRs is we talk about them constantly. Like every day, what are our OKRs?
29:16Are we moving to our OKRs? How do engineers or anybody in the company know exactly how they're tying to the OKRs? Which gives the most fundamental thing when it comes to talking about like, are we shipping code? Is like, are we shipping the right thing is do we know what our business alignment is and then what is our strategy to execute on those goals and are we following and aligning to that strategy or are we kind of unintentionally going down a different different path and so thinking about okrs and just talking about them every day because i've worked at companies that have had okrs and we just like we didn't talk about that like before like it's like you talk about them at the start when you're forming them at the quarter and you talk about them at the end of the quarter but in the middle you like you just forget about them right and then all of a sudden it's like you never moved forward over your okrs and there's like 18 million like yeah buts why did this happen and so talking about them and looking at them in our stand-ups and making sure that as we're planning sprints or we're thinking about roadmap items we to the best of our ability feel like the work that we're doing is going to advance the okr and if not and we're calling it out we have to reset.
30:30And the deliverables that you're talking about, we have to shrink it down. And this is like, you know, the phase that we're at now, it's like I'm constantly talking about how do we take this goal or this idea or this strategy that we think is going to help execute and improve our key results and our objectives and shorten that into some signal that gives us confidence that we should continue. Because if that's a six-month project, too slow too long if that's a three-month project too slow too long right and a lot of the work that does kind of like take some time that like yes detracts against shipping code is like what is that milestone that we're trying to hit but again we're not going to hit that milestone if we can't ship code faster right so that alignment and that entropy and that context is really important, which is having a fanatical level of detail of what we're doing, de-risking that execution as much as possible, and then trying to validate it as fast as possible.
31:35That's amazing. I got to ask you a few questions here. Usually when I see like an OKRs at the business level, so we're not talking like engineering, but like the CEO comes on, oftentimes they have to do with like dollars or something like that. So it's like, we need our net ARR or a new ARR to be this. And then we need our retention numbers to be this. And then we have like pipeline generation for marketing and then, you know, customer success, support. And then maybe sometimes it's like, we need to deliver on a certain project. But do you have any tips of how you're like translating kind of classic business goals?
32:17Do you do like business goals, projects, engineering execution, or what are you doing there? Totally. Like, it's like, the question is like, how, right? This is exactly, I think, where companies focus on the wrong thing. It's like, we have this business goal. You know, we want to be the best. And we know that we're going to be the best if we are, you know, number one in X, right? Like, that's not an objective and a key result, right? And like, you know, don't tell me to go read, measure what matters and that because it's like intelligent. It's like, that's all like, you know, much of this stuff is the more concrete example is like, okay, you want to increase revenue by X.
32:56How are you going to do that? Like, what is your goal? Right. And, and can we have a conversation where we're connecting the dots? Cause we've done the due diligence. That's some change. And we're projecting that some change because it's like, we've talked to our customers and we know how many people want this feature and we've done a projection on like what we can charge for it or like what the cost reduction needs to be. And are we aligned on the how as a company, as everybody in the company knows what the how is. I'm not talking about like a prescriptive, like, okay, I'm, I'm like, here's all of the requirements and I'm sure.
33:35And we have to like check the step, but it's like, it could be something as simple as like lowering or improving our NPS score, right? Do we know what the biggest aggravation in our product is of NPS? And do we have proposed solutions that we've like maybe done a Figma mock-up and shipped it to the people who've complained about the most and get a read? Can we refactor something in our user experience that we think is going to move the needle on the NPS score? And can we even get a better signal of validation? Like maybe the amount of users that are going through this journey, we need to improve.
34:15And can we make a change to like improve that number? That is just the fanatical level of detail on the how and the alignment where everybody knows and we're constantly talking about like what piece of it is there. And as a counter example to this, it's like I've had, I've seen two different departments have their own department OKRs that both rolled up into the same company OKR that were totally different and totally kind of going to like negate each other. Right. Like both wanted to increase customer happiness. And this team was going to do a bunch of manual stuff in order to work much harder that they thought that they were going to do a brute force attack in order to like fix customer happiness.
35:05And this team was going to automate something that was completely opposite of what the manual team was going to like put in place. and nobody was catching this, right? And so like this team burnt themselves out with an inevitable goal. This team couldn't deliver what they needed to do because this other team was undermining the work that they were trying to automate and it just wouldn't work. And like both thought that they were completing their company OKRs. But what we weren't talking about was the how and clearly communicating the how and getting alignment, which goes into that fanatical level of detail of what you need in order to like execute and move the product accordingly and vetting that that was the solution we're going to get behind and making sure that everybody was aligned and we weren't doing anything to integrate it.
35:54I think like a great, if you want to like improve NPS, we're talking about customer satisfaction, let's say, or customer retention. The cool thing with engineering is usually it relates to like a product or like a project. So you can say, okay, we want to increase NPS by X amount. Usually that's associated to something in the product that we need to improve. And when you're thinking about engineering metrics, you can say, okay, first and foremost, do we have enough people allocated to that project? Yes or no? Got it. Okay. Yes. Now, do we have goals and milestones? Because usually there's a timeframe of when we need to deliver.
36:34It's not infinite. It's like this quarter. Okay. We have project milestone. So now you can say in order to deliver quick with high quality, yeah, we have to have great cycle time and less bugs found in production. So we're not swarming over the weekend on some different. So it's like it all kind of relates together. And I would just say my advice, because I love like the detail that you're getting, is to make sure that your engineering organization has goals on those details of enough people on the project, project delivery milestones, zones, engineering efficiency and quality metrics, and it all rolls up to that business goal.
37:12That's what I've seen be successful. Yeah. And I would actually, I would just do a little tweak where I think that you have to start with the goals and you have to start with like the champion of, of who can really own that and make it happen. And then you can talk about resourcing because it, I think that like a, one of the, the misalignments is like, you know, you throw too many people at it and there isn't that consensus of how you're going about it. Like people feel like you're spinning your wheels and they're not kind of tied into it. I do think that you have clear ownership and you could start small.
37:46And then the real question is, is do we need to accelerate this roadmap or these goals? And would more people help that? Right. And then how do you divide it before you just think that like throwing more people on any one problem is going to fix it? It could be a yes. It could be a no, but at least no. Yeah, exactly. Yeah. We could probably spend a full pod just on this topic. Maybe this is an invite back. An invite back. But we're going to have to wrap it up for today. And before we go, definitely want to give you an opportunity to let us know what's going on at Flowcode. How can we sign up? How do we get involved?
38:31Absolutely. So I definitely obviously visit our website, flowcode.com. I think the thing that is interesting from my standpoint is, you know, people think of QR codes as like, oh, I use them to like scan a menu and, you know, I get a PDF. But we see such success across so many different industries that can get the direct connection from things in the physical world to like understanding and promoting your business. And it could be something as simple as, you know, you're a restaurant, maybe you're using them for QR codes, but you put a QR code in your window and you're closed. You can go to a mobile optimized version of your website.
39:11You can sign up for a mailing list and get deals and specials there. You run a yoga studio. You want to put your class online to see what's there and available. It's like, you don't have to, what was the name of the yoga studio? And I'm searching Google and I'm doing my, I have to like get my advertising spend. It's like a headache. It's like really leverage just how much foot traffic and how much presence there there is. And I love the technology because it's such a seamless enabling experience. Like I never want to have to enter in a URL again. Like I sharing my contact information, you can scan a QR code, get my get a V card with with all of my data on it.
39:48You can find me on LinkedIn very seamlessly. And I as just somebody who just like loves technology and making things easier, this whole platform that I encourage people to explore and you can definitely apply it to whatever it is you're doing. It's so enabling. And it's funny because it's like it's huge in Asia. It's huge in Europe. But I think in the United States, we're just starting to incorporate it and really use it as a tool to just drive connections, which, you know, like anything, it's just like connecting with people makes everything more fulfilling. Well, I guess if you're in the US and listening, let's show a little more love to Flowcode.
40:28And probably if you're looking, you know, developer for your next opportunity, it sounds like with Mike, a wonderful culture and place to work. Mike, thank you so much for coming on the show today. Absolutely. It's great to be here. And thanks for listening, everyone. I hope you enjoyed this conversation as much as I did. If you haven't already, please remember to rate and review the pod. It only takes 30 seconds, and I promise it means the world to us. Thanks again, everyone. We'll see you next week.
From the publisher
On this week’s episode of Dev Interrupted, host Dan Lines speaks with Mike Hamrah, CTO at Flowcode. Together, the two detail the fundamental responsibility of developers and tech leaders: shipping code.
Mike shares a candid view of the industry's current state, lamenting how the focus on code shipping is getting lost amidst the complexities of agile methodologies, stand-up meetings, and sprint planning. He urges developers and leaders alike to recenter their conversations on the essence of their roles, serving as a call to action in the episode and reminding listeners of the importance of understanding what code needs to be written and the purpose it serves, all while avoiding detrimental practices that can hinder long-term development success.
Dan and Mike end the episode with a conversation on goalsetting and OKRs, translating classic business goals into engineering execution and emphasizing the need to turn general business goals into concrete, actionable plans.
Show Notes:
- Learn more about Flowcode at flowcode.com
- Flowcode is hiring!
OFFERS
- Start Free Trial: Get started with LinearB's AI productivity platform for free.
- Book a Demo: Learn how you can ship faster, improve DevEx, and lead with confidence in the AI era.
LEARN ABOUT LINEARB
- AI Code Reviews: Automate reviews to catch bugs, security risks, and performance issues before they hit production.
- AI & Productivity Insights: Go beyond DORA with AI-powered recommendations and dashboards to measure and improve performance.
- AI-Powered Workflow Automations: Use AI-generated PR descriptions, smart routing, and other automations to reduce developer toil.
- MCP Server: Interact with your engineering data using natural language to build custom reports and get answers on the fly.
