Also, I don’t care how you accomplish this work, but you must atomize your anticipated work into individual bite-sized and estimated tasks. Your estimates need not be accurate, but you will be held accountable if you run over your estimates and be met with suspicion if your estimates are arbitrarily deemed too high.
You will be left to execute these tasks as you see fit, but you must report progress on them daily in a one-hour meeting along with every other architect working on entirely unrelated work. You may be asked to repeat this same oral update in other meetings. These meetings may be time consuming, but you will still be expected to meet your time estimates.
During this project to design my house, there may be periods of time when I may require you to assist with architectural emergencies, such as stabilizing the Leaning Tower of Pisa. These emergencies supersede your work and may come at any hour of the day or night, but should not impact your time estimates.
Your pencil to draw the diagrams will be managed by a completely different person, you are not allowed to sharpen it yourself. However that person may not be available as they will be sharpening everyone else's pencils, as well as adjusting desks.
They are all from Blue Pants, so won't work the same time shifts as you
Your firm’s partners have hired BCG to streamline the home building process. Your home and every other one in the neighborhood that your coworkers have been designing will be left to rot and most of you will be let go. Some of you will be reassigned to design horse stables and indoor pools for a more profitable market segment.
Oh an remember, before you can design a house, you need to build a scaffolding using the same tools one would to build a warehouse, make sure it is earthquake proof, nuclear threat proof, hurricane category 7 proof, forest fire proof etc regardless of whether there are forests, earthquake geology, or hurricanes nearby. After all, you can be proud that you followed the same principles that unicorn architects who build warehouses used successfully to _their_ needs.
You forgot to add, your estimates need to use an artificial, non-agreedu-upon unit that differs per person and that varies (decreases) as you find new work that's simpler than the simplest work you have ever encountered.
And then, you will be held accountable for that number, even if (supposedly), doesn't represent time and even if the interpretation of your estimate must use the unit that the person holding you acciuntable.
Wow as I re-read this statement, it's completely insane
This is really some next level victimhood. Building houses often does involve dealing with whiny homeowners/builders with bad taste and no clue who want everything but also don’t want to pay. That’s the job. Good software engineers know working with stakeholders and users is also the job.
I’ll add another shocker: sometimes blueprints are poorly specified and/or incorrect. And yet, people build the houses. That’s the job!
Conversely if programmers had to work like Architects they'd be paid a fraction, not get promoted to run serious projects until they are 50+, work copious unpaid overtime, not be allowed to work from home, be held legally liable for their work, spend most of their days focussing on compliance rather than outcomes, be more client focussed than they have ever considered regardless of above, etc.
> I’ll add another shocker: sometimes blueprints are poorly specified and/or incorrect.
A family member bought a plot, some blueprints for a two-story house from an architect firm and hired someone to build it.
Well into the construction, the builders asked if he would like them to raise the roof of the building by one meter, as it would be a negligible increase in cost.
He was going to reject the offer but changed his mind and accepted.
Once completed he realized that if he had rejected the offer, he wouldn't be able to use the second floor at all. The house had a Gable-style roof[1], and the stairs a U shape along one of the outer walls. Had he not raised the roof, one couldn't have walked up the stairs due to the roof being so low along the outer walls. Even after raising the roof, tall people would still need to tilt their heads going up.
Such a flippant dismissal yet so little consideration given.. ironically, the reality of what you’re doing is exactly what you’re accusing OP of: assuming a state of victimhood.
Shouting “that’s the job!” when it is ostensibly not the job (whatever your experience of the “reality” of it may be) is really an implied assertion that you must make concessions in your work arrangement regardless of the explicit agreement you make with your employer when accepting a job.
The desperation to communicate this comes across, to me, as a cry for help with asserting yourself in the workplace. In my experience this is a result of a power imbalance in the employment relationship. Unfortunately the reasons for this imbalance are often extremely complex but some generic, potentially not helpful, advice for anyone in common scenarios I’ve seen would be:
1. Improve your skillset. It will help your (implied) negotiating power when they start adding more meetings or pulling you off task
2. Learn how to politely assert yourself in a work environment. We’re all playing games of imperfect information and light assertiveness and confidence can put an adversary in a position where they can’t afford to assume you’re wrong (in the moment)
3. Know what you’re signing up for and be candid about what you’re bringing to the table. If you’ve spent the last four years in intensive study of algorithms and data structures, be candid about the fact that you’re taking the job to solve computational problems. Let them know ahead of time that you’re not another head to count or butt to fill a seat.
The architect would be a PM in the real world. The guys working on site are always fixing issues with the design. And owners always want some changes.
The thing with the construction industry is that the user can "see" the frontend before, it would be like if you build the frontend and when the user accepts you build the backend.
Most of developers jobs are “here is Jira ticket build what is written there”.
You get product owners, business analysts, scrum masters that should take away 90% of BS.
But still it is not the case and a lot of those business roles seem like they are just useless and I would do much better job directly talking to the customer.
This sounds like a perfect example of a "cocktail party idea", with programmers thinking they know how other fields operate. I am sure an architect could write a similar post about programmers, with just as many false assumptions and misunderstandings about what the job actually takes.
Also, I am a visual and tactile person so I would need you to build a mock-up of this house in advance, preferably 1:1 scale, and fully functional so I can see how it will function. If I am dissatisfied with any aspect of the house, I expect you to rebuild it from scratch, only faster since you have already had practice building it once before, so how hard could it be to build it again while incorporating my changes?
The house must be rebuild in the same location while I'm using it and the transition to the new house must be seamless. The garage must be rebuild with the car in it, the kitchen floor and counter top must be replaced while the dishwasher and the oven are running, I must be able to shower and stay in my tub during the bath room replacement, you must rebuild the bedroom discreetly while I'm having sex, toilets must be rebuild while in use.
The person who wrote this doesn't know any building architects who serve the wealthy.
Rich people who want custom homes often want to design it themselves, and then get extremely annoyed when confronted with the reality of basic design principles, usability, materials, structural integrity, etc. And then like to change their plans last minute once they actually start to see it framed in (assuming they don't freak out because they've never seen framing before and don't realize it isn't done yet). Or perhaps one of their rich friends made a glib comment or a jab while being shown the foundation and now the customer wants both their kids to have their own recital hall, because one isn't enough.
Another stellar example: someone wanted a garage put above their kitchen because they wanted to park their ferrari next to their bedroom on the second floor. Damn the exhaust fumes.
You don’t have to be designing a Villa for a rich individual for those kind of things. Some of the stories I’ve heard in Dubai are ridiculous.
Fix, Developer asks landscape architects to draw a pool deck on the podium of a tower under construction. Landscape asks engineers about floor thickness and load numbers and are told that the podium, as completed, cannot carry a pool. Apartments have already been sold, with brochures showing pictures of a pool deck. Nobody told engineering that they had to spec for a pool let alone where on the podium.
Another story I’ve heard: core of residential tower has been completed to 20 out of 40 stories when developer gets a bright idea and approach an architectural firm to design a rooftop pool, as if that’s not something that required planning in terms of foundation, structure or where to put maintenance equipment.
Articles (and the ensuing comments) always miss something major: construction and software are not even remotely the same thing.
For example, in construction you have:
* Architect (designs the building)
* Designer (prepares the technical drawings)
* Engineer (signs off the drawings)
* Manufacturing (makes building parts to the drawings)
* Surveyors (make sure the land can be built on)
* Builders (build the building)
* Roofers (put the roof on)
* Site managers (make sure the builders build the building)
* Building Control (government sign-off on the built building)
* Sparkies (put wires in)
* Plumbers (put the pipes in)
* Plasterers (put the plaster on the walls)
* Painters/decorators (finish the walls)
* Fitters (put everything else in)
All of these are separate businesses and I'm sure I've missed some things, or misnamed others. And, despite a number of people being legally liable for shoddy work, we still see things like Grenfell happen.
Software engineering, by contrast:
* Product manager (figures out what to make)
* Designer (figures out how it should work/look)
* Software engineer (writes the code)
* Auditor (compliance with relevant standards e.g. PCI DSS or SOC2)
There's also a bunch of stuff supporting that but I left them out because I'd add 5x more on the construction side.
My point isn't to say who has it harder, or which field is "better," just to point out that the fields aren't comparable at all.
This, honestly. I just read a quote (that I can't find) along the lines of, "no one asks a builder to remove the second floor and install a pool in the basement."
* Even more managers (probably also manage, not sure though)
* One full-stack developer assigned 20% to this project (has meetings with managers, writes the specification, writes the code, tests the application, deploys the application, provides 24/7 on-call support)
Finally someone who sees for what a shit of a job Software Engineer has become.
You can see my post/comment history here on HN, that I argue exactly this.
We are doing too much.
"If you tell me how much time a task will take, please don't specify the time in hours or days, but use these made up 'points' that mean different things to different people"
Also, many commenters saying this is in bad taste, badmouthing architects or assuming a victimized 'hurr programming is so hard' stance. I read it differently, as a critique of the software industry itself, about how we're utterly unable to get our clients to understand the realities of our work.
Noone in their right mind would ask for a house with 2-to-42 bedrooms. Yet the average IT worker somehow accepts this as normal in their software work. It would behoove us to get our clients to understand this, and not delegate that task to the scrumlords... who generally only make things more confusing and complex.
Further, please ensure strict privacy of anyone entering the house but at the same time allow for good communication among everyone.
Also, make sure only authorized people can enter or see what’s happening inside and keep everyone very safe from fires, physical harm or other people. Unfortunately, the safety must be accomplished without additional cost or restrictions in use.
most of any job is listening to people. doesnt matter if you are a president or a janitor. people want things but they dont know exactly how or why, most of all they just want to feel that you have listened to them about their problem. and then done your best to help them.
It’s wrong to think programming is similar to construction. Creating new products consists of a product design phase and a product manufacturing phase. The first part finishes with a precise and tested design (so probably needs (digital) prototypes that can be tested), manufacturing just creates those design with as accurate as possible.
Architects and software engineers are both part of the product design phase, software engineers deliver the first version of a product that can be tested (that can include multiple iteration, and new versions of an already finished version of the product).
Product manufacturing in IT mostly consists of getting a copy of the product to the end user, either by creating an actual copy, or by allowing all users to have access to the final version created by product design.
Software engineering is part of design, you’re part of getting the requirements and design final, don’t expect just to manufacture according to finalized designs.
Architect simply look at the bigger picture design, components and interfaces, whereas engineers have a smaller focus. Architect are usually just engineers with more experience so they have more experience with the bigger picture design.
That's a very funny take - but I wonder how architects feel about it, because I'm pretty sure that there is similar stuff happening when designing houses...
The biggest difference though probably is, that the architect who creates the blue prints - will not be involved in the actual construction work. Therefore the blue-print (which the customer signed off on) has to be ground truth.
Bytes aren't bricks.
Reshuffling them from scratch after a smallest change is cheap and fast.
Taking advantage of that is not stupid.
Proper communication and work with client is a skill, and architects have to deal with stupid requests too!
If's fun little article, but is a bit short-sighted. Probably because otherwise it would not work.
Programming has a lot more in common with portrait painting or sculpting than building something physical like a house.
It is very hard and expensive to change physical things, software is relatively easily comparatively to change. Because software is changeable and pliable, it is practical to not make all decisions in advance.
Once "Agile" methodology effectively won in this industry, any hope of actually bringing software development into an "engineering" discipline was dead.
I'm not saying there aren't positives to doing things that way, but it's got a lot to do with why the satire of this article rings true.
Architecture is a kind of traditional professional that inherited its practices and methods from a time where there was a respect for the craftmanship that the activity requires.
Programming is a profession that, with the exception of a few early decades, practically started in the corporate world. Modern day development is what you can expect when companies have unchecked autonomy over a whole professional field.
That's why an abomination like scrum exists where you are guilty tripped everyday in dailys having to report what you have done even though management and your colleagues have access to your tickets with your logged hours and the code you have commited to the repository.
I love programming but the only thing that keeps me in the field today is the pay, the moment I start to earn less I leave the field and go to work in something else.
The entire house must be built on a cloud because clouds are cool. Clouds provide no structural stability and are completely inappropriate for this project so you'll need to build loads of scaffolding to hold everything together which should be concealed by the presence of the cloud.
[+] [-] teeray|2 years ago|reply
You will be left to execute these tasks as you see fit, but you must report progress on them daily in a one-hour meeting along with every other architect working on entirely unrelated work. You may be asked to repeat this same oral update in other meetings. These meetings may be time consuming, but you will still be expected to meet your time estimates.
During this project to design my house, there may be periods of time when I may require you to assist with architectural emergencies, such as stabilizing the Leaning Tower of Pisa. These emergencies supersede your work and may come at any hour of the day or night, but should not impact your time estimates.
[+] [-] happymellon|2 years ago|reply
They are all from Blue Pants, so won't work the same time shifts as you
[+] [-] vrosas|2 years ago|reply
[+] [-] sage76|2 years ago|reply
Based on a 2 line description from a product manager, so you actually have no clue on the scope of the task until you start working on it.
This is how at my last company, my team got every estimate wrong and engineers got fired.
Yes the salt is real.
[+] [-] reacharavindh|2 years ago|reply
[+] [-] qprofyeh|2 years ago|reply
[+] [-] ip26|2 years ago|reply
[+] [-] Fire-Dragon-DoL|2 years ago|reply
And then, you will be held accountable for that number, even if (supposedly), doesn't represent time and even if the interpretation of your estimate must use the unit that the person holding you acciuntable.
Wow as I re-read this statement, it's completely insane
[+] [-] fatherzine|2 years ago|reply
[+] [-] Viliam1234|2 years ago|reply
However, do not build the first floor yet, because I am still waiting for some important decisions to be made.
[+] [-] mgoetzke|2 years ago|reply
[+] [-] oivey|2 years ago|reply
I’ll add another shocker: sometimes blueprints are poorly specified and/or incorrect. And yet, people build the houses. That’s the job!
[+] [-] twelvechairs|2 years ago|reply
Conversely if programmers had to work like Architects they'd be paid a fraction, not get promoted to run serious projects until they are 50+, work copious unpaid overtime, not be allowed to work from home, be held legally liable for their work, spend most of their days focussing on compliance rather than outcomes, be more client focussed than they have ever considered regardless of above, etc.
[+] [-] magicalhippo|2 years ago|reply
A family member bought a plot, some blueprints for a two-story house from an architect firm and hired someone to build it.
Well into the construction, the builders asked if he would like them to raise the roof of the building by one meter, as it would be a negligible increase in cost.
He was going to reject the offer but changed his mind and accepted.
Once completed he realized that if he had rejected the offer, he wouldn't be able to use the second floor at all. The house had a Gable-style roof[1], and the stairs a U shape along one of the outer walls. Had he not raised the roof, one couldn't have walked up the stairs due to the roof being so low along the outer walls. Even after raising the roof, tall people would still need to tilt their heads going up.
[1]: https://en.wikipedia.org/wiki/Gable_roof
[+] [-] zarathustreal|2 years ago|reply
Shouting “that’s the job!” when it is ostensibly not the job (whatever your experience of the “reality” of it may be) is really an implied assertion that you must make concessions in your work arrangement regardless of the explicit agreement you make with your employer when accepting a job.
The desperation to communicate this comes across, to me, as a cry for help with asserting yourself in the workplace. In my experience this is a result of a power imbalance in the employment relationship. Unfortunately the reasons for this imbalance are often extremely complex but some generic, potentially not helpful, advice for anyone in common scenarios I’ve seen would be:
1. Improve your skillset. It will help your (implied) negotiating power when they start adding more meetings or pulling you off task
2. Learn how to politely assert yourself in a work environment. We’re all playing games of imperfect information and light assertiveness and confidence can put an adversary in a position where they can’t afford to assume you’re wrong (in the moment)
3. Know what you’re signing up for and be candid about what you’re bringing to the table. If you’ve spent the last four years in intensive study of algorithms and data structures, be candid about the fact that you’re taking the job to solve computational problems. Let them know ahead of time that you’re not another head to count or butt to fill a seat.
[+] [-] yen223|2 years ago|reply
(I 100% believe that if an architect read this article, their takeaway would be that programmers have it too easy)
[+] [-] t_luke|2 years ago|reply
- you aren't allowed to do any programming yourself, you just write a specification
- the majority of the people doing the programming are incapable of reading the specification
- many of those who can will deliberately ignore it to save money
- nevertheless, it's your fault if it's realised incorrectly
[+] [-] is_true|2 years ago|reply
The thing with the construction industry is that the user can "see" the frontend before, it would be like if you build the frontend and when the user accepts you build the backend.
[+] [-] al_borland|2 years ago|reply
[+] [-] ozim|2 years ago|reply
Most of developers jobs are “here is Jira ticket build what is written there”.
You get product owners, business analysts, scrum masters that should take away 90% of BS.
But still it is not the case and a lot of those business roles seem like they are just useless and I would do much better job directly talking to the customer.
[+] [-] timeon|2 years ago|reply
[+] [-] cortesoft|2 years ago|reply
https://danluu.com/cocktail-ideas/
[+] [-] YetAnotherNick|2 years ago|reply
Yes and I would like it.
[+] [-] endofreach|2 years ago|reply
[+] [-] globular-toast|2 years ago|reply
[+] [-] NoPicklez|2 years ago|reply
Very much on point with this post above
[+] [-] kmoser|2 years ago|reply
[+] [-] 6510|2 years ago|reply
The house must be rebuild in the same location while I'm using it and the transition to the new house must be seamless. The garage must be rebuild with the car in it, the kitchen floor and counter top must be replaced while the dishwasher and the oven are running, I must be able to shower and stay in my tub during the bath room replacement, you must rebuild the bedroom discreetly while I'm having sex, toilets must be rebuild while in use.
[+] [-] Groxx|2 years ago|reply
Scale it up! It's already built, so I expect it on the lot tomorrow.
[+] [-] demondemidi|2 years ago|reply
Rich people who want custom homes often want to design it themselves, and then get extremely annoyed when confronted with the reality of basic design principles, usability, materials, structural integrity, etc. And then like to change their plans last minute once they actually start to see it framed in (assuming they don't freak out because they've never seen framing before and don't realize it isn't done yet). Or perhaps one of their rich friends made a glib comment or a jab while being shown the foundation and now the customer wants both their kids to have their own recital hall, because one isn't enough.
Another stellar example: someone wanted a garage put above their kitchen because they wanted to park their ferrari next to their bedroom on the second floor. Damn the exhaust fumes.
[+] [-] wodenokoto|2 years ago|reply
Fix, Developer asks landscape architects to draw a pool deck on the podium of a tower under construction. Landscape asks engineers about floor thickness and load numbers and are told that the podium, as completed, cannot carry a pool. Apartments have already been sold, with brochures showing pictures of a pool deck. Nobody told engineering that they had to spec for a pool let alone where on the podium.
Another story I’ve heard: core of residential tower has been completed to 20 out of 40 stories when developer gets a bright idea and approach an architectural firm to design a rooftop pool, as if that’s not something that required planning in terms of foundation, structure or where to put maintenance equipment.
[+] [-] scott_w|2 years ago|reply
For example, in construction you have:
* Architect (designs the building)
* Designer (prepares the technical drawings)
* Engineer (signs off the drawings)
* Manufacturing (makes building parts to the drawings)
* Surveyors (make sure the land can be built on)
* Builders (build the building)
* Roofers (put the roof on)
* Site managers (make sure the builders build the building)
* Building Control (government sign-off on the built building)
* Sparkies (put wires in)
* Plumbers (put the pipes in)
* Plasterers (put the plaster on the walls)
* Painters/decorators (finish the walls)
* Fitters (put everything else in)
All of these are separate businesses and I'm sure I've missed some things, or misnamed others. And, despite a number of people being legally liable for shoddy work, we still see things like Grenfell happen.
Software engineering, by contrast:
* Product manager (figures out what to make)
* Designer (figures out how it should work/look)
* Software engineer (writes the code)
* Auditor (compliance with relevant standards e.g. PCI DSS or SOC2)
There's also a bunch of stuff supporting that but I left them out because I'd add 5x more on the construction side.
My point isn't to say who has it harder, or which field is "better," just to point out that the fields aren't comparable at all.
[+] [-] ourmandave|2 years ago|reply
[+] [-] Izkata|2 years ago|reply
Is this industry jargon, a translation, something else I'm not aware of? I'd think this was "electricians".
[+] [-] Viliam1234|2 years ago|reply
I thought it was:
* Managers (they manage)
* More managers (they also manage)
* Even more managers (probably also manage, not sure though)
* One full-stack developer assigned 20% to this project (has meetings with managers, writes the specification, writes the code, tests the application, deploys the application, provides 24/7 on-call support)
[+] [-] rrgok|2 years ago|reply
[+] [-] rovek|2 years ago|reply
https://www.stilldrinking.org/programming-sucks - Second section
[+] [-] isoprophlex|2 years ago|reply
Also, many commenters saying this is in bad taste, badmouthing architects or assuming a victimized 'hurr programming is so hard' stance. I read it differently, as a critique of the software industry itself, about how we're utterly unable to get our clients to understand the realities of our work.
Noone in their right mind would ask for a house with 2-to-42 bedrooms. Yet the average IT worker somehow accepts this as normal in their software work. It would behoove us to get our clients to understand this, and not delegate that task to the scrumlords... who generally only make things more confusing and complex.
[+] [-] MASNeo|2 years ago|reply
Also, make sure only authorized people can enter or see what’s happening inside and keep everyone very safe from fires, physical harm or other people. Unfortunately, the safety must be accomplished without additional cost or restrictions in use.
[+] [-] doubloon|2 years ago|reply
[+] [-] ako|2 years ago|reply
Architects and software engineers are both part of the product design phase, software engineers deliver the first version of a product that can be tested (that can include multiple iteration, and new versions of an already finished version of the product).
Product manufacturing in IT mostly consists of getting a copy of the product to the end user, either by creating an actual copy, or by allowing all users to have access to the final version created by product design.
Software engineering is part of design, you’re part of getting the requirements and design final, don’t expect just to manufacture according to finalized designs.
Architect simply look at the bigger picture design, components and interfaces, whereas engineers have a smaller focus. Architect are usually just engineers with more experience so they have more experience with the bigger picture design.
[+] [-] elteto|2 years ago|reply
[+] [-] croes|2 years ago|reply
Same with any craftsmanship. If they botch something they have to start all over again, sometimes they can't.
Compared to that being a programmer is easy.
[+] [-] hooby|2 years ago|reply
The biggest difference though probably is, that the architect who creates the blue prints - will not be involved in the actual construction work. Therefore the blue-print (which the customer signed off on) has to be ground truth.
[+] [-] BillyTheMage|2 years ago|reply
[+] [-] nercury|2 years ago|reply
If's fun little article, but is a bit short-sighted. Probably because otherwise it would not work.
[+] [-] andrewstuart|2 years ago|reply
Programming has a lot more in common with portrait painting or sculpting than building something physical like a house.
It is very hard and expensive to change physical things, software is relatively easily comparatively to change. Because software is changeable and pliable, it is practical to not make all decisions in advance.
[+] [-] lr4444lr|2 years ago|reply
I'm not saying there aren't positives to doing things that way, but it's got a lot to do with why the satire of this article rings true.
[+] [-] lp4vn|2 years ago|reply
Programming is a profession that, with the exception of a few early decades, practically started in the corporate world. Modern day development is what you can expect when companies have unchecked autonomy over a whole professional field.
That's why an abomination like scrum exists where you are guilty tripped everyday in dailys having to report what you have done even though management and your colleagues have access to your tickets with your logged hours and the code you have commited to the repository.
I love programming but the only thing that keeps me in the field today is the pay, the moment I start to earn less I leave the field and go to work in something else.
[+] [-] spzb|2 years ago|reply