5 ms·
Ask HN: How do I know if the startup I'm working at is dysfunctional?
Background: this is my first job out of college, and I joined the startup ~9 months ago, right when they launched (I'm engineer #2, before me, the founders outsourced the prototype to an offshore team). The company is working on ecommerce/ affiliate model with a small twist.
Right now, we have ~1200 registered user, with about 100 active users, and we gained about ~100 users/month. On the development side, we have a straight up waterfall process with 1 hour "scrum meeting" everyday, we have 5 developers right now. We have no automated testing at all, a deployment update every ~4-5weeks, and a tech stack/ jobs advertisement that would look like it's from 2006. A few months ago, I tried to write some unit tests, and I was asked to removed it from git because the CTO doesn't want git to be polluted.
I believe that a) Our rate of growth is too slow, and b) Our development process is a bit less than ideal and c) Fundamentally, something is wrong with our company (at least, from the tech side), from all the things that I've heard and read. However, I acknowledge that startup is far from the pinnacle of engineering, and even the user stats could be misleading. I talked with one of the founders about speed of development being too slow, and he (with a business background) said that from his experience with other startup, it's not slow, with which I firmly disagree. So the question I'm wondering is, how could I judge the state of the startup right now?
- contingencies 12y agoInstead of presenting a judgement like I think <x> is <y>, try finding an opportune moment or company-wide email thread and presenting Hey, what do you guys think about <x>? or Well known companies <a> and <b> swear by <x>, what would it take for us to try it out?
- tlb 12y agoAt this point in your career, you should optimize for improving your skills by working with programmers who are better than you, in a rapid feedback environment.
- sillysaurus3 12y agoDid you work with anyone who was better than you? What were the most useful skills you learned?
- strlen 12y agoReally looking forward to a reply here! Pg did write a bit about what he has learned from tlb: http://www.paulgraham.com/gh.html http://www.paulgraham.com/gh.html (see the "Recognition" paragraph)
- endlessvoid94 12y agoThere's arguably no single greater environment than learning from great people. Communication, choosing your battles, patience, emotional intelligence, just to mention the managerial and partnership aspects. Too many technical / marketing skills to name. I come from a 100% technical background, and I can tell the skills I've acquired in the past year will last me a long, long time.
- tlb 12y agoSeveral, including pg and rtm. The hardest skill is knowing what could be simplified, and what's good enough.
- strlen 12y agoHoly Occam, you've managed to say more with a single sentence what I was struggling to put in several paragraph (all while I still working on the first draft my comment)! OP needs to learn and the way to do is not just doing, but by looking at good examples, then doing, then receiving feedback on how it could be done better, and then improving.
- analog31 12y agoThis mirrors advice often given to musicians. Nobody wants to be the best player in the band.
- viredfox 12y agoThanks everyone for the advice. I have another question: assuming that pushing to gain skills is the highest priority. Since I have while a bit of autonomy in the current startup (comparing to working in other company), would it be possible to improve my skills while simultaneously trying to changing things in the company (since I'd get to do more things)? Or would that be a futile effort?
- viredfox 12y agoAssuming that pushing to gain skills is the highest priority. Since I have while a bit of autonomy in the current startup (comparing to working in other company), would it be possible to improve my skills while simultaneously trying to changing things in the company (since I'd get to do more things)? Or would that be a futile effort?
- letstryagain 12y agoLots of companies have really crappy dev processes but still manage to succeed in the market. Do what you can to improve your process internally but really the important thing is making your customers happy and getting more sales.
- TheBiv 12y agoI am not qualified enough to say if it is dysfunctional, however a big red flag to me is when your CTO says he "doesn't want git to be polluted". My first piece of advice would be to go into his office and very respectfully ask him to unpack what he meant by that statement. He may have just been trying to say that you were too junior, he doesn't believe that unit tests are worth the business advantage, or any number of things. The reason I suggest this as a first step is because it will open up the communication between him and you over something that may give you more insight as to why he would say such a statement that is so grossly over exaggerated to the point of being a lie. The theory would then go that if you could get your CTO to open up about this subject, then they are going to be more likely to open up to about other suggestions regarding the development process/other operational efficiencies.
- viredfox 12y agoI actually talked with the CTO (not directly related to that), but I believe he doesn't think unit test is a worthwhile investment at the time. From what I learned, I don't think he has ever worked in an environment with a strong culture for automated testing + CI.
- TheBiv 12y agoThat is really cool that you began that dialogue! Even though this is far from unit tests, were you allowed to suggest anything like Selenium? which would allow you to at least test the business facing functional points so that you could be sure that a release wouldn't break what the business person sees. Just wondering if he is 100% against tests in all scenarios!
- viredfox 12y agoSelenium needs quite a bit more overhead than the unit test I'd be doing, so I think it's even less unlikely. He is certainly not ideology against tests by any means, it's just he doesn't believe the trade off would be worth it (test writing time and debug vs time spend directly on development). My guess the answer would be along the line of "we're lacking resources"
- tomasien 12y agoThe only part of this that is a red flag is what the CTO said about unit tests. You need to know why he said that. An outsourced product that has a shitty tech stack and that growth rate are fixable problems lots of startups have gone through. But an attitude that "everything is fine, we don't need to be better" in that set of circumstances is a disaster. My current company was in a similar situation a few months ago in some respects, but we were releasing constantly and desperate to improve. We're WAY better now, and we're getting measurably better in every single respect every day. The reason we're unrecognizable from what we were 4 months ago and why we'll be that way yet again is because we're desperate to improve and have NO egos. Not a single person on the team is anxious to be right - we're anxious to get better. Find a team that's as anxious as you are to improve. That, you can't fix.
- viredfox 12y agoI don't think anyone in our team is anxious to be right. However, I also don't think anyone in our team is anxious to get better too (both in term of personal skills AND our process in general). For several reasons, most of our developers treat (and work) this as a 9 to 5 jobs.
- tomasien 12y agoI told everyone to take off at 4 and watch the world cup. I came back at 6 and everyone was still working (and watching the cup), so I got back to work with them. We're still on Slack squashing bugs and we're all pumped to be doing it. Just taking a break to check HN while files upload. You'll know that environment when you see it. If you're not in a position to create that where you are, move on.
- 7Figures2Commas 12y ago> I came back at 6 and everyone was still working (and watching the cup), so I got back to work with them. We're still on Slack squashing bugs and we're all pumped to be doing it...You'll know that environment when you see it. If you're not in a position to create that where you are, move on. Funny, my advice would be the exact opposite: avoid environments that blur the lines between personal life and professional life.
- ScottBurson 12y agoThis place does sound a little screwy. (Unit tests are "pollution"? What???) I think it couldn't hurt for you to be very quietly looking around for something else.
- steveklabnik 12y ago> I tried to write some unit tests, and I was asked to removed it from git because the CTO doesn't want git to be polluted. This is how you know.
- zjgreen 12y agoInteresting topic. There is nothing you can lose by starting a friendly "debate". There are three likely scenarios: 1. You are wrong, CTO is correct, and you learn something valuable. 2. You are correct, the CTO is wrong, and he gains respect for your initiative and skillz 3. You are correct, the CTO is wrong, and he loses respect for you. First two are obviously good, 3rd one is a good sign you probably won't or shouldn't stay long there.
- ziffusion 12y agoDo you work for a guy called Peter Smith?
- nthj 12y agoTech skills are like retirement funds: compound interest is your friend. A dollar invested now, at the beginning of your career, is worth more than a dollar invested later on. Right now, you want to be pushing to gain skill as quickly as possible. The skills and habits you develop now will pay back tenfold later on. This probably means being surrounded by developers smarter than you, sooner rather than later. I'm not a TDD "fanatic" or whatever that even means, but some amount of automated testing is a sensible form of risk management. If you're being actively discouraged from pursuing it, you're the smartest guy in the room. That means it's time to move on.
- viredfox 12y agoTo be fair, I think it's more of a concern that trying to write tests would slow the actual work down - I was trying to write regression test (still unit test, but definitely not tdd).
- avelis 12y agoWriting unit tests do not slow work down. It actually makes time more efficient by ensuring working code continues to pass over time. This has huge returns in how a developer can now spend their time.
- jf22 12y agoWell lets be clear unit testing temporarily slows immediate progress down while potentially increasing future productivity. Sometimes its beneficial to get a feature out the door sooner so sometimes unit testing isn't best for the business needs even if it does slow down future progress.
- strlen 12y ago> Background: this is my first job out of college, and I joined the startup ~9 months ago, right when they launched (I'm engineer #2, before me, the founders outsourced the prototype to an offshore team). Generally, but never as a rule, purely non-technical founders and an outsourcing is a red flag. But again, that is never a rule, and there are plenty of good companies started by non-technical founders that later matured. Still, that does leave you with the question, of how they chose the CTO? > Right now, we have ~1200 registered user, with about 100 active users, and we gained about ~100 users/month. This is not a useful metric. How does this translate into revenue: for some kind of business software (e.g., optimization/recommendations for retailers provided as a service and based on subscription fees) this is great, for a destination site that is poor. Is this rate increasing or increasing? Now to the meat of your argument: "waterfall" -- why do you call it water fall? 1 hour standups _are_ a problem, but I could imagine a scenario where this might occur for a few days in a row (although never beyond that). "Deployment update every 4-5 weeks" -- depends on what goes into the update, although it's hard to imagine this being a normal stable-state rate for an early stage (or any Internet/SaaS) company; yet for a company providing something like a database a service, it could be fine (provided you're able to push quick fixes and UI updates faster). "I tried to write some unit tests, and I was asked to remove them" -- could be several things, the you wrote tests were not very good (or were not proper unit tests, e.g., if running these tests requires additional setup beyond what it takes to build and manually test the product, they're not really unit tests), or reluctance to embrace even minimal unit testing (which is, indeed, a red flag). Non-issues: "technology stack and job description" -- honestly I would worry less about this, unless they're literally using Perl CGI scripts, Java 1.4 and EJB 2.0 on an ancient version of a commercial database, but e.g., using Java (or even PHP) and a standard SQL database is a fairly sound (if boring) technical decision. My suggestion is this: find a position in a company known to be functional and well regarded as far as engineering goes (to paraphrase tlb, you need to work with people smarter than you that can give you quick feedback so that you will learn!). Then you'll learn what a proper standup meeting is like, how to write good unit tests, what a release cycle is like, etc... Don't worry about what your equity percentage is, what your employee number is, etc... you have plenty of time in your career for that. The result is that you'll have a good baseline to compare to and (as a result of shipping something that ends up being successful and used by others) greater confidence/ability to introduce change in a company. Andy Rachleff of Wealthfront has some advise along these lines too, although not oriented towards engineering: https://blog.wealthfront.com/hot-mid-size-silicon-valley-companies/ https://blog.wealthfront.com/hot-mid-size-silicon-valley-com...
- icedchai 12y agoMost companies are dysfunctional, so odds are yours probably is, too. Learn as much as you can and move on.
- overgard 12y agoBasically, yeah. Outsourcing tech in a young startup is a red flag to me. It suggests either they think it's interchangeable and it doesn't matter who makes it, or they don't understand it. Either way, bad times. It doesn't sound exceptionally dysfunctional, but I would be hunting for a new job ASAP.
- lbarrow 12y agoYour job sounds terrible. I would get out.
- viredfox 12y agoThanks everyone for the advice. I have another question: assuming that pushing to gain skills is the highest priority. Since I have while a bit of autonomy in the current startup (comparing to working in other company), would it be possible to improve my skills while simultaneously trying to changing things in the company (since I'd get to do more things)? Or would that be a futile effort?
- ipince 12y agoThat's exactly what you should do. Being able to influence people and drive a vision forward is another skill you should try to develop, and which seems easier to get started at while at a startup.
- wsetchell 12y agoFrom the way you ask this question, it sounds like you already know the answer.
- Eliezer 12y agoMy intuition would be that functional startups are visibly functional; they feel awesome. If you have to ask whether your startup is dysfunctional, then the key fact is that it's not awesome which I would expect---someone correct me if I'm wrong---that your equity is substantially less likely than usual to be worth much. Sure, there are non-awesome companies that succeed, but maybe they're just the rare examples from the very wide pool of non-awesome companies, or maybe they have founders who were good or lucky at obtaining venture capital or had some other special advantage. What's your company's special advantage? Do you have enough equity, or enough pay, to make it worth more than all the other startups you could join can offer you? Did you graduate from MIT or from Nowheresville college, and are they paying you $60K/year or $110K/year? Every offer has to be understood in comparison to its opportunity costs, the other offers you might get.
- viredfox 12y agoI'm from nowhereville college, and the pay is lower than the low end you gave. Part of the reason I asked on HN is because I don't know if feeling awesome is the norm in a startup: the work is expected to be stressful, isn't it?
- opendais 12y ago> Part of the reason I asked on HN is because I don't know if feeling awesome is the norm in a startup: the work is expected to be stressful, isn't it? Yes and no. Waking up to a call at 3am because something you wrote broke and 50 guys in a warehouse are waiting on you should be stressful. A bug that costs the company $10-20k in double shipped orders is stressful. If the stress is from just dealing with your coworkers, and not 'oh shit something went wrong', then I'd say its a cultural problem. > I'm from nowhereville college, and the pay is lower than the low end you gave. If you are not making 60k in the Bay Area, well, that is too low. If you live in Nowhereville still, its probably fine.
- pfitzsimmons 12y ago"My intuition would be that functional startups are visibly functional; they feel awesome." It is a lot more complicated than that. The term "sausage factory" usually applies - http://www.urbandictionary.com/define.php?term=sausage%20factory http://www.urbandictionary.com/define.php?term=sausage%20fac.... Even very successful startups can feel very dysfunctional in the heat of the moment. First, when you grow fast and do things that have never been done before, lots of things break. Second, very often management may be absolutely brilliant about some matters, but have giant gaping holes in other areas. A CTO may have figured out a breakthrough in machine learning, but have no idea how to run an engineering organization. A CEO may be able to sell sand to a Sheik, but have no idea how to do proper accounting. As a company matures, it figures out a way to augment the leadership and compensate for weaknesses of the CEO or founder. But there are always growing pains early on, as a startup has not yet identified and fixed said holes. You really should be evaluating a startup by the high notes that it is hitting, not by the amount of dysfunction. So it should feel awesome at least some of the time. But the startup may very well feel dysfunctional most of the time. That is ok, the dysfunction can be fixed later, but if there is no market or technical breakthrough, then the startup is probably not going to do well. OP, the questions to consider are: do you have a product that people love (ie, they use all the time and recommend it to others)? If yes, is this a sample of people that is representative a bigger market opportunity? Does your CTO seem reasonable enough that if you demonstrate the value of tests and a build process, he'll allow you to allot time to fix things?
- opendais 12y agoAs someone who works with a legacy codebase from c. 1990 as well as a more modern codebase [that is still 10 years old], both of which lack unit tests... I work for a healthy business that has annual revenues of about ~4 million in gross per developer. So if we can make code that old work, you can make your stuff work. It just sucks. Tbh, if I was you and you honestly believe growth is too slow for the startup to survive, I'd seriously consider jumping ship and finding a new job. I also second the find better programmers than you and learning from them. Tbh, I tried to avoid that to get greater job security and I think that was a mistake.
- uptownhr 12y agoIt is a startup, with only 5 developers. In my honest opinion, it should feel dysfunctional at this point and you should be stressed out. I don't know what you expect but don't expect it to be easy breezy and lots of learning. There is a point for that but it sounds like they are just trying to crank things out. This is your first job and you should treat it like boot camp and get as much as done as you can. Do your job and think about criticizing later once you have gained some experience and have something to compare against. So write this post again on your next startup.
- tfarmer 12y agoI just started at a startup as well straight out of college. If you are only pushing to release every 4-5 weeks, that is extremely slow. You should also suggest moving to agile with more developers in smaller teams. Odds are, if you don't feel great about being with the startup, it isn't going to end well. GL