Live data from Hacker News

Why I don't believe in software architects

mikhanov.com

51–56 of 56 posts

Re: Why I don't believe in software architects

#51
post #16

Earlier quoted context omitted.

I blame the myth that young hackers are somehow strangely more knowledgeable than their elders because of the putatively ever-changing nature of technology. I've always been suspicious of this self-serving narrative (in what other engineering field is this true?), but as I approach what passes for Old Fartness in this industry (30) now I know it's bullshit. All the twenty-year-old whizzes I know are experts at taking…

Though I agree that there's a lot of value in what more experienced people have to say and that people my age should seek out knowledge from you, there are a couple things that are also important to remember. Many of us "20-year-old whizzes" don't do what you describe at all. In fact, as a Systems programmer, it's not incredibly likely that you know 'better than me' what the implications of what you're doing are at a…

I qualified it as "all of the 20-year-old whizzes I know" very carefully. Clearly, I do not know them all. Equally clearly, the stereotype I describe can not be blindly applied. "Whizzes" is not extraneous either. Many 20-year-olds are perfectly competent and may be slower or less experienced but don't suffer from this pattern.

However, as impressed as you may be by people with three years of experience, it's still not ten years of experience. (Or twenty.)

May I also point out that you casually assume the other side of the stereotype: 'All of your experience becomes a hindrance when you start to follow your old steps to the "right solution" every time.' That's total bullshit. If you are getting "real" experience, the "good" experience (which I scarequote mostly because I don't want to go deep into trying to define them but it really ought to be obvious if you think about it), then experience itself tells you when your old experience needs to be augmented.

And what disruption are you talking about? I bet in your head you're thinking app disruption; "old fogies" can't come up with the idea for Facebook or something. In programming terms, the disruption is way slower than it appears. When I was 20, I got into Python. Python is still working on penetrating the mainstream. Now I'm getting into Haskell, and if it ever goes mainstream (probably not, but if...) it'll be another 5 years minimum. Programming "disruption" really doesn't move that fast.

(For all the sound and fury of Clojure and Scala and Python and Perl and Ruby and so on and so on, huge amounts of the cognitive traffic are just "An ORM for X!" "A jpeg library for X!" "A JSON library for X!" Patterned, shall we say. True disruption happens way less often.)

Besides... I'd point out that none of what you cite actually disproves my point. Everything you cite involves situations where they were probably either vetted by other people higher up, or still trading on quality to produce results quickly that are still a net technical value loss, as open source does not intrinsically prevent that. Open source even has some well-known common failure cases on that front, like "preference explosion", using adding preferences to prevent having to make design decisions or telling someone to shove off.

You complain as if I'm personally attacking you. I'm not. I'm attacking the stereotype, which definitely exists. And I personally have gotten to the point that someone introduces somebody as a "whiz", I mentally cringe. (The same cringe I do when somebody says "Wow, X fixes like ten bugs a day every day!" BIG RED FLASHING LIGHTS should be going off, not the good kind.) As much as you may not like it... this metric hasn't failed me yet.

Re: Why I don't believe in software architects

#52
post #32

Earlier quoted context omitted.

Hmmm, ignoring the school part, have you found some "software architects" worthy of the title? I know you say that implicitly, but I wanted to make sure and perhaps have you elaborate a bit on what distinguishes them.

I've only worked for one (software) firm which was large enough to have someone on staff who were responsible for "architecting", and I mostly thought they were idiots. I think that if you are competent enough to build any part of your project, but can still understand the big picture and have some appreciation for elegance and beauty in a design, you've got the basic idea. I think architects are also better trained…

"and have some appreciation for elegance and beauty in a design"

