Hacker News new | past | comments | ask | show | jobs | submit login

I once chatted with the foreman of a skyscraper construction project who happened to always be standing out on the street near my office where I regularly got coffee, and I got to ask him a bunch of questions about the process. It was a lot of "what's that guy up there doing with that giant temporary platform" and "why do they X" kind of stuff, but when I was asking about the crane that was eventually going to have to be doubled in height when the building got too tall, he blew me away with the precision and confidence about that progress. "That will get jumped up on Memorial Day" he said, and that was several months away. I asked him how he could be so certain, and he explained that they build one floor per week, and the various trades (concrete, framing, electrical, plumbing, finish) each worked on one floor at a time in a pipelined fashion. So while concrete is working on the 19th floor, framing is working on 18, plumbing on 17, etc. When I asked what happens if one of those trades doesn't finish within their week, he looked at me like I was absolutely insane. "That doesn't happen. It can't. They have a week." Sure enough, the crane got taller on Memorial Day. After hearing that explanation it was fascinating to watch the progress and confirm that every tuesday, they'd start pouring concrete on the next floor up.

Coming from a software perspective, I thought this was pretty impressive. When was the last time anyone told you something was going to take a week and it actually took a week? :D

BTW, to answer a question about the crane, there are regulations limiting the crane to a specific height which change once the building gets tall enough to support having the crane bolted to the side of it.




I can say how long my software compile or build time takes fairly accurately. That's the better analogy to use with construction. The rest of the software project is design work, I'm moving walls around, adding more load bearing, and so on.


I’m surprised how often people are wrong about simple things like this. If a build takes five minutes, that’s the absolute least amount of time before you’ll have a binary. The CI tool could have a queuing glitch. You could have a flaky test, you could be failing to isolate multiple integration test runs properly and one could ruin the other.

But that’s just the simple stuff, the stuff without humans. Most of the time if something will take five minutes, we often try to find something to do that will take a few minutes. Well guess what, we always underestimate how long things will take, ususally by a factor of two. So a five minute build can take ten minutes for you to notice if it succeeded. And if it failed thirty seconds in, you might still be looking at fifteen to twenty minutes to the end of the second build (the more failures the lower the likelihood someone will multitask, but for some they only watch the third try closely).

This doubling and tripling is why it’s more important than you might expect for compile and test times to be very fast. An extra minute can turn into three way too often.


the workers in trades in a construction project have plans. they have schematics that say do this here. to this exact dimension. using this exact type of connector. they don’t (usually) say which tools to use or how to do everything, it’s assumed you know

compare this to a software team that has plans (design docs) for everything they want o build. they have schematics (tickets) that say do this here. to this exact interface. they don’t (usually) say which tools to use or how to do everything, it’s assumed you know

i don’t think these scenarios should be that far apart. those people in the skyscraper aren’t moving walls. that would screw over the whole project. they have the output of more planning so they don’t have to. and it paid off during implementation


Buildings are typically cookie cutter designs that aren’t too different. The ones that are have all the same problems - you have to adjust the design on the fly (see Burj Kalifa).

Additionally, when your in the middle of creating your building, the owner doesn’t come in and say “actually, I want this apartment complex to also have a suite of luxury condors on every odd floor”.

It’s a fantasy to think that more planning would make software development cheaper or more on time. We tried that. That’s waterfall. And it failed miserably because software supports business needs which change on a quarterly or yearly basis. Not to mention that we need to update our software to take advantage of newer systems or security vulnerabilities. That building you’re putting has a fixed purpose that’s going to remain largely unchanged for 50 to 100 years or so, there’s generally nothing new to learn in terms of techniques and problems (unless your pushing things like with Burj in which case they did have to make on the fly adjustments and delay), and doesn’t have to deal with the challenges of the virtual space that software plays in.

So sure. If you’re a contractor building the same kind of website over and over again, I’m sure you can give a very accurate estimate of how long a given piece of work can take. If you’re trying to build a more scalable system or something totally new that hasn’t been done before, then there’s no plans to follow and you have to iterate until you figure out solutions to all the problems you encounter.


"Additionally, when your in the middle of creating your building, the owner doesn’t come in and say “actually, I want this apartment complex to also have a suite of luxury condors on every odd floor”."

From what I've heard from people working in the construction industry, this sort of thing ("variations" I gather they're called) happens more than you'd think.


A better example would be owner saying “actually, I want a 5-level underground parking below my building”.


At the same time the plans typically allow quite a lot of flexibility and are made in a way to allow late decisions on many aspects.

