Earlier quoted context omitted.
I think you have some things to learn, as a manager, and as an engineer.
I'm no SWE, so it might not be 100% applicable here. As a manager, one of the your tasks are to make sure that your team knows why they are doing what they do. That way, when there is no time for lengthy discussions, they don't feel demoralized when you give them an order they disagree with. Another task is, to make sure to get the best out of your team. That means to use the experience and knowledge of people as muc…
Ask HN: Are my expectations on code quality and professionalism too high?
251–260 of 306 posts
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#252Earlier quoted context omitted.
I am not convinced that you are competent enough to be an engineering manager at a big company with oversight from an experienced manager, nevermind at a startup. You've revealed a cascading set of failures here that are 100% your responsibility and then have the audacity to caricaturize your well intentioned junior engineer: 1) Having 5 months of runway is an existential problem that your CEO's fundraising should ha…
I am not convinced that you have ever worked at the average startup. Your points are incredibly divorced from the reality most face. Years worth of runway is not the norm. Having your choice of senior engineers to hire right away is not the norm. Most startups exist as sinking ships. It sounds like you lucked in to a company that raised a shitload early on and so had the luxury to make these decisions.
I worked for a string of them early on in my career. I was miserable and worried that I'd never get anywhere better because of the scarlet letter of working at a failed company (and several of them) would be my first impression. Rather than blaming it on luck, I resolved to figure out where I went wrong and how I could avoid it in the future.
While you cannot remove the element of timing and large scale market events outside of your control, startups are about making (and learning to make) calculated risks. Mediocre startup operators love this kind of argument (so and so can do things because they raised more money than us because they're lucky not because they executed better) because it lets them escape the consequences of their own unforced errors and ineffective execution. You won't hear this argument from effective operators because it would get laughed out of the room. They know that they have to operate proactively, not reactively from (and even before) their first fundraising event.
The most well run companies have a tendency to create exponentially more, not less, expansion and subsequent job opportunities. My advice is don't work for a risky early stage company until you learn what success looks like somewhere bigger. At an early stage startup that's on the right track, you'll see a lot of the same things just in a smaller org. But it's hard to know what you should require unless you've at least seen what it looks like to work at a well oiled machine. Folks that tell you otherwise are either ignorant or willfully trying to pull the wool over your eyes.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#253Earlier quoted context omitted.
I am not convinced that you are competent enough to be an engineering manager at a big company with oversight from an experienced manager, nevermind at a startup. You've revealed a cascading set of failures here that are 100% your responsibility and then have the audacity to caricaturize your well intentioned junior engineer: 1) Having 5 months of runway is an existential problem that your CEO's fundraising should ha…
I think this is generally a great comment, but just to note: you seem to characterize the "5 months of cash" thing as a decision . But most startups fail, and all of those startups at some point (or multiple points) in time only had 5 months of runway left, which is not always (I would say not usually) because they decided it was ok to have that little runway, but because they could not avoid it despite their best ef…
I think we're making the same point, but I don't disagree. I think this is what I'm getting at. A CEO who cannot raise and is at 5 months of cash left has a) effectively gotten a vote of no confidence from their existing investor base, or b) they are not asking because then they are delaying the inevitable and eventually impossible to ignore conclusion a). Not being able to avoid low cashflow despite your best efforts is a failing on the CEO's role. The CEO is the last line of defense in terms of responsibility, and fundraising is supposed to be one of their core competencies and responsibilities. It's why the job is not for everyone.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#254Me as a manager at a startup: "Look, we have 5 months of runway. Does that make sense?" Young dev from large corp: "Yes. But if you don't use Terraform we wont be able to see our infrastructure changes over time. We don't even have a proper code review process." Me as a manager at a startup: "We have two micro instances. Do not install Terraform. Finish the import prototype... now." Young dev from large corp: "Sigh,…
Folks are focusing on "five months of runway" or other minor details and missing the big picture here. Big companies typically have fewer constraints on time, money, and developers. They can have very mature development processes because of that. Small companies typically have tighter constraints. It's not as if this hypothetical manager doesn't want better process, but if the things to spend time on are "better depl…
They key here is to find problems with the current environment that can be tracked. Downtime, performance, bugs in prod, etc... If you can't find any measurable issues that management can relate to, then quite frankly, there isn't really any reason for management to invest in solutions to problems that don't exist.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#255Earlier quoted context omitted.
Is there any situation under which leadership shouldn't buy in to exactly what tech wants to do?
This is a little embarrassing. I asked what I thought was a well-designed question to frame the problem in a way that made my own conclusion obvious. Clearly, I missed the mark, so I'll be more straightforward now. Engineers below the upper senior levels typically operate with an "infinite" mindset in making these choices. We all laugh at the relevant XKCD[0] because there's a grain of truth in there. This isn't a kn…
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#256Earlier quoted context omitted.
If you have a team of 5, and one wants to implement terraform or some other package like that, what is the current cost to the rest of the team that is unfamiliar with the new software? Will that one person be hobbled for the next few months trying to get their work done and support the other engineers who get blocked by tech they haven’t learned as well? Was the system viable using shell scripts or however it was or…
Would you even have cross-cutting concerns in a team of 5? Given previous experience, it's quite common that if you have a team of 5, it will be reasonable to assume everyone is sharing a bus factor of 1~1.5 and one person will be the infrastructure master. Letting them use whatever tools to leverage until you can have more runway is good.
The tradeoffs are not obvious. It could be that terraform is as important to this startup as version control would be, they just don’t know it. But if it ain’t broke....
Btw, I’ve worked at a startup (25 years ago) that had no version control and I was the one who identified the problem and introduced it. I also was unaware we needed it or what it could do for us before we had our first pucker-up moment with the source code. After version control we moved faster and slept better. Or we would have if we weren’t pulling all nighters.
The startup failed anyway.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#257I'm convinced that there are startups that have good practices and there are big companies that don't (and vice versa), so I'd say it's more about this particular company rather than all companies around that size/location/industry or whatever attribute.
On a practical note, I think you have a few choices. 1. Leave and join a company with better practices. It's a safe choice. 2. Take it as a challenge and be a change agent at the current company. Good practices have value. Teach them. Bring them in. Negotiate with managers and people above, try to convince them to adopt to better practices. This is hard, really hard, but you'll learn a lot from the process, and you'll be a hero at your company if you succeed. 3. Do nothing. Get frustrated and complain. Sink into the same level of mediocre/bad practices just like everyone else. I don't recommend this one.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#258Earlier quoted context omitted.
I am not convinced that you are competent enough to be an engineering manager at a big company with oversight from an experienced manager, nevermind at a startup. You've revealed a cascading set of failures here that are 100% your responsibility and then have the audacity to caricaturize your well intentioned junior engineer: 1) Having 5 months of runway is an existential problem that your CEO's fundraising should ha…
Counterpoint: Twitter's codebase early on was a well known clusterf%%% that was impossible to scale reliably and was consistently causing the fail whale. They found product market fit, got funding and improve their code. Counterpoint #2: Amazon's code base was a monolith and highly dependent on Oracle. The rest is history. The order of priority is to have a product that customers want, convince investors to give you…
Git didn't exist, SVN didn't exist before 2000. Common languages in use today didn't exist or were in their first versions (go, python, java, etc...). Most of the unit testing frameworks and IDE that are taken from granted weren't invented yet.
There were different expectations back then. No software company should be running in 2020 with no version control, no unit test and no CI.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#259Earlier quoted context omitted.
> And I can set up two micro instances with terraform in less than an hour. The post was more of a metaphor than a concrete example. However, as a manager I can’t count how many times my team has declared that they can do something in under a day only to have it become a part-time job for someone to maintain indefinitely, or a multi-week rabbit hole as they debug some unexpected behavior, or technical debt as they ne…
When I was managing a large, distributed team of mostly mediocre engineers (at a poor bigco), it was common to take the best case estimate (provided by a senior engineer or architect), add 50-100% because due to lack of similarly experienced engineers responsible for day-to-day coding, add 25-30% for SQA, and add 50% for "business" delays (usually LOB heads who couldn't agree on features, or who asked for utterly stu…
This had the benefits of ignoring the usual variations of software planning. Any development task could take 1 week or 4 weeks (if it goes well or not). This stops being an issue when the planning is quarterly because few weeks of jitter doesn't matter.
The question is then, do we have time to do this task next quarter, as well as the other 3 tasks we scheduled there? otherwise we'll plan it for the quarter afterward.
Re: Ask HN: Are my expectations on code quality and professionalism too high?
#260Earlier quoted context omitted.
Counterpoint: Twitter's codebase early on was a well known clusterf%%% that was impossible to scale reliably and was consistently causing the fail whale. They found product market fit, got funding and improve their code. Counterpoint #2: Amazon's code base was a monolith and highly dependent on Oracle. The rest is history. The order of priority is to have a product that customers want, convince investors to give you…
Twitter was founded in 2005. Amazon in 1995. Git didn't exist, SVN didn't exist before 2000. Common languages in use today didn't exist or were in their first versions (go, python, java, etc...). Most of the unit testing frameworks and IDE that are taken from granted weren't invented yet. There were different expectations back then. No software company should be running in 2020 with no version control, no unit test a…
Java was very big in the Enterprise by 2005 and yes there were plenty of IDEs back in 1995. Amazon I believe was originally built on a C code base.
There are plenty of companies that have no automated unit tests and do quite well with manual testing.
But we aren’t just talking about source control and unit testing we are talking about code quality.