Understanding the big picture is an obvious requirement (and not necessarily easy ... perhaps more important is knowing when you don't have it, see some of the comments here about architects who switched problem domains), but too many people don't grok the correlation between elegance and beauty in design and how they make projects easier and sometimes just simply possible.

One note of importance that's related to how we aren't trained in those critical not so technical skills you cite is the what we're building is fantastically more complicated than anything concrete (so to speak :-) that others build (note that the most complicated microprocessors have a lot of software (firmware) in them). One key sign I've found when I've gotten a design right is that it solves problems that I didn't know I had. I think it takes a lot of experience to get to that point (by then I'd been programming nearly two decades, and studying on my own software engineering and design from the beginning).

Time requirements and logistics in our field can be very difficult, since you often don't know the scope of the project until you're part way into it. The waterfall process works for you (it had better!) but it doesn't tend to work well for us ... and there comes in the least technical other skills you cite ("arbitrary client constraints", oh, yes!).

One final note: we can mostly get away with so many in our field being idiots because what we do is mostly less consequential, but if you noticed the recent stories about how medical radiation devices are still killing people you'll see we really aren't as far as we should be.

Thanks a lot for your reply.

Re: Why I don't believe in software architects

#53
post #22
post #5

Earlier quoted context omitted.

I absolutely agree that if you like coding, don't ever stop. It will also make you a better architect. In my experience, large companies who use Rational will have their architects buried in Rose building UML and writing 150+ page docs all day. Smaller and/or agile/XP companies will be looking for a super experienced coder, who can mentor, and look at the big picture, see the business drivers, etc... Ideally this sor…

Hmmm ... I think you can do both. I used OOSE (from the book, the cut down version of Objectory (prior to it becoming the Rational Process)) in a project ... but it was just me and a bright newbie almost right out of college, with someone added for a last feature. It worked fantastically well, e.g. I had to stop working on the project for a few weeks to attend to the prototype (that I'd hacked up in in a 6 week burno…

CORRECTION: the newbie had neatly iterated the design and I was able to slip right back into coding with no fuss

Re: Why I don't believe in software architects

#54

Earlier quoted context omitted.

You bring up some interesting points, but I must disagree with what you seem to be implying. While it is true that there are many 20 year olds with very impressive tech resumes, many more impressive than mine (I went in the Army and did some other things before entering the tech industry, so I came in older than average). But they are the exception, not the rule. When I interview young programmers, most come as the p…

You are not talking about the same people as the GP though. The people who do 9-5 coding are clearly not often the same ones as those who have contributed to the Linux kernel. What I have found is that, of the people I work with, there are some who are great at what they do. As they gain experience the style of greatness often changes, but the magnitude does not. (I have even worked with people who become more risk s…

So in that case, age really has very little to do with it. Like you said, they'll be even MORE awesome with age. They'd still probably have something to gain from listening to older people, as long as those older people are at least as awesome as they were.

Re: Why I don't believe in software architects

#55
post #9

Earlier quoted context omitted.

There should be more people like you. The biggest problem in our industry is that there isn't enough mentors to tell the young people that they were wrong all this time.

:) I think the biggest problem in the industry is that many of the "young people" (I'm still young, dammit!) don't really want to learn or be mentored. Seems like there's a slew of folks in the junior to mid-level developer arena who got into CS because it was going to make them a lot of money, not because they love to code. I love it when I'm working with people who love to tinker with new libraries and APIs, who ar…

There's also a bunch of folks in that group (junior to mid-level) who would prefer to only write code and not to do the rest: testing, documenting/commenting, and analyzing...

as if their code is flawless...

Re: Why I don't believe in software architects

#56

Earlier quoted context omitted.

As opposed to engineering school? Do you think the problems real software architects are ought solve are inferior to those whose real architects solve (if they really do it any better than the software ones)? If you answer no to the last one you should read the Chaos Report.

In technical terms, the problems in software are just as difficult as in buildings, but you don't have to deal with inspectors and building codes and aesthetics. (Which is a big part of the reason I choose to work as a coder ;) I am saying that a top notch architecture school is much more demanding than an equivalent engineering school, from my experience. I say that having lived with ME and CS roommates, at U of Mic…

Oh yes you have. Basel regulations are one of the top drivers of architecture initiatives in the finance industry.

Talking about aesthetics, Information Architecture, from the data model to business objects model (or what the users call the fields in an user interface), even the the names you give to the applications are a big aesthetic exercise.

An aesthetic exercise where you your audience is the business side, and you need to appeal to their comprehension.

Post reply on HN