13 ms·
After many years at big tech companies, I am now working at my first that has "Architect" as a separate role. While many of my colleagues in that role are great
by zippergz 6y ago
After many years at big tech companies, I am now working at my first that has "Architect" as a separate role. While many of my colleagues in that role are great people and very smart, after a few years of living with it, I strongly believe that it's an "org smell" and I will seek out companies without it in the future. It creates completely the wrong dynamic to have the hands-on engineers, no matter their seniority, not be fully empowered and expected to make these decisions. And no matter how experienced and smart the architects are, if they aren't working hands-on with the systems and code on a regular basis, they can't make the best decisions. Software architecture as a separate job from software engineer is bad for everyone involved.
- btilly 6y agoIt gets worse. The transition from "programmer" to "architect" results after a few years with the architect losing track of where the rubber meets the road. This results in worse architecture decisions that are made by a similarly experienced programmer. This effect is so strong that if you're interviewing someone who became an architect, make them write code in the interview. If they don't do it really well, you don't want them in ANY role. Because now they can't program, they can't architect. All that they can do is sound smart while they make bad decisions.
- humbleMouse 6y agoI don’t buy this analysis. The principles of architecting code and system design are timeless. There are definitely people out there who don’t “code really well on command”, but can ask the right questions to design a solid system.
- btilly 6y agoThe principles of architecting code and system design are timeless. That I emphatically agree with. Some of my favorite programming books are decades old. There are definitely people out there who don’t “code really well on command”, but can ask the right questions to design a solid system. There are? I can't say that I've ever met one. The problem is that people don't know what they don't know. A non-programmer can know exactly the business problem to solve and exactly how they want to solve it. But they can't tell the difference between what is easy for a programmer and what is hard. They don't have to learn a ton of programming to fill that bit in. But if they never fill it in, that limitation will keep them from being able to be a good software architect.
- tguvot 6y agoIt will be me. I am systems architect and last production code that I wrote was probably 10 years ago or so. I am probably rather crappy programmer. I was crappy perl programmer, crappy php (starting with version 2), crappy in delphi, c, c++. Probably okay in Python, but mostly because Python allowed to concentrate on solving problem and not fighting the language. Me been crappy was probably because I never really enjoyed to write code, as interesting part is figuring out solution to a problem. Rest is implementation details :) You can say if you want that I am simply too lazy to write code. Me been crappy in writing code doesn't mean that i am bad in understanding code or understanding what is it to write code the easy way or the hard way. In majority of cases when programmers come to me with design that will be easy for them to implement, turns out that they have a bunch of big problems that they missed, mostly due to lack of experience. Most of the time solutions that they come up with complicate things further and add even more problems. And this is the point of time when I assist them to simplify whatever complex design they made to something much more simple and doable. I saved many man/years of development time by showing programmers easy ways that they didn't know that they exists
- btilly 6y agoYour self-assessment matches the self-assessment of other systems architects that I've seen. Suffice to say that my assessment was so different that I never again want to work at a company who have people who think that is their job. And I've seen a wide variety of programmers from a wide variety of companies agree. As a random example look up the thread for someone who had decades of bad experience with architects at Microsoft who is massively happier at Amazon (which actively avoids the architect title and mindset). Of course I've never met you, and you may be better than the bad examples that I'm aware of directly and indirectly. But a priori I have no reason to expect your self-assessment to be more reliable than past experience.
- tguvot 6y agoTotally understand you At my last job I was "granted" a team of architects. One of them got self-terminated after a few weeks as he was completely useless and he knew it (he got even more senior job in different company), one was okay and one required constant supervision because he was astronaut architect (he left after half an year). Architects that know what they are doing are hard to find (my last positions were open for 6-9 months before i arrived. me hiring extra architects is similarly long process). From the other side, hiring manager/interview loop needs to have proper skill set to evaluate person and to make sure that this is what they look for (last time i got interviewed by principal architect, vp r&d, and a bunch of hands on dev leads from different departments across the company).
- ClumsyPilot 6y ago"make them write code in the interview... Because now they can't program" This comes across disrespectful and presumptious. Firstly, do you believe that if you have not coded for 4-5 years you become useless just becauss you don't know the latest %fad% framework? Secondly, the whole phrasing just conveys disrespect for cadidate, where the only responce to 'jump' is 'how high'. If someone is interviewing for non-code postition they might tell you to take a hike. The idea that a contrived 30 minute coding session tells you more about a candidate that studying code they've previously written or debugging together doesn't make awnce and is not supported by evidence We don't ask surgeons: "since you can do heart surgery in 8 hours, surely you can reattach a toenail in 10 minutes during an interview"
- btilly 6y ago"make them write code in the interview... Because now they can't program" This comes across disrespectful and presumptious. It is the interviewer's job to check the possible reasons to not hire someone and validate that the they aren't going to be problems. One of the possible reasons to not hire someone whose last job was "architect" is that they have lost contact with coding. If they have, then from experience I can tell you that they won't want to go back to coding, and their architectures are losing contact with reality. They are a liability. This observation is not original to me. The first time that I saw it made explicit was when I took interviewing training while I was at Google. Google's experience is that a certain fraction of architects avoid coding. That fraction makes really bad hires. So they explicitly told people to look for that in the interview so that don't wind up accidentally hiring them. But if someone's title is "architect" and they can code, then that isn't a concern. Companies do tend to promote good programmers to architect, and you don't want to miss out on those programmers. Firstly, do you believe that if you have not coded for 4-5 years you become useless just becauss you don't know the latest %fad% framework? This is a straw man argument. I said nothing about "latest fad framework". The exercise is to write some code, not write code in any particular framework or language. Go ahead and be offended at something that I didn't say, but please remember that I didn't say it. Secondly, the whole phrasing just conveys disrespect for cadidate, where the only responce to 'jump' is 'how high'. If an interviewee objects to writing code in the interview, how are they going to respond when they're asked to write code on the job? Seriously, if they get offended in the way that you just did, that's a good reason not to hire. If someone is interviewing for non-code postition they might tell you to take a hike. I do not want to work in an organization where "architect" is a non-coding position. Seen that, left in horror. So if I'm interviewing you, you are almost certainly being hired for a coding position. The idea that a contrived 30 minute coding session tells you more about a candidate that studying code they've previously written or debugging together is idiotic. It doesn't tell you more, but it tells you something different. In particular it tells the difference between someone who shows their own code versus shows someone else's code and lies about the source. (Yes, I have seen that.)
- xorcist 6y ago> The transition from "programmer" to "architect" Transition? If only it was at least that. I've worked with architects whose job was the result of taking courses in software architectry at college and then they took a job as one. Apparently there are organizations looking for these people.