But then there are, of course, all those late decisions causing major delay.


Sometimes owners do want changes after construction began and some of those buildings collapsed in spectacular manner…


A software project's design doc is like an architectural mock-up: sometimes useful, but not necessary and certainly not part of the construction process.

Programmers write the blueprint. The construction is handled by the computer (compiler, linker, tests).


> compare this to a software team that has plans (design docs) for everything they want o build. they have schematics (tickets) that say do this here. to this exact interface.

That's a recipe for failure


This is such a tremendously ignorant (and frankly harmful) take that it was hard to resist downvoting you. Either you have no idea how software is actually built, or you have worked for some deeply dysfunctional companies and you have my deepest sympathies. If you have any semblance of authority over any software developers, then my sympathies go toward them instead, for having to deal with you. Yes, it's that bad.

> compare this to a software team that has plans (design docs) for everything they want o build. they have schematics (tickets) that say do this here. to this exact interface.

Missing from your description is who is writing those precise plans and tickets that specify exactly what needs to happen down to the "exact interface", whatever that's supposed to mean. Whoever's writing those is your actual software developer, and they're wasting their time. If they already know exactly how the code should work, writing those documents takes longer than just writing the code itself. Throw the documents away and just write the goddamn code. Everyone else is doing literally nothing. What you described is not software development, it's a nightmare-creature feeding on wasted hours and crushed dreams.


If software engineers get too comfortable with one framework or tool a bunch of them will just try something new or some new paradigm since they're bored. This has always been a source of delays in projects I've seen, not sure what the construction equivalent is.

The other side of this conversation is that construction does get delayed or not finished. Talk with anyone that has built a house and they'll have horror stories of months of delays. Commercial is the place to be for construction, residential seems like endless issues up and down.


> Talk with anyone that has built a house and they'll have horror stories of months of delays.

This can easily be explained in the part of the world I live in. Small/medium construction companies prefer to work on bigger projects than a house for obvious reasons. So they'll come over and do parts of your house in between jobs on the bigger sites which freqently means massive delays.


> If software engineers get too comfortable with one framework or tool a bunch of them will just try something new or some new paradigm since they're bored

I often wonder wether this is because software is such a new field (people have been making houses for millenia), or because of the kind of people software appeals to?

Many other professions are much more interested about providing services in time and reliably, than about innovation.


Not even that extreme. Some of our development tools are *really bad*.

I have yet to be anywhere that used Jenkins and didn't make me want to throw the computer out the window with the amount of delays it introduced.


I hope you're not a manager.


Similar story: I asked a friend, who ran public comms on a rail extension project, to see her schedule.

Two Fridays away at 11:05 a concrete truck turns up and pours. At 13:10 something is laid by some specialist in the concrete. At 14:50 another thing happens.

I asked her if she was joking and she looked at me like I was mad. Of course not. The concrete needs to be poured and then the truck goes somewhere else. When it hardens a thing has to happen and then the guy who checks the thing turns up and they’ve only got him for half a day and so on and so forth.

My mate says that “if they built bridges like we built IT infrastructure a lot more people would die”.


My mate says that “if they built bridges like we built IT infrastructure a lot more people would die”.

If people regularly died because of IT infrastructure, we'd be regulated and licensed like civil engineers and we certainly wouldn't be writing software in C/C++/nodejs. We'd all be coding in stuff like Ada and Erlang and most of our day wouldn't involve writing logic at all - it would involve filling out documentation and forms around the occasional bit of logic that would get written, probably by someone else.


Have you heard about this newfangled GDPR thing? You comment kind of reminds me of that


Did you ask her what happens if the concrete truck gets stuck in an accident on the freeway?


They send another truck because of the first one didn’t make it in time the concrete company is going to have a fun day cleaning stuck concrete out of their truck.

My father-in-law was in commercial construction for decades, now turned general contracting post 2008 recession, and he has binder and binders of contractor business cards, including a concrete section. I can assure you project managers would be frantically calling all concrete companies trying to find a replacement. And they will.


If it's a railway project they have likely booked several trucks already, doing several deliveries, so one of them having an accident is not likely to matter.


Forgive me if I’m wrong — I have a sibling comment here and am not a construction PM — but no. This comment beautifully demonstrates the point: the disconnect between our industry and the physical world.

There are not just concrete trucks just lined up down the road, waiting for a PM to say “okay we’ve got enough, you can stop now”.

The amount of concrete is known. It is planned. The 3rd party concrete supplier is given an order well ahead of time. They plan their trucks and drivers. None of this is made up on the day.

One of them having an accident matters.

