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

This reply applies to several here.

I know a few architects (as in for buildings and civil structures) who wouldn't be able to pour a foundation, frame a wall, or run plumbing properly. They're working at a different level of abstraction and are concerned with different problems.

Or to put it another way, if you can code does that mean you should be able to design a CPU, even a very basic one? After all, how can you write a program if you don't understand how it works at the instruction, transistor, etc level?




I think this is a linguistic strawman.

Civil Architect is to Builder as Software Engineer is to Datacenter Technician. Software architect is to software engineer as partner at an architecture firm is to architect, or something.

You don't expect a plumber[0] or a building constructor[1] or a civil engineer[2] to become an architect[3], they're different degrees or certifications. A software architect is normally considered a software engineer who works at a grander scope of design. That doesn't map correctly.

[0]: http://dlca.vi.gov/businesslicense/steps/mppcrequirements/

[1]: https://bc.gatech.edu/master-science-building-construction-a...

[2]: https://arch.gatech.edu/bachelor-science-architecture

[3]: https://ce.gatech.edu/academics/undergraduate/bsce


Civil Architect is to Builder as Software Engineer is to Compiler.


Exactly (from experience working in a top 5 consulting engineer) an Architect is nothing like a Chartered civil engineer.


I wouldn't expect a building architect to do a great job pouring a foundation, framing a wall, or running plumbing. But I would expect them to be able to do it, at least to a basic level.

Architects that don't understand how to do the fundamentals of implementing the designs they make tend to make unrealistic designs, that are expensive to implement and may look pretty, but function poorly for the owners and occupants.

This applies to architects of buildings, architects of software, and architects of hardware. Probably to most high level design and supervision type positions.

Edit to add: many of the best architects of buildings are able to do amazing things specifically because they've studied the fundamentals and are able to do innovative things with materials. Of course, time will tell it the innovation worked out well or not.


> I wouldn't expect a building architect to do a great job pouring a foundation, framing a wall, or running plumbing. But I would expect them to be able to do it, at least to a basic level.

waaaaat? That is completely utterly 100% unreasonable. Unless you mean that you expect every adult member of society to do those things?


I agree with GP. If the civil architect doesn't know that you need to put up plywood to pour the concrete in, they will make impossible to build designs.

And I'm not saying that everyone needs to do everyone's jobs. But you shoupd be able yo do at least a bumbling job of the layers of abstraction you work on top of if you want to make a decision in how those things should work.


If an architect that hasn't coded in 5 years or more dictates technological decisions to you, when they are out of touch of current best practices, how do you bridge that gap?

Building codes change. Architects are required to design buildings according to the new codes. There is no such thing in software.

When I first started in industry, storing plaintext passwords in the database was what everyone did. We have moved on from that. I've worked on j2ee web apps, where the EJB tier absolutely had to be on a separate server or servers. Times have moved on from there. I've met very few "software architects" that have kept current without writing code at least 5-10% of their job.


Times do change, but it doesn't mean you need to know every single detailed implementation. If the standard practice was plain text, and then became hash...the architect dictates that passwords needs to be hashed. They don't necessarily need to know how to code it.

In my company my 'enterprise architect' oversees at least 40 applications in my space in various languages and platforms (and he works in other spaces too so I can't give an exact number). I need him to give a good direction on what apps are needed, how apps talk to each other and certain detailed design. He also pitches to management and the business to defend how/why we do certain things.

Last thing he would be required to do is remember to write basic code (though I would hope he can do a swag).


Most software architects aren't working at a level of abstraction that's as much higher as that. They're making decisions like "we should use this framework" or "we ought to have 3 9s of reliability", which can't be meaningfully analyzed without knowing the details of how the coding will be done.


> Or to put it another way, if you can code does that mean you should be able to design a CPU, even a very basic one? After all, how can you write a program if you don't understand how it works at the instruction, transistor, etc level?

You'd be surprised, but this is what computer engineering actually is. From p-n junctions and transistors and all the way to distributed systems.




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

Search: