[HN Gopher] How to maintain engineering velocity as you scale ___________________________________________________________________ How to maintain engineering velocity as you scale Author : sandslash Score : 109 points Date : 2022-10-25 16:00 UTC (7 hours ago) (HTM) web link (www.ycombinator.com) (TXT) w3m dump (www.ycombinator.com) | jahewson wrote: | > From the beginning, we built a simple but solid foundation that | allowed us to maintain both velocity and quality. When we found | product-market fit later that year and started bringing on lots | of new customers, instead of spending engineering resources on | re-architecturing our platform to scale, we were able to double | down on product engineering to accelerate the growth. | | This is the gold standard. It takes exceptional talent to put | together an organization like this while searching for product- | market fit. Bravo! | falcolas wrote: | I'm going to be contrary and say "that's not possible". At least, | it's impossible to maintain feature velocity, even if you | maintain development velocity. | | The reason is simple, in the beginning you're starting with no | legacy code. Features are simple to add, because there is no | history to work around. However, even a month in, features are | going to start blending together, and new features will have to | work around existing features. | | Your databases will get new tables, and the existing tables will | get more columns. The response code is going to fork as the API | versions increment. The API space is going to grow. | | Technology which handled 1-1000 requests per minute will fall | over when they start getting hit with 10,000 requests per minute, | and require optimizations, indexes, caches, and other | complexities in the stack _which aren 't new features_. | | Startups are fun to work for early on, when complications like | these don't exist. It requires more than "the best engineers" to | keep up development velocity, let alone feature velocity. | shadowtree wrote: | When we started in 2009, we did 3 major releases a year | (enterprise software, deep vertical SaaS). | | We now do monthly releases into production, with 80+% | marketshare and 500mil rev just in my product line. | | Scaling is hard, but doable. Takes a lot of willpower and | fighting against gravity. | narag wrote: | They started with "best practices" that maybe slowed them down | at the start, but surely made the scaling smoother. | | Of course scale will have some effect, but the recommendations | seem very sensible like keeping teams small and independent. | JJMcJ wrote: | To use Frederick Brooks's term, the optimizations, the special | cases, the interactions with other parts of the system, start | to become essential complexities as the system grows. | | The skill of your developers is all that stands between the | code base and the total chaos of insurmountable technical debt. | chrismarlow9 wrote: | If companies took the concept of an 'error budget' (every SRE | principle seems to be important to companies except this one) | seriously and saw it as a signal instead of an annoyance there | would be some ebb and flow in this realm instead of a continued | compounding increase where stability sits on the backs of a few | people with the tribal knowledge. Just my 2 cents. | twblalock wrote: | I agree that you can't maintain the same velocity you started | with as the company grows, but there are definitely ways to | keep as much of it as you can. Some companies slow down a lot | more than others. | | In my experience, it ultimately comes down to SDLC. Teams need | to be able to work (mostly) independently of each other. This | means being strict about using API boundaries rather than | sharing database tables between multiple apps, and avoiding | breaking API changes that force you to deploy software written | by multiple teams in lockstep. That is the real reason | microservices are valuable: they decouple _teams_. | jahewson wrote: | Most of the time, yeah that's how it plays out; it's easy to | start from a blank slate. But where I differ is that I'd claim | that most early startups don't even have much velocity. They | don't actually move with speed, but with haste. All possible | corners are cut. As the team scales, the debt comes due and | forward progress stalls. What strikes me about this article is | the forethought that was put into the engineering from the | start - this is a company that really does have velocity and | wants to maintain as much of it as possible. | int0x2e wrote: | One thing I think can really help is to have two different | modes within the same team. You move fast and cut all corners | and rapidly iterate when you have an idea by building a | prototype, with the only goal being maximizing the speed at | which you're learning if/what works and what does. Then you | basically throw away all that prototype code and build the | feature properly with careful attention to code quality and | complexity, testing (++) - since now you actually know what | you're building and that it's likely a good idea. | | Rinse and repeat, so that you only have prototype code where | you're actively learning, to be immediately replaced by | properly engineered solutions or wiped away (with the same | haste you used to create it initially - no "rarely used, | badly engineered" features should stay in your codebase due | to priority / resources / attention constraints). | | The biggest challenge I've had with this approach has been | building and fostering the trust and culture needed to have | everyone truly go "all in" for both aspects/modes of working. | This breaks down quickly if you have managers or PMs drive | engineering to keep the prototype code in for longer, or if | engineering insists on not cutting corners during the | exploration/prototyping phase... | winphone1974 wrote: | This sounds great on paper but I have a hard enough time | getting buy-in to finish the prototype. I've never seen | anyone throw away the prototype and rebuild from the ground | up before waiting years and then calling it "V2" | jasondigitized wrote: | From https://www.stickyminds.com/aricle/hudsons-bay-start | | England's King Charles II chartered the Hudson's Bay | Company in 1670. It is considered by many to be the world's | oldest continuing commercial enterprise. The company | outfitted fur traders for expeditions out of Hudson Bay in | Canada. In this part of Canada, referred to as "north of | summer," having the right supplies in the correct amounts | was literally a matter of survival. And, of course, the | company's survival also depended on productive--and | completed--expeditions. So the company provisioned the | expedition's canoes with the necessary supplies for the | trip. Then they sent the expedition team a short distance | in their canoes to camp overnight. This was a test. The | first camp was merely a "pull out," commonly called for | many years a "Hudson's Bay Start" (HBS). Said Sir Samuel | Benfield Steele in 1874, "[This was] very necessary so that | before finally launching into the unknown one could see | that nothing has been forgotten, or that if one had taken | too much, being so near to the base, the mistake could be | easily corrected." This risk reduction technique was not | free. It cost the team precious time in a short trading | season. They had shipping deadlines to meet. I can imagine | them saying "Yes, but we really have to be on our way or | we'll miss our shipping schedule." | thedudeabides5 wrote: | Step 1. Set up data pipelines that feed into a data warehouse _. | | Amendment if you are using financial data... | | _Step 1a. Rather then building this stuff yourself, go to rose.ai | and use our financial data warehouse, pipelines*, and pre-built | models to save yourself months. | | *If you are in tradfi, we have Bloomberg, Refinitiv, FRED, CapIQ, | FactSet etc. | | If you are in crypto, we have integrations with the blockchain, | Dune, coinmarketcap, coingecko etc. | WarOnPrivacy wrote: | > Faire's engineering team grew from five to over 100 engineers | in three years. | | If I'm reading the (below) image correctly: They did this by | staying as far away from older engineers as they possibly could. | | ref: | https://www.ycombinator.com/blog/content/images/2022/10/3.jp... | myvoiceismypass wrote: | Yikes. Not a single grey hair to be found | mescortes wrote: | This photo was the whole company at the end of 2018! | | Engineering at that time was about 20 or so people. | lupire wrote: | They seem to have avoided Asians too. | reillyse wrote: | It's interesting to see CI wait times as core engineering metric. | I 100% agree, so much so that I'm building a product specifically | to speed up CI. We have redesigned how hosted CI works focusing | on speed as our north star. We don't have CI wait time - your | test starts immediately and we run your tests super fast. How do | we do it? We have many workers with your test environment pre- | built so we can split your tests and start running your tests in | seconds. If anyone is interested you can check it out at | https://brisktest.com/, I'd love to hear any feedback from the | community. | andreareina wrote: | It looks like you're focused on ruby and javascript at the | moment, is python on the roadmap and how far down? | 0xbadcafebee wrote: | _" Hiring the best engineers"_ | | Every company can't have the best engineers. They cost too much | and they're a finite resource. I would argue that the quality of | engineers is just going down, too, as the hiring pool is flooded | with people who've had zero tech experience, and then took a | bootcamp and "churned on algorithms" to finally land a tech job. | You probably will end up with poor to average engineers, and | you'll have to deal with that. | | _" Building solid long-term foundations from day one"_ | | You have average engineers. The foundations they make are not | going to be solid. And even if they could make solid foundations, | your founders won't care. They just want to ship ship ship ship | ship. So your foundations aren't going to be solid... and you'll | have to deal with that. | | _" Tracking metrics to guide decision-making"_ | | Never seen it done well. If you have the time and staff to | properly do this, you're either crazy lucky or are swimming in | cash. Those days are probably gone... and you'll have to deal | with that. | | _" Keeping teams small and independent"_ | | Remember Conway's Law? The more teams you have, the more | fractured your architecture becomes. Obviously you can't have one | infinitely big team, so the key is to have as few teams as you | can get away with. Integrate them tightly - same standards, same | methods of communication and work. Eliminate monopolies of | knowledge. Enforce workflows that naturally leads to everyone | being more informed. (For example, every team having stand-up on | a video call means none of the teams have any idea what the other | teams are doing) | | There's actually a lot of evidence-based research and practical | experience out there, that's been around for _decades_ , that | shows how to maintain the productivity of organizations, | regardless of whether they're growing or not. But they're not | trendy, so nobody working today gives a crap. Actual productivity | gets ignored while managers pat themselves on the back and start- | ups churn out banal blog posts with the same lame advice that | _thousands_ of startups have used and still completely failed to | maintain velocity with. We all know how startups today really get | by: burning through staff and money, and luck. | robocat wrote: | > Every company can't have the best engineers. They cost too | much and they're a finite resource. | | Your argument assumes there is an efficient market for | engineers, and it also assumes that an engineer's productivity | is independent of the company environment. | | There are multiple counterexamples of startups that have built | great teams for cheap money. There are many reasons why great | engineers can be underpriced or under-productive, and many | reasons why mediocre engineers can be overpriced. | | You _can_ get the best engineers if you have the smarts to do | so. Currently on the front page are two relevant links: | | (1) a CEO's opinion on what that takes for the funnel (not | engineering specific): | https://www.ycombinator.com/blog/learnings-of-a-ceo-matt-sch... | | (2) a CTO's? opinion on how companies fail to catch the best | engineers: https://blog.southparkcommons.com/startup- | engineering-hiring... | | It definitely is not easy - and it takes unusual skill to | succeed - but that doesn't make the advice wrong but only | extremely difficult. If you lack the skill, then partner up | with somebody who does, or find a mitigating strategy, or don't | become a C*O for a startup. Edit: I am an engineer and I hate | rah-rah thinking, but if you don't have enough belief, and you | poohpooh all the advice of others, then perhaps you lack the | temperament to be a founder. I was a successful founder, but | only by joining with others with the skills I lacked as a | cynical engineer-type. I think it is amazing that engineers are | now regarded as critical - I am from a decade when MBAs were | the hot thing! | [deleted] | diceduckmonk wrote: | > We use Redshift to store data. As user events are happening, | our relational database (MySQL) replicates them in Redshift. | Within minutes, the data is available for queries and reports. | | Is data engineering really this simple? | Fiahil wrote: | No, making the data available is only the tip of the iceberg. | | Next in line is how to version your data so you can create | consistent "snapshots" at given point in time with no leakages. | itsmemattchung wrote: | > For us, pods generally include 5 to 7 engineers (including an | engineering manager), a product manager, a designer, and a data | scientist. | | Similar approach to Amazon's internal two pizza team | philosphy[0]: every internal team should be small enough that it | can be fed with two pizzas. | | [0] https://www.theguardian.com/technology/2018/apr/24/the- | two-p... | beckingz wrote: | Having a full team that can operate autonomously is the only | way to scale effectively. | cjblomqvist wrote: | Each pod should have a clear leader. We have an engineering | manager and a product manager co-lead each pod. | | So, 2 leaders is "a clear leader"? How does that work? Sounds | contradictory? | whakim wrote: | I can't express how much I dislike the advice to be "data-driven" | and collect all the data you possibly can because it could be | useful someday. While this may or may not be sound business | advice, it's deeply unsettling to see such profound disregard for | user privacy trumpeted as a key to scaling quickly. | ta5765765 wrote: | Optus and Medicare in Australia have recently had major | breaches and the fallout in public opinion is still going on. | | A panel on the news was interesting; one person likened data to | uranium - dangerous to hold and difficult to dispose of. The | other likened it to the new gold. | | It'll be nice when legislation tightens up to minimize the | latter feeling. | hotpotamus wrote: | Huh, I fairly recently started working in healthcare records | and I actually told people that they way they talk about PHI | (personal health information), you'd think the hard drives | were radioactive. In fact we had to come up with and follow | some very detailed procedures to dispose of it. | kondro wrote: | Medibank (private health insurer), not Medicare (public | health service). :) | claudiulodro wrote: | I would say it's not necessarily ideal to keep shipping a bunch | of features and changes every week as you scale. Once you have an | established customer base, change needs to be managed and | customers need a heads-up on things that will affect their | workflow: you'll want to do deprecation periods, beta periods, | have backwards-compatibility, etc. No customer is grumpier than | the one whos critical workflow you just totally changed without | warning! | | I suppose as long as those sorts of tasks count as maintaining | engineering velocity, it's all good though. | vasco wrote: | This is bullshit advice. Hire the best engineers? Might as well | say "don't make mistakes" in a list of advice about how to | minimize mistakes. Same thing with building solid foundations | from day one, maybe you do it, but more likely is that the person | that comes in to make sure velocity can keep up is different from | the core group that was just iterating to find PMF. | | The other two points are more relevant, but I feel like half of | this advice is not really useful. Way more to learn from | descriptions of turning around a codebase of CI/CD pipelines that | were struggling with slowness, flakeyness, contention and how to | dig yourself out. Those stories at least you can learn from and | adapt to your situation. | | If "hire the best engineers" is your advice for anything, that is | only a tenable strategy for VC backed startups willing to burn | 200k/person from day 0, but I guess this is on a VC blog, so what | can you expect. More useful advice is "how to do X with normal | people". | marcinzm wrote: | The thing is I've met founders who implicitly don't want to | hire the best anything. The best are driven, intelligent and | experienced which to some founders comes off as a threat. So | they hire yes people instead who won't push back. | _hl_ wrote: | "Hire the best engineers?" doesn't read like bullshit to me. A | lot of startuos start out with scrappy teams who only half know | what they're doing in their domain. That's partly because the | domain changes every couple of weeks. | | When you scale, that changes. It's _crucial_ that you hire | competent people for whatever your startup ended up doing. Have | a lot of frontend? Hire UX designers and senior frontend | engineers with 10+ years experience. Doing advanced AI? Hire | someone who 's been in that space for 5-10+ years. Etc. They're | worth every penny. | | The logic of fake-it-till-you-make it doesn't scale, but many | don't realize it early enough. | hammock wrote: | What is missing is the tradeoff. Hire the best engineers at | the cost of what? It's not a strategy until that's | articulated. | | For example you say "they're worth every penny" but are they? | Would you borrow from your 401k to hire them? Pull your kids | out of college to afford them? They might be worth a lot- | what are you suggesting gets traded off? | [deleted] | [deleted] | jasondigitized wrote: | This is like a poorly written mission statement like "Win the | enterprise market". Of course we want to win the enterprise | market and hire the best engineers. Any statement whose | converse would be an absurd business tactic should be treated | as not particularly useful. "Hire the worst engineers!" This is | like a college football coach saying "Recruit every 5-star | player in the U.S." | | We all want to hire the best engineers from day one. The | execution of that strategy requires a combination of early | wins, interesting problems, technology stack, compensation, | leadership, culture, vision and geography to attract top | talent. Faire may be able to check most of the boxes, yet some | rock star is going the find the business model boring and the | leadership uninspiring and go work for an org that is more | aligned to their values and ambition. | | Hiring the best engineers is table stakes for a company | centered around a love and deep appreciation for building and | shipping magical software. | | Even from day one, no competent founder says "I should | deliberately not hire the best engineer I can find based on the | comp I can offer". You may not be able to get them, but that | shouldn't change your hiring strategy. | Beltalowda wrote: | "Hire the best engineers" is somewhat simplistic, and I don't | think the article offered great insights on that, but ... all | business where I worked that had problems actually Getting | Stuff Done were due to either bad hires or excessively bad code | (which is often the same as "bad hires", or rather, the result | of it). | | I've never seen tooling really help. I mean, it's nice, saves | time and effort, ensures some degree of quality, and all of | that, but it doesn't really move the needle all that much in | getting stuff done compared to having a team that works well | together. Actually, I've seen desperate adoption of tooling in | futile attempts to fix these more fundamental issues, which is | how some companies end up with 40 linters that moan and whine | about every little thing so everyone is adding //nolint | statements every 20 lines. | | In short, I do think that it's good advice, although personally | I'd phrase it as "hire the right people". Someone who is a good | engineer - maybe even among the best - will not necessarily fit | in well with any team, or any job, and there are other | important qualities too aside from engineering skill. A junior | can be a good hire for your team, even in a startup scenario. | | How you actually hire the "right people" is of course not easy. | jgulbronson wrote: | I was the first backend engineer hired at Faire joining 2 of | the cofounders in early 2018. I can assure you I wasn't getting | paid anywhere close to $200k when I started, and neither were | my extremely talented colleagues. | vasco wrote: | This is going to sound harsh, but based on this, you weren't | the "best engineers", I'm sorry to say. If you think the best | engineering talent in the world is working on some random | ecommerce website for less than 200k/yr, I have news for you. | And you know what, that's fine, because people who care about | "best engineers" usually suck. What a vapid thing to waste | time wondering about. I'd bet you have hardcore impostor | syndrome in all your new hires if this is the messaging you | put out. | | What you want is hard working people that are cool to work | alongside and fix problems without much drama or bike | shedding, not "the best". This circle jerk of "best | engineers" is only useful to pay you less and keep you happy. | | Instead of calling each other best, focus on the work and | show the work, if it's good, people will judge your | organisation's engineering skills appropriately, otherwise | you're just patting your own back for no reason. | jgulbronson wrote: | All good! I agree with you, at the time I wasn't one of | "the best". But I think there's a couple key things, one of | which you touched on. | | The first is that "the best" is subjective. To me, the best | engineers _are_ the ones who you enjoy working with and | don't cause drama or bikeshedding. Some 10x programmer who | everyone hates working with isn't "the best". So perhaps it | all depends on what traits others are looking for. | | The other is that as a startup you can try to hire "the | best" engineers today, _or_ hire people who you see | potential in and can grow with the company. I'd put myself | in that latter group, along some of my extremely talented | coworkers I mentioned. Having that growth opportunity is | part of what attracted me to Faire in the first place, and | is a way to compete for talent on more than just comp like | the original comment implied. | vasco wrote: | Thanks for sharing! And sorry again for being harsh, I'm | keen on reading some more shares about actual strategies | in engineering tooling or others that you worked on to | keep things chugging along. The focus on metrics I think | is very under-appreciated in our industry and the more we | can standardize to compare velocity and easily identify | companies that don't give a shit about developer | experience and velocity, the better in my opinion. | | I would say that I believe it's a much happier life the | less you think about how good you or your colleagues are | and the more you think about the systems and the tools | you develop. I really meant what I said about impostor | syndrome, I'd be curious what answers you'd get from your | engineering team regarding that, if so far you've focused | a lot of your internal messaging / culture on "being | good", you might find some opportunities for honest | feedback and sharing which might get a more tight-knit | empowered team, which does wonders for velocity. | drewcoo wrote: | There's a nice "you did it wrong" pre-built into "hire the best | engineers." | | What? That didn't work? Well, they weren't the best. | cheschire wrote: | My reaction to the table of contents was similar to yours, and | I think it was a poor choice of words to summarize the first | section. | | Maybe something like "Hire customer-oriented engineers" | would've been a better title for section one. | | I think the "grit" and expertise in core technology are also | important points, but it doesn't hook a reader the same way as | saying "don't hire an engineer that can't adapt to the | customer" (gloss over the double negative) | hatware wrote: | > Hire the best engineers? | | Whenever I see this, I read it as "Hire the most loyal drones." | hayst4ck wrote: | Here is what I think are several root causes of poor velocity | 1. too much focus on hiring 2. lack of clear | responsibilities 3. lack of management <-> line worker | interaction 4. bad mentor <-> new grad ratios 5. bad | product development to infra (build infra/infra infra/dev tools | etc) ratios 6. mistaking prolific senior engineers for good | senior engineers 7. letting senior engineers off the hook | for maintenance 8. lack of some process 9. hiring | specialists | | One can ask what sacrifices you make to hire good engineers. You | might choose to make exciting infrastructure investments rather | than a necessary investment. You might promise that the "good | engineer" won't have to do incredibly boring work. You might hire | people who have made a career out of avoiding the real high risk | pain centers of a company and instead working on high visibility | low risk problems. How much of which engineer's days will be | sacrificed to interviews? The engineering concessions made | towards the goal of hiring are likely an underrated root cause of | poor velocity. | | I watched the most festering pile of code at a company be hot | potato-d between the vp of infra and vp of product. The CTO was | checked out and not in touch with what was happening enough to | know this was a problem. Neither VPs brought it up as a problem, | because neither wanted responsibility and therefore the likely | black mark by their names for the uphill battle that would | result. The company deeply suffered because there was no advocate | for the companies highest pain area because everyone with power, | clout, or authority avoided responsibility for it. | | When management gets insular, and management fails to solicit | direct feedback for line workers, they can't be sure the picture | they have in their head is what matches reality. This creates | management level delusions about the state of their engineering | org. We can see this played out in US vs Russian military | structure. Management sends goals down and expects them adhered | to. Failure results in punishment. This creates rigid planning | and low agility. The US military instead gives lower levels large | leeway to achieve higher level goals. It is the lower levels | responsibility to communicate feasibility or feedback, and more | importantly it is upper managements responsibility to adapt plans | based on feedback. I was absolutely part of an "e-4 mafia" | (https://www.urbandictionary.com/define.php?term=E4-Mafia) and I | knew much better than my superiors what was happening, why it was | happening, who was doing it, who could help doing it, and its | likelihood of success because I was in the weeds. When I laughed | directly at managers who told me their plans, they thought it was | something wrong with me, not something wrong with their plans. | That was half management failing, and half my inexperience in | leading upwards. | | Every new grad needs one mentor to prevent them from doing | absolutely insane overly complicated things. If you do not have a | level of oversight, complexity will bloom until it festers. A | good mentor preventing new grad over complications can save an | incredible amount of headaches. New grads should not be doing | other new grads code reviews (for substantial work). Teams should | not be comprised entirely of new grads and an inexperienced tech | lead. New grads are consistently the largest generators of | complexity. | | I worked at a place where there was 1 person working on build | infra. .2% of the company was devoted to making sure we had clean | reliable builds. I estimate 5-15% of the engineering org quit due | to pain developing software, which meant there was a lot of time | spent interviewing people and catching them up rather than fixing | problems. I don't know what the right ratio is, but I can say for | sure that if you don't invest in dev tools/build infra etc, early | enough, you will hit a wall and it will be damaging if not a | mortal wound. | | There are lots of engineers who code things to be interesting. | They write overly complex code. They lay down traps in their | code. It's rare for there to be a senior engineer who writes | boring, effective, and, most importantly, simple code. Some of | the code I've seen senior engineers write violates every | principle of low coupling, no global state, being easy to test, | etc. These people are then given new grads who learn to cargo | cult their complexity until it gets to the point where someone | says 'we have to re-write this from scratch.' | | There is an anti-pattern where senior engineers get to create a | service with no oversight, then give it to other people to | maintain and build upon or "finish." Those teams seem to have low | morale and high turnover. The people left on those teams aren't | impressive and so it gets harder to hire good engineers for those | teams. If a team is the lowest rung on the ladder, clearly | evidenced by being given problems and being told to "deal with | it," that will show to new hires only exacerbating the problem. | | Some people hate process, it slows them down. Bureaucracy is | (debate-ably) terrible. One design doc with a review can save | quarters of work. Some process slows progress down now, for less | road blocks later. If process is not growing at a rate of | O(log(n)) or growing at a rate greater than O(log(n)), then | there's probably gonna be some problems. | | Lastly, while it's important to hire good people, it's also | important to hire some specialists. Databases, infra, dev tools, | build infra, platform/framework infra, various front-end things, | traffic infrastructure. There are all types of specializations, | and if you have a good "full stack" product engineer in the room | without say a platform/framework specialist, you will get the | product development perspective without the product maintenance | perspective, and that has exactly the consequences you might | expect. The earlier you get an advocate for say "build | infrastructure," the more you are able to address future problems | before they are major problems. | bentlegen wrote: | Genuine question that isn't answered in the article: what is it | that Faire is doing that suggests they're maintaining engineering | velocity as they scale in a way that is equal or better to anyone | else out there? Alternatively, what are the engineering | challenges of running Faire's storefront/marketplace makes them | more qualified to write about their experiences scaling vs. other | organizations? | | This article opens with an unsupported assumption, "we are really | good at this", and doesn't really elaborate on what that means. | I'd genuinely like to know what great engineering at scale looks | like, not just some suggested ways to do it. | kevmo314 wrote: | Adding on all that, is a 100 person team really necessary to | run a storefront? That seems like the antithesis of maintaining | engineering velocity. | winphone1974 wrote: | From my experience scaling to a 100 is also pretty easy. You | don't get consistent results across all your teams but you're | small enough to mask this with direct communication and adhoc | process. The foundational stuff really pays off when you go | to 200, 300 plus, and you will definitely slow down. | rubyist5eva wrote: | lol this feels like exactly the opposite of what's going on at my | company now: | | 1. Hire the best engineers: fire half the dev team and replace | them with offshore devs for pennies on the dollar 2. build solid | foundations: cut every corner possible to get whatever crazy deal | our sales team made yesterday 3. tracking metrics: uptime? who | cares, CI taking too long? whatever | | well, I suppose our teams are small when they literally fired | everyone and made the "team" so small it literally couldn't be | smaller or it wouldn't be a team (there is 2 of us now). Hardly | independent though since we're shackled to the whims of clueless | sales drones that have zero clue how building software works. | winphone1974 wrote: | So they value "grit" which is defined as the ability to code and | push features in near real time, as told to the CEO at a multi | day trade show, then follow that up with explaining the | importance of building a solid foundation. | | Pick a lane. | sitkack wrote: | Doesn't mention Conway's Law or the Scientific Method, Continuous | Feedback or Composition. | | Scaling an organization uses the same techniques as creating | scalable (computer) systems. Systems are systems. | | https://en.wikipedia.org/wiki/Conway%27s_law | | If your systems relies on "hiring the best engineers", it is | operating Open Loop. All Open Loop systems will suffer | catastrophic failure at some point. | | Grit is a dog whistle for grind. You can be tough and resilient | and flexible w/o being gritty. | arunc wrote: | This is my practical experience. I couldn't have put it better | in words! Thanks! | hrpnk wrote: | > Pods should operate like small startups | | This only works if a pod is equal to a domain that's fairly | independent of the other domains, technically, and business-wise. | | If there are N pods per domain, each being their own startup | without additional coordination results in chaos and duplicated | work. Business complexity not included (two pods from different | domains can unknowingly work against each other due to having | conflicting goals/targets). | ThalesX wrote: | I wish I'd see advice where they prioritize having a roadmap, | milestones, an actual plan of execution, after Product Market Fit | (PMF) has been found. And before you find PMF, any concern for | hiring the 'best engineers', building a 'solid foundation' is | moot. | | I feel I'm going insane expecting product people to put the time | in to define the requirements and context; I get weird looks | asking startups about the plan for the next week. "That's how | startups do it" is just the most bullshit excuse I keep hearing | constantly regarding lack of planning. | hef19898 wrote: | "That's how startups do it" is the startup equivalent to | "That's how we always did it" at big companies. And both | approaches suck equally. | lifeisstillgood wrote: | - Have devleads as the central crux for every major decision. | Screw "senior" management - make sure that the people who are at | the codeface every day are part of the major discussions - that | those people need to be persuaded of the need for product X or | pivot Y. Because they do whether you treat them like it or not. | | - the above means you are "surfacing" politics. Do not keep the | backbiting and infighting amoung a cabal of senior managers who | talk to each other a lot. Make it public | | - Have _one_ place to have these discussions - an email list | probably, and the only way to get your project signed off is to | get agreement on this list (well, Ok the CTO can have some veto | power - this is not a democracy of course) | | - Analysis really works. Publish one-page analysis of the | proposed project. Watch it get destroyed with evidence and | laughter and then watch _even better ideas_ get proposed. | | In short scaling is a political problem - treat it like one. And | engineer the horror out of politics. Democracy and transparency | are pretty good at that. | | Edit: Buidling a business IMO has strategic, operational and | tactical levels. Strategy should be obvious, be PMF and be well | known in the company (a PC on every Desktop). Most of the article | is _tactics_ - hiring, metrics, stack etc. The hard part is often | operational - and that is almost always orgabisation design and | that is about communication, alignment of resources, trade offs, | etc etc. That 's hard. Dysfunctional organisations blow this. | Open politics fights dysfunction ___________________________________________________________________ (page generated 2022-10-25 23:00 UTC)