This is why IT projects are such a shambles. When we forget something — a change request, say — we just say “oh well, that’s a pity”. Some poor schmuck has a bad afternoon running around making it good and life goes on. We get away with it because it isn’t concrete in a truck.


You might be overlooking into what I wrote.

One truck can deliver about 8 m3 of concrete. If you need 100 m3, that's about 12 deliveries.

This can be done if 4 trucks make 3 deliveries each, or if 3 trucks make 4 deliveries each. The supplier has several trucks and while each one needs maintenance rarely, the fleet of them needs maintenance almost daily, so the supplier is likely to either over-provision (have a spare truck), or be able to procure one from his competitor across the street. "One of the trucks having an accident" is already planned in on the supplier level.


Ah, I get you. Apologies.


I did not, but now that I know more about project management — PMP® specifically — I can probably answer that for you.

Risk management. Which in the real world actually means something, unlike those horribly pointless risk workshops your PM makes you turn up to.

The work package that contained the concrete truck would have assigned to it a risk. These risks have been carefully thought out ahead of time. I dare say in the building industry they re-use them. What an idea! Learning from your past. Anyway.

So the risk here is that ‘the truck gets stuck in an accident’, and that risk has a rating. An amount of money is assigned as a reserve to this risk in the event that it happens. This money is part of the project’s budget but ideally you never spend it. But it’s there.

So if the bad thing happens — freeway accident — the PM pulls out their risk register, looks it up, calls the boss, says “hey that risk eventuated, we need to use that reserve”, the funds are released, and the risk mitigation is initiated.


It makes sense when you consider each floor is essentially identical. I imagine skyscrapers and the like should be pretty predictable once the foundation is set up - it's just rinse-repeat for the next hundred floors (mostly). You don't have to deal with any preexisting limitations either, way up in the sky (unlike ground infrastructure, which has to deal with rights of ways, underground services, etc).


A better software analogy would be "how long will it take to deploy the next Kubernetes cluster?" which can be fairly accurately predicted if you know the number of nodes etc. and how long it took to deploy previous clusters.


Depends on the skyscraper. Lots of them taper or otherwise vary as they go up, so each floor is subtly different.


Different measurement, same process. It almost doesn’t matter how much minor fluctuations there are, they basically know they will need X plumbers and Y electricians and how to space them out. Given that they can adjust weekly as needed for these minor fluctuations.


If you're interested in learning more the term to search is "takt-time planning", specifically as it relates to lean construction methodology rather than manufacturing.

https://en.wikipedia.org/wiki/Takt_time


Knowing German I thought for sure this is the word I know from German. And it was but surprisingly through Japanese takuto taimu.


I've never been on anything that tight, but I'll say that the projects I've been on where we used Gantt charts and had a dedicated project manager got done with a lot more precision than anything managed by an agile process.

Maybe it's just me, but having my reputation staked on my estimates with an easy to read chart of dependencies and deadlines helps me 'servo' my effort(i.e. work overtime) and come in closer to the estimate.

I wouldn't suggest that for everyone, but some of us like that sort of pressure and the feeling that comes with nailing it. Then again, I don't have kids.


Never once got someone with a hardon for Gantt charts to make an honest graph of what depended on what, so I have nothing but bad, borderline traumatic experiences with Gantt charts.

Management always tried to ride them like it was sheet music for an orchestra. This has to be done before this, so we’re going to schedule one to start the day after the other finishes. Sure. This whole scheduling process is a farce so I’m now entirely checked out, so it’s just going to get worse as the meeting goes on.


Bruh stop being a bootlicker; even if you enjoy doing unpaid work, you're undermining your colleagues who probably don't. When the work takes longer than estimated, that's a problem with the estimate, not a reason you should be giving more hours of your life to rich owners.


> even if you enjoy doing unpaid work, you're undermining your colleagues who probably don't

Busting my ass in my younger days to make "impossible" deadlines was far from unpaid work. It was a conscious tradeoff that paid off extremely well in cash and stock, and nobody cared about "undermining" their colleagues who had the exact same opportunities but chose not to chase them.

I don't "enjoy doing unpaid work", I "enjoy impressing people who casually throw big bags of money at people who are useful to them."


IIRC this falls into classic fallacy where teams set low goals so as to always exceed them. The better way is to have people estimate and bet money on delivery.


Maybe a bigger company could do it like some card games decide on who will choose the game: Make several teams "bid" on the contract, the one with the best bid gets it, but winning the game (e.g. getting bonuses) depends on if they can actually deliver on their bid.


