I am working at a 2 year old startup that has just launched its product a few months ago. The launch was considered a failure because the product has so many issues and customer complaints. Some customers even stated that they prefer the competitor product.
After being here for less than 6 months, I observed that the company has a culture of rushing everything with lack of planning and resources/manpower to execute their vision. None of the upper management has business experience in this exact product, they only have experience in tangentially related product. Also, prior to the formation of the current engineering team, the company hired an overseas vendor that overpromised a 6 months project that dragged out into 2 years. That is the main reason the current engineering team I am part of is built: to replace the vendors. The investors are known to be very profit-oriented right from the start, and they are also funding another startup that has the exact same product as my company, although this startup will not be launching anything until next year. The combination of inexperienced upper management and culture of rushing things lead to product failure. Thankfully, I think the atmosphere in the office is still pretty positive and laid-back. People are not pointing fingers and they still do their best to recover from their mistakes and prepare for future initiatives.
My manager has stated from the very first time I join the company that he prioritizes quality over speed, and given our previous product failure by the vendor, I agree that this is the solution. However, the Product Manager doesn't agree with this and he pushes us to prioritize speed over quality, even if that's the exact mindset that leads to our product failure. The rest of the upper management seems to adopt the same mindset of quick fixes and rushing, and the most alarming part is that we don't seem to have identified our core users, so I'm not sure if our previous launch has actually taught us anything. Also, I noticed that the Product Manager is lacking competencies in some key areas. I expect a PM to be someone who can not only have a vision on what the product would grow into, but also someone who can do analytics, business projections, and prioritize the most impactful projects for the team. In our daily interactions, he seems to be someone who just passes words from one person to another without doing any substantial management. This is slowly leading to resentment from my manager towards the PM because the team is slowly being overwhelmed with unimpactful tasks that hinder our future milestones.
My questions are:
Hi Alex, thanks for your answer!
I agree that over some period of time, quality will beat "rushing" in terms of velocity due to maturing practices and knowledge, and less time spent to fix mistakes. As a long time lurker here, I also noticed that you always emphasize repeatedly that quality and velocity always go hand-in-hand. However, the problem is that I feel like the upper management believes only what's visible, even if the quality of the work is poor, and that means that the upper management believes the vendors more.
Actually, there was a layoff earlier this week. The whole marketing team was impacted. We thought that it was about funding shortage, but after some discussion, we figured that it's because of political motive from the CEO where the CEO tried to get rid of his director's subordinates. The layoff seemed very reactive and impulsive, and the CEO was known to be someone who would push for very urgent work and then not using them later. Obviously, after the layoff the whole company (less than 45 people) was in panic mode, especially me. When asked if this is a sign for us to look for new jobs, the CEO simply replied "This is how startups are. Some people are suitable with it, some are not."
I actually had a 1-1 with my manager today. I asked him if his "high quality" approach would still result in our team existing in the next 6 months. He said "If you want safety, this is not the place. I want you and my team members to have craftsmanship mindset. Even if this company ceases to exist next month, at least I want you to have that pride of having built something great, because that will make your more attractive to jobs out there. Also, I'm pretty sure it will be easy for you to get a job after this. I want people to have the mindset of learning instead of surviving." This response is both bittersweet and alarming to me. I then suggested if we adjusted our approach to "middle quality but high speed one". He then said "I don't think we're even close to middle." That's the moment I realized that he's simply not going to compromise on quality at all. At this point, I'm just stumped. What should I do?
Also, I had some discussions with other people, and I realized that my manager is actually not really likeable by people. A lot of people would describe him as "snobbish", "smart but very complicated", "messy". This realization is super alarming to me. I'm wondering if his "unlikeableness" is going to affect the team's existence in the next 6 months. I do admit that my manager is highly competent and capable. He works so much harder than everyone in the team, and he is often the sound of reason when everyone overpromises. But I do admit that he sometimes can be harsh and can be bad at effectively and tactfully communicating what he wants, leading to resentments and miscommunications from other people. I myself sometimes find it difficult to understand what he wants and sometimes it leads to debates between me and him. Him talking a lot more than listening in almost all conversations (not just at work but also outside work) also can be pretty irritating sometimes. But still, after all of this, I still feel that I've learned a lot from him and I feel that he has delivered a lot of value.
Which direction should I follow? My manager's or the PM's (majority)?
Why not both?
I think a big part of the problem here is that you view quality and velocity as diametrically opposed. This is not entirely true. While they do indeed come into conflict (especially as the deadlines get very, very insane), there are many basic code-quality things that go hand-in-hand with speed. For example, creating small, focused, detailed pull requests is actually great for shipping speed as they're easier to review and approve.
I'm a quality person, but I worked at Meta which has an... interesting relationship with shipping velocity. I built up a reputation as someone who shipped quality code, but I regularly had to make sacrifices as a pragmatist to get stuff in on time. That's just how it is at 99% of companies. Code quality is an infinitely high lever - One of the tough parts of being an engineer is figuring out how hard to crank that lever, balancing quality and speed (and this varies based on company).
When it comes to quality, there's generally a lot of low-hanging fruit that allows you to get 80% of the quality with 20% of the effort. Check out this playlist to learn more: [Taro Top 10] Becoming A Better Coder
In short, do what you can to make your own stuff polished given the time you have. Back at PayPal/Course Hero, the bar for code quality frankly wasn't very high, but nobody stopped me from submitting clean PRs, dogfooding my features aggressively, and making sure that my piece of my pie was rock-solid (more so than everyone else's).
Should I consider this a sign for me to look for new company?
It might be. However, this depends on how long you have been at the company - You mentioned that the people there seem to be pretty nice (a good reason for staying!). It's important to learn how to be scrappy, and this is actually something Big Tech engineers struggle with a lot.
If you feel like you have exhausted the learning, you can start searching for a way out. To be 100% honest, it is very unlikely for a mid-level engineer to affect massive culture change here. But if not, I think it's totally fine staying there, especially given how much the job market sucks right now.
Or is this still normal and workable? If yes, what kind of role / actions should I take in this situation?
It is completely normal for an early-stage startup like yours to take a bunch of shortcuts. You'll be surprised at how much jank there is behind the scenes at Taro's tech stack. In this economy especially, startups need to fight harder and be bolder when it comes to finding product-market fit, just trying out more things. This will sacrifice quality.
If you do want to take a crack at changing this culture though, I highly recommend this: "How to push for changes when not directly in a leadership position?"
How should I convey this in my 1-1 to my manager?
Well, your manager is in the same camp as you, so you can probably just tell them the content of your original post honestly. Ask them what they think the proper balance is, and how you two can work together to affect positive change.
My main advice for having this conversation is to approach it constructively. Don't point fingers or throw blame around. Be focused on problems (without explicitly attaching them to anyone) and coming up with solutions. I know that someone has good intent when they proactively propose reasonable solutions. Watch this video to learn more: Voicing Your Problems And Frustrations Productively
Okay, it seems like your company is fairly dysfunctional 😅. Some options to take:
I would much rather work with someone who disagrees with me but is willing to compromise than someone who agrees with me entirely but is "my way or the highway". Someone who is inherently stubborn and always believes they're right is bound to run into a nasty conflict (and probably repeatedly). And I have said many, many times across Taro: There is almost never a completely "right" way to do things. It will always depends on the context.
Compromise a crucial key for a healthy organization, which is why I talk about it in-depth in my Effective Communication series: Alex's Guide To Effective Communication