From the ExperiencedDevs subreddit, this Redditor wanted to know if working on one project for an extended period of time is normal. Should they be working in more areas, or is it good to focus on one area as a software developer?
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
Hey folks, I'm just leaving the office here. This is going to be a million years to drive home, which is great. Um, going to experience devs. They have a thread that I should probably check in on more often, but it's like the thread where um, non-experienced devs can ask experienced devs things. And so, I figured that'd be a good spot to check. This one is from a person who was saying that they've been at a company for four years. and they've really only worked on one project according to them. And so they said, "Hey, I see other people talking about like working on a bunch of different projects and stuff." And they're like, "Is this is this normal? Like what is normal?" And so I figured that might be kind of interesting to talk through. Um, if you're new here, I try to answer people's questions in software engineering and career stuff as best as I can.
I am just sharing my experiences, my perspective. I've been an engineering manager for 13 years. I currently work at Microsoft as a principal engineering manager in the Office 365 space, particularly on the routing plane team, but I've also worked in startups. I worked at a digital forensics company for eight years writing code and managing teams. And so I still write code every single day outside of work. I love programming, but I don't code at work. So, again, if you're new here, that's me. So, um I don't really I don't really have this prepared, right? Sometimes I just like read these as I'm getting into my car and go, "Hey, that sounds interesting. Let's talk about it." So, when I was thinking about this one, like I wanted to start by saying I don't think that that's totally normal to work on the same project for 4 years, but like I mean, what does that mean, the same project?
Like, is it the same product, same service? Um, and also that like that's not necessarily like a bad thing. It's just like I don't think that that's super common. So, I wanted to start by kind of maybe defining some things here just so we're all talking about the same things. And when I say all talking about the same things, I mean me because it's just me talking. But when I hear the same project for um you know for 4 years, I'm thinking like a feature or set of features or something like tying it together and that's a project some deliverable. So when I hear that for four years like that seems a little odd but also like some people might say I'm just giving you an example like hey this started off as like a project but this grew into something much bigger and it
is its own whole own product or own service and like yeah like maybe that is a little bit more you know realistic but you know it it's all like these things are always like on a spectrum of like you know what do we we go to define them because if you take the other sort of end of the spectrum of like hey I was you know I had to deliver a feature and like you know you're building some part of a UI or something or you're adding some capability to a service and that's taking you four years to do it like probably probably something else going wrong here but I don't think that's what this person's after. I think they're probably saying, "I've been working in the same space for 4 years." And they're calling it a project because it might be something that maybe when they started the scope of it was was smaller.
And so I don't think that that's totally common to be in the exact same project for four years, but I could certainly see working in the same area for four years. And um so you know to short answer to their question is like don't think it's common but I also don't think it's a problem. And the the thing that I think is probably more valuable is for us to think about like what does it mean to be in an area for you know an extended period of time because I think there's pros and cons to it for sure and it will highly depend on you as an individual. It will depend on you know the the project or the product or the service. and um I mean some combination of those factors. So like maybe it's worth kind of talking about pros and cons of being in the same area, right?
I'm going to start changing the terminology a little bit because if I call it a project or a product or a service, I don't actually know the scope of this. So I feel like I need to use different terminology so I can refer to it like more sort of generically. And then you can adjust this kind of perspective based on your own situation right if you're like no I am working on a single you know feature area for four years like okay uh or if it's a product or a service and you're like yeah maybe the scope and scale of this makes more sense I'm just going to call it an area you're working in a particular area okay so if you've been working in a particular area for an extended period of time I think you can definitely have some pros to that and obviously some some drawbacks But let's talk about the pros cuz I think there is a bunch of stuff to cover here.
Um, so first of all, I think that if you're working in a particular area, what happens is you get to build up some expertise in that area. And that means that especially if you are, you know, starting off as someone more junior, one of the things that we often do with more junior developers is we put them into scenarios. Oh man, come on. I got to switch lanes. but put them into scenarios where like their um their scope of work is not ambiguous. It's like well understood and that's because we want to set them up for success. We don't want to give junior developers something where it's like hey buckle up like no one has any idea what's going on but like hope you figure it out and we'll see you know in standup next week when you've ultimately most likely failed. It's the exact opposite ideally right?
We want to give people that are more junior easier things to understand, easier things to work through. I I shouldn't say easy. I should say uh I like differentiating simple from easy or straightforward. It doesn't mean that it's trivial. It just means that it's less ambiguous and less complex. We like doing that. There's a reason we do that. And it's so you can build momentum, you can build independence, you can build confidence. you know, these are things that you continue to do more of and you can work on, you know, more complex things. So, I think that when you're focused in a particular area, what's nice about that is that you can start to remove a ton of variability and that means that you can kind of understand an area more and more effectively. you can become a subject matter expert in that area more effectively because your time and attention is dedicated to a more specific spot, right?
That means that what can happen is that when people need to also work on that, right? new new team members or something's wrong and there's live site issues like or people have questions like you can be the go-to person because you have spent a lot of time relatively speaking compared to other team members that maybe have worked across a whole bunch of different projects and not really been anchored to a spot right just to give you an example and because this is like real I'm not going to give you the specifics but just real sort of situations. I've had employees that have um you know they've worked across such a variety of things that they actually feel like disjoint. They feel like I don't really have ownership of things or there's not consistency or like and it's actually kind of troubling for them where they're like it feels kind of weird, right?
Like I don't feel like I'm an expert on any of these things because I've been all over the place. And then I have other people that have been anchored to a spot and they feel like, you know, over time they're building expertise. Um, we'll talk about the tradeoffs in a bit, but like I just wanted to share with you like this is I've literally encountered this with employees. So something to consider. So you can build up some expertise in an area, become a domain expert. I don't want to say more easily, but like it's a little bit more straightforward for that to happen when you're just focused in an area. Um, I think that if you're working on something that is high impact, right, so it's important for the business, like that could be really good to be like stuck in that area for an extended period of time, right?
You're, you know, oh no, you're stuck in an area that's really important for the business. Like that's probably a good thing. Um, but it also means that like, you know, do you enjoy it? Is it of interest? Right? So having the ability to say in an area with high impact um can be very beneficial for progression. You um can kind of get visibility, I don't want to say like automatically, but maybe a little bit more um naturally, a little bit more automatically, but I think it can also be a huge benefit if you're like really into the area, right? Obviously, this one can backfire completely. And for both of these examples, like if you're in a like an area that seems like it's not important, doesn't get a lot of visibility, and you've been there for four years, like that kind of works against you. Um, if you're working in an area and you're like, I hate this.
Like, I'm kind of stuck here, but I hate the work I'm doing. It's not interesting. I'm not learning. I'm not challenged. Like, yeah, that's not a good spot to be. Um, so I need just a moment to switch lanes here cuz I got to get my brain turned on. There's too many big trucks and I have to decide who I can squeeze between cuz obviously sneaking in front of them is not great if you're too close. But if you're behind them then I'm not going to be able to get up to speed. And we got to get up to speed to get in the fast lane. One more. Let's go. Let's go. For the people that watch these, but they don't actually watch. They just listen in the background. They're probably like, "What the hell is going on?" But, okay, let's go. Rock and roll. Fast Lane.
Okay. So, um yeah. So this stuff can like work in your favor, work against you if you're finding like um you're working in an area, so you know, starts off as a project, continues to grow in scope, maybe it's a whole product or service now, and you're like, "Hey, there's lots of really cool here that I like to learn about. It's a good challenge. I feel like I'm constantly learning. Like, this could be awesome for you." And I think that the way that I would look at this kind of stuff I'll save it um because I want to talk about the cons and then we're we're going to kind of bring it together. Um so park that thought, come back to it in just a sec. Let's talk about the cons. It's basically the inverse of some of the things I was talking about, right?
So um you're working in an area and so you're you know for 4 years or extended period of time and so what might happen is that uh and I've seen this happen as well you're in an area and you have to go on call but you have to go on call for a broader part of your team. What might happen if you haven't had a lot of exposure to the different parts of the team is that like you actually find it very challenging to go understand different areas right so this again real examples like I have people on teams where they've worked in particular areas for an extended period of time our on call shifts my current team and my previous team you're responsible for for the whole purview of like what our team is responsible for. And that means that you have to support things that you don't actually actively work on.
Doesn't mean that you have to go fix all the code for it, but like you have to work. It's we have a live service. So, you have to be able to at least mitigate things. Um, and that's that's part of being on call. Now, for folks that have only been in a certain area and hyperfocused in that with basically zero exposure to other things, they can find on call like that really challenging. they're like, I don't even know what this thing is. Right? There's some, you know, some more simple things that you can do to try to improve that. But that can be one challenge. Uh might also be that the um you know, by putting yourself into a very particular area, even if you enjoy it, you might not necessarily be getting the breadth of skills, the breadth of experience. Right?
So it's again like I was saying it's kind of the inverse of some of the things we talked about just before this just really going to be the context right so just to give you an example right um I'll make something up you're a you're a developer and you're working at a company that has an application and it's a web app so there's you know there's a database there's uh some some backend stuff with like an API server there's a front end maybe there's a mobile app I don't know Um, if you are working on a particular area for an extended period of time, you might not be able to get exposure to some of those other things. And like from a career growth perspective, that might be that like, okay, you're you're on the mobile team and you're like, I don't get to even see any of the database stuff.
I have no idea what the server is doing except for when I talk to that team and we're talking about the API calls or something. It all depends on how things are structured. But if you're kind of on a single project for a long period of time, you may not have these other opportunities. And finally, just to like again touch on the um like interest, the impact, right, the learning opportunities. If you're working on something and you're feeling kind of stuck there and those things aren't lining up for you, that can be problematic and work against you, right? Oh, you work on that thing, but like it doesn't get a lot of visibility. Kind of seems like it's not that important for the business. That's probably not going to be great for demonstrating impact. It's certainly not going to like make it, you know, straightforward to talk about impact.
Um it might be that you are not interested in it uh because of that or because it's not challenging or technology you'll be disengaged. So like almost naturally your performance will kind of decline from that cuz you're like kind of just do what I got to do but I don't really give a about it. Um you know not interesting challenges or the tech is not something that you are particularly interested in. Again can lower your engagement. So overall, it's kind of like at some point if you're in that area, like is that really a good use of your time from like a growth perspective? And the answer is like it's going to depend on a bunch of those things. So let's switch gears to that now, right? So talked about some I I realize these are very simple, but I think it's good to kind of go through, but talked about some different pros and cons.
So like I think you need to go do some of this reflection. You're not supposed to go over the line like that, buddy. That's illegal. I'm telling. Um, I'm not actually going to tell him, but So, you you know, you've been working in the area for a while. Like, has the thing that you've been working on, is that growing in scope? This this project, is that growing in scope? Is it having impact? Like, is it helpful for the business? I would be inclined to believe yes if it's something that you feel like is growing or else wouldn't they have like not needed to have it been worked on for for years. Um the other thing is too like maybe after that period of time it went from being like new and shiny to like kind of like a maintenance kind of thing but maybe that's not so bad either cuz maybe that's what's you know generating cash for the business.
So I would go through this and do a bit of reflection in terms of like the significance of that project, the area for the team you're on and like the business impact and then I would I feel like more importantly do this reflection for yourself. Do you like what you're working on genuinely? Right? Like are you like whatever I just do it because I'm stuck here or like is it something where like yeah it's pretty cool. Like I think it's I think it's interesting or I see the impact that it has and that's interesting to me. Like do you enjoy it? I realized from few other videos like uh someone even commented like is it even realistic to expect that we like enjoy enjoy our work? And I'm like, I don't know if it's realistic, but I would highly encourage every single person that I can possibly reach through any video or any content I make.
Like, if you don't enjoy what you do, I would urge you to continue to keep looking. I don't mean drop everything, but I mean like don't give up on looking for something where you feel like, hell yeah. Cuz I do think that there is something like that for everyone. But to the person who asked, "Is it realistic?" I'm like, I don't know if it's realistic you ever get there, but I would think that it would be I don't know like a very unfortunate life story to be like I gave up looking and just like kind of did the thing and didn't really find like enjoyment in my work. That's my philosophy though. So, do you enjoy the work you're doing? Is it challenging? If you're constantly faced with new challenges, I think that's a really good um in my opinion, it's a really good spot to be.
If you're working in the same area and you're like, look, it's just easy. You might like it, but it's just easy. Like, now you're comfortable. Depending on the point in your career and your personal perspective on this stuff, that might be great for you. That's not personally great for me, at least where I'm at in my career. It's one of the things that scares the out of me because I don't want a lot of time to go by and I'm just sitting there being like heck yeah like this is easy now or like I feel too comfortable but it's easy to like fall into comfort and I you know a lot of the things that have come up in my career that were uncomfortable were not necessarily like you know a conscious decision I made and sometimes they're quite jarring. ing in terms of like going from comfortable to discom like uh uncomfortable.
But it's like it's good that they happened. It's good that they happened because it forced me into like a new environment, new scenario and I have to adapt. I have to learn. I think I'm a little bit too conservative that way where I won't put myself into those situations. So historically, it's been good if they happen to me because it it forces me into it. Um, I get very scared about being complacent. You might be totally cool with that. It's not for me to to judge you or say my way is right, your way's wrong. Not at all. But for me, that's like I don't I don't want to get to a point where I'm just super comfortable uh with no growth. Um, I think super comfortable for me means that I get to pick like the thing that I actually want. I mean is that I get to pick the challenges I want.
That would be like a super comfortable that I'm okay with. Not like there are no challenges. And that's going to bring me to the last point. The learning part learning and challenges I think are similar. the the way that I would differentiate that is like the skill sets and technology that you need or need to or like you believe that you want to focus on for your career development. So going back to the example I gave with like you know some some stack where you have like a backend server, you got a database, mobile app, a web page, you got all these things and you're like I really want to move I'm just making this up. I really want to move into um the database part. I want I really am interested in learning about databases. I think that's going to be so good for my career growth, but like the area I'm stuck in, we just don't get that, right?
Like I want you to do this reflection and and kind of think like am I getting these opportunities in the project I'm working on? If the answer to that last one's no, it's not the end of the world. I know a lot of people, even people that I've managed where like we simply do not have in the the normal work we're doing the opportunity for some of the focus areas they want to grow in. And like I will do whatever I can to try and expose some of that for them, but like sometimes it's like it's just not realistic for the work we're doing. So like are there things you can work on outside of work that you're just interested in doing? Side projects, right? Like I've talked to some people that go build stuff on the side and they're like, "Yeah, that scratches the itch for me." Like it's still cool.
I'm interested in doing it. I get to learn. Uh I've tried working with um sort of like not a partner team necessarily, but like if I have an engineering manager that's like reports up to the same manager that I have. It's like, hey, like we're all basically on the same broader team. like is there stuff that I could have some people help out with and get them set up for some different work streams like you know as an engineering manager I want to enable that as long as it's not going to distract people from like you know doing work effectively so I have to have that conversation but overall I think that it's important you do this reflection and the cool thing about this is like it's not like a one-time thing where you're like hey I remember 20 years ago there was this bald
old guy in a car talking about doing some personal reflection and I did it and then I stayed or asked about changing projects or whatever and like I never did it again. Like no, the reality is like doing some type of personal reflection periodically is good. And it's a good reminder for myself cuz a few videos back I was talking about this and I said like I owe myself a bit more of a reflection. I need to sit down and just make some time to do it. Because there are things in my career where I'm like, you know, I'm I'm simply, in my opinion, I am not making progress towards them. And like what does that mean? How comfortable am I with that? And it's just it's just like a real conversation that has to happen. I'm not sitting here suggesting, well, therefore I have to quit.
Not at all. It's just like I have to think about what am I trading in my career right now? I have to do like a pros and cons analysis. It doesn't mean immediate action. It means like kind of being consciously making decisions because again I don't want so many years to pass and I go oh man like should have could have whether that is like you know staying in one spot or whether that was like took a took a risk or took a chance when I maybe I shouldn't have it was the wrong thing like I just want to make conscious decisions so I encourage you to do that. So, you know, to this person's question, is it normal? I don't know if it's normal to be in the exact same thing for 4 years. Um, but it depends on the scope of that project, of course.
Um, so that's one thing. Uh, is it okay? Sure. But I think it's only okay if you're doing that reflection and you feel like this is like checking the boxes for you as an individual. It's uh you know I should call this out because I don't want to you know I want to be very transparent that like you can have your your own reasons for any of this. It's for you to decide. It's not for me or anyone else. So if you're like look I'm just going to give you a totally sort of you know different example. You're like I work in this spot. I work on this project. I've been stuck here. I don't think that it has much impact at all. Okay. like from your perspective, you're like, I don't really know why we're doing this, but sure. And then you're like, I feel like I'm not even really challenged and I'm not really learning a lot.
Okay, so those are all a bunch of things where I'm like, I don't think that's a great idea. And you might be like, yeah, but they pay me a ton of money and like for me that's that's good, right? Like you can that's totally fair if that's like and I'm not being sarcastic. If you feel that way based on this point in your career, then like by all means, but you're consciously making that decision. And I think that's one of the important takeaways is I want you to to be able to do the reflection, right? You know the context. You know what you're working on and you know like kind of the things that you you value, but you might not have done that reflection yet. So I think that's where you want to link those things together and that will change over time.
So, with all that said, if you have um you know, this idea in your mind after doing this reflection where you're like, maybe I do need to to think about a new project or something like that, I would start personally for those of you that watch my channel, you know what I'm going to say, but I would start with a conversation with your manager to talk about this. Sorry in advance if you have a shitty manager that you can't have conversations about this with, but I've made plenty of other videos talking about how I think you can start trying to improve that relationship. And of course, if you try and it's not making any progress, maybe it's time for a different place altogether. But I would strongly encourage you to raise awareness of this kind of thing with your manager.
Whether that's hey I don't know if I'm getting to set work on the set of skills that I want to uh the technology um I'm getting disengaged I feel like I'm not learning whatever it is being able to have an open honest conversation with your manager about that and then try to to see like is there a path forward this person was like trying to match my speed not letting me um like is there a path forward? Again, like not not every manager is going to like just go hell yeah and like jump in to go support that, but in my opinion, it's in an engineering manager's best interest, at least like at least long term to try and do that. They might not have the flexibility in the short term or there might not be good options for it.
But like in the long term like I think you have to medium to long term because if someone's coming to me as an engineering manager and expressing like I don't think that I'm getting challenged or I don't think I'm engaged or I don't think that I'm learning the things I need to learn in my career. Whatever whatever their reason is. Oh, come on. zipper merging. Some people can't um I think it's in an engineering manager's best interest to zipper merge and to make sure that they are supporting the growth of the engineers on their team. And for those of you that are like, "Yeah, but what if that person is going to leave?" Like, I can't I don't control that. But I can tell you if they're not getting the opportunities under me that they're interested in, they're either staying and likely doing a job over time because they get so disengaged or they're going to leave anyway cuz they're going to go look for something.
So, in my opinion, it makes the most sense to try and support them as much as possible within reason. Right? if I if I don't have the opportunity for them and I'm trying things and I can't kind of get things aligned for them, then at least I tried. So anyway, I hope that was helpful. Um, bunch of things to think about there, but again, the the reflection, it's a common theme. I think you should do a reflection uh more than once, and that way you can kind of see the things that you value and how that's changing for you based on the point in your life. So, thank you so much for watching. If you have questions, leave them below in the comments or you can submit questions anonymously at codemute.com. Provide as much context as you'd like. The more the marrier. It helps me try and provide details on uh what I think you're talking about.
Otherwise, I kind of have to guess. And if you haven't noticed, like really generic questions get generic answers because I don't know where to start or where to end. Um, and then of course I have other YouTube channels if you're interested in that. So I have the Dev Leader podcast where I interview other software engineers and I have a live stream every Monday 7:00 p.m. Pacific. Uh, this one coming up by the time you watch this video. It's already passed. Um, but you can check it out on YouTube because it's recorded. We're going to be going over plug-in architecture because I have a uh a talk that I'm doing later this week. Again, by the time you watch this, it's history. But I'm going to Dallas this week to uh to go do a presentation. I just have a small speaking slot. It's not I'm not like a a keynote super fancy person, but I'm happy to have the opportunity.
I'm excited for it. So, I'm going to go over that in the live stream. Um usually it's not coding. It's usually like topics from code commute. This one's just going to be a little bit unique because I'll be traveling. And um so we'll go over that 7:00 p.m. Pacific every Monday. And then I have Dev Leader Path to Tech where I do resume reviews. You can check that out. You can submit your resume to be reviewed. And then of course my main channel is just called Dev Leader. And that's where I have all of my C programming tutorials and some AI coding stuff. So thanks so much for watching and I'll see you in the next one. Take care.
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- Is it normal for a developer to work on the same project for four years?
- I don't think it's totally normal to work on the exact same project for four years, but it depends on what you mean by 'project.' If it's the same area or product that has grown in scope, it can be more realistic. It's not necessarily a bad thing, but it's not super common either.
- What are the pros and cons of working in the same area or project for an extended period?
- Working in the same area allows you to build expertise and become a domain expert, which can make you the go-to person for that area. It can also provide high impact and visibility if the area is important to the business. However, the cons include limited exposure to other parts of the system, which can make tasks like on-call support challenging, and potential lack of breadth in skills and experience. Also, if you're not interested or challenged by the work, it can lead to disengagement and lower performance.
- How should a developer approach feeling stuck or unchallenged in their current project or area?
- I recommend doing personal reflection to assess if the project is growing, impactful, and interesting to you. If you feel stuck, disengaged, or not learning, it's important to have an open conversation with your manager about your concerns and career goals. If opportunities to grow or change projects aren't available, consider side projects or collaborations outside your immediate team. Ultimately, making conscious decisions about your career path and regularly reflecting on your growth is key.