> where we used Gantt charts and had a dedicated project manager

I'd argue that the dedicated project manager was much more important for success than the Gantt charts.


> Coming from a software perspective, I thought this was pretty impressive. When was the last time anyone told you something was going to take a week and it actually took a week? :D

If you are asked to write the same exact piece of code (like each floor) 18 times you'd probably have no problem meeting schedule.


And, crucially, the entire project is preplanned. That preplanning is the software phase equivalent - the construction is running the code. (Or at least, the preplan is defining all the necessary function definitions and connecting them confidently, and construction is just writing each implementation.)


I can tell you with great precision how long it will take me to build software that has requirements as precise as a skyscraper's. The problem is that most of the time the software to be built has nebulous requirements


And changing ones. I imagine once a skyscraper's plan is set it really doesn't change much at all.


> "That doesn't happen. It can't. They have a week."

Maybe it didn't happen that time, or maybe it did and they remediated somehow (at higher cost), but I have a dataset that says it happens all the time. And that "it can't happen" attitude is part of why it actually happens- nobody is looking ahead at uncertainty.


Did you ask him if the design phase had proceeded so smoothly?

Writing software is the equivalent of creating the blueprints; compiling is the equivalent of pouring concrete.


This could be because construction (civil engineering?) is a fairly mature field that's been around for hundreds of years. Of course there's new materials and designs and everything but there are also established methodologies and standard practices.

Add things generally go according to plan in Western countries so I'm not surprised. (I'm from a non-Western country where long term planning of anything is futile — too much entropy and chaos).

Computers, software etc is a very young field in comparison. By the year 4723 things would hopefully be standardized (and possibly build themselves).


While the maturity of the field is surely part of it, the fact remains that a typical piece of computer software almost certainly has a lot more unique complexity and functionality than a typical building. It's pretty rare a building is expected to provide the ability to do something that no other building has ever done before, yet we expect this sort of thing of software all the time. Nor is a building expected to perform complex logical and arithmetical operations while in use, or if it is (e.g. software controlling the elevators or climate control system), it's using more-or-less off-the-shelf componentry to do so.


I would say that both you and the parent are right. Software engineering is both new, and non-standard. So we get worst of both worlds, on one hand there are no good truly standard practices, and on the other the technology is very complex and rapidly changing absolutely all the time.

Knowing this, one could say that its a minor miracle anything gets shipped in this industry.


My impression is a week is far more time than they need.


Have you ever worked on the construction of a skyscraper?


My impression is from the story.

He said of course they can finish, they have an entire week. Apparently he was incredulous. How does that NOT point to a week being more than enough time?


The answer is no, obviously. I have.


A Chinese construction company built a 10-story building in a day, and a 57-story skyscraper in 19 days.

I am not sure what "union break" is in Chinese...I would brush up.

You can say that we need experts, teams of consultants to issue reports at $1,000 per hour on disturbances to the local newt population or whatever, we need to pay off the bureaucrats in planning, we need to pay the unions and organized crime in NY...the reality is that someone has to pay this, and the US isn't efficient anymore. Layers of graft at every stage. China has just cut out the corruption, and they can sell the same goods at half the price, make double the profit...they just do it better.


Have you ever worked on the construction of a skyscraper?

I only ask, because, well, that was my question originally, and, well, because your question does nothing to answer that question.

So, have you? Or are you just another online bystander?


[flagged]


For the record, yeah, I’ve worked on putting up multiple skyscrapers. From the on-site work (physically speaking: I was a field surveyor laying out grid lines and offsets for the other trades), and off-site (as a construction project manager).


Hey that’s great to see a construction manager on here. I write software specifically for our superintendents and construction managers and foremen at some of the mega projects my big construction company works on (I’m sure you’d recognize the name if you’ve worked in the industry).

I find it really rewarding work because with software I often feel detached from the work I do. I’m going to get to go on site and see something getting built soon and I’m excited!


> Let's get this straight: you haven't worked on the construction of a skyscraper, but you just go around shutting down arguments you don't like

Where do they say that?

> The reason why it can be done quicker and cheaper is because that is already happening

Have we seen any evidence that the construction is just as consistent & reliable long term or that the speed isn't at the cost of the worker (safety or benefits)?


I will ask you a question: you go into the doctor, he says you need surgery immediately, you ask why, and your doctor asks what your medical qualifications are...does this seem like something a doctor would do?

Have we seen any evidence that this isn't the case? And the inherent assumption in your argument is that preserving "the worker" (I am not sure what this means) is a fair price to pay for hundreds of billions in graft every year...okay, why? The point of comment is to demonstrate that the purpose of building infrastructure is not to employ consultants, but to build buildings...the false narrative about "the worker" is exactly why several hundred consultants with Ivy League degrees are taking home $1k/hour for no-show consultancy jobs...thank God "the worker" is okay though.


Ok to be fair that’s called tofu building 豆腐工程 and it’s a different form of corruption.


Buildings collapse in the US too. And it actually results in buildings get built.

You think the US isn't corrupt: how many consultants are taking their piece? The contractors, planning bureaucrats, the environmental consultants, architects, lawyers...it is endemic. At least in China you only need to pay off a few people, in the US you need to pay tens of thousands of consultants whose have acquired this role of tax collector through collecting various bits of paper from corrupt institutions (thank god for legacy admissions, right?).

No-one cares how sausage is made, they just want to know how it tastes. Chinese corruption gets things done. US corruption breeds more weakness, more waste, more corruption.


How common exactly are building collapses in the US - particularly in large scale construction?

I can think of maybe 3-4 over the last 20 years. How common are they in the developing world? that'd seem to be a much higher number.


The US vs the entire developing world? LOL, of course there are going to be more in the developing world, since that covers most of the habitable parts of the planet.


“Chinese corruption gets things done.”

Citation needed…or not. It’s an obtuse claim on its face.

I’d argue corruption is an inherently corrosive influence, and the necessarily large bureaucratic apparatuses involved with things like large construction projects are particularly vulnerable to corruption.


I'd cut the country stereotypes out of the picture, but there's definitely more than one kind of corruption, and the kind of damage it does changes.

You are absolutely correct that large construction projects are very vulnerable to corruption: Anything that has as high a budget is going to be rife with opportunities. But a project's culture will alter the kind of corruption you get. I was quite close to the construction of bridge spanning over a river, a little under a mile wide. Significant slippage in the delivery date was going to be very annoying to the powers that be: Being able to finish the construction prior to the next election was important, and being seen as the cause for a delay was going to lead to losing more projects that some of the very same people were going to keep overseeing in the future. So the bridge was done on time. It's just that a lot of palms got greased, and extra 'cement money' really went into things it shouldn't. For instance, the bridge's main engineer had just bought a derelict house that was completely restored by 'elves', from the construction company.

Sometimes the fact that something took 4 years too long is tolerable to the powers that be, while the construction definitely remains safe. Other times, the construction is just going to prove really faulty in 15 years, because things didn't go over budget, and someone took the difference between what the spec called for, and what could possibly appear to be a completed project.

Same with permitting. In some cities, corruption means you don't let people build something because you don't want it. In others, the mayor tells their friends to buy land zoned for low density, and then rezones to let them build 20 story buildings, making a mint. Still corruption, but different parts of a project suffer the consequences.

Only truly cursed projects manage to take 4 times as long, 20 times the costs, and end up with something awful in the end.


Are you aware of how much building China has had to do? There is no citation needed, you just look at the what they have done already. They have built so much that mining companies have had invest hundreds of billions into single-resource mines to meet demand, they have already had one of the most successful infrastructure build-outs in human history.

Shenzen was a rice paddy in 1990 and two decades later was a city of 20m people (2nd highest number of skyscrapers in the world too). The exact reason why China have been able to do this is the reason why you think it is impossible. People in the west are too lazy, too self-indulgent, too anxious about what other people are doing...China did it, they aren't paying attention, they don't care, they didn't ask anyone for permission, they just did it. In the time it takes to build a road in the US, they built a city with one of the most productive economies on the planet...where do you think the future is?


I studied the financing aspect of large building construction in a law school class. It works in a similar fashion. The development money is doled out on a very structured basis, sometimes literally one floor at a time. There are numerous milestones and you have to stick to the schedule or the money stops.


another classic in the "software dev suprised other people are good at their jobs"


Frankly, it's hard to believe they pay us for this shit, until you remember that we're often the only option.


> That will get jumped up on Memorial Day"

Totally off topic, but is this a normal usage of this phrase? I've never seen/read "get jumped up" used in this sense.


I think it's pretty normal construction jargon, yes. It's a bit unusual to laymen's ears, but the meaning is still pretty clear.


Took me by surprise, but it makes perfect sense in context. I just assumed it was the cranebro vernacular.


One thing to consider is that when you're building up into the air instead of digging into the ground, you have much fewer opportunities for unknowns to affect you.


To contrast that, in the last few days I have spent 14h that I never considered in the schedule to wrangle TypeScript issues and bugs (4 to be precise).




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: