Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is actually reads like a pretty good list of suggestions for any new leadership team, not just Yahoo. Fire all the "architects" who get paid $250,000 to make gigantic UML diagrams and can't actually code. Pay top dollar to retain and recruit talent. Don't spend a whole lot of time with some broad marketing message that everyone will immediately denounce as meaningless fluff anyway. Stop re-inventing the wheel. Form great teams and empower them to make great products.

I'd just like to add that I think it's important for Mayer or anyone else in this position to do this quickly. If you're two months into the job and you're still having "introductory meetings" with all the departments and putting together "the vision," then by the time you actually start to make any changes, it'll be that much harder because of how much your products have declined and your talent has hemorrhaged in the meantime.



Specifically on the architect issue, I think the system and the incentives are setting them up to fail. If you're a senior guy, measured on fluffy terms like 'influence', you're not going to get a promotion by saying you designed the simplest thing possible - or by saying you just took this project from Github that happens to solve your problems.

You are incentivized to build grand, complex systems which will look good when you want to do a talk at an O'Reilly conference - which is exactly what winds up happening.


Sorry Sriram, I was going to let this whole point slide, but I just can't. I think your advice on the architect issue is out-of-whack.

When I hear the phrase 'fire anyone who has architect in their title', here's what I hear in my internal monologue: Yes! Fire all the architects! Front line engineers know what every other development group is doing and can integrate their systems in a pinch! They are also across the application security requirements recently mandated in government regulation and can implement that too! No-one needs company-wide frameworks, because each development unit's home-grown libraries are good enough. Systems design? Pfft, overrated. Just check it in and break things, it's called 'agile'.

I apologise if my internal monologue sounds shrill, but your advice to 'fire all the architects' sounds similar to advice from developers to 'fire all the marketing department'.

edit: I am not an architect, this is not a defensive rant.


At Google (& presumably Facebook and other tech companies), people do all that, but they have the title "engineer". Because unless you actually know what's going on in the coding front-lines, you won't be effective at integrating with other systems. And if you don't understand how your company-wide frameworks are being used in actual code, you will build shitty frameworks.

There's a good reason why "engineer", "architect", and "systems integrator" should not be distinct roles.


I've known more than a few "architects" worthy of that title.

Then there are the bozos. They stand out pretty dramatically, so maybe that's why the title is a little poisonous in my head. "You're an /arrrccchhhitect?/ I'm the Queen of England, we should have lunch." (<--- not actually said :-) )

My touchstone is: If an architect is unwilling to write code then they belong in the second camp. If they're willing to write code, but don't have enough time, I look at when they last wrote code; if it's been more than a couple of years I start getting critical.

In this industry, I think it's important to stay grounded in code. You can get away without that if you're a pure career manager, but you'd better realize that you're no longer capable of designing systems at that point.


> Front line engineers know what every other development group is doing and can integrate their systems in a pinch!

Well, no one knows what every other development group does in a company of significant size. And more often than not, no one can integrate systems in a pinch; and when it comes to integrating, the front line engineer does it. Unless your hypothetical architect has magical powers, I don't see how your point is relevant.

It's up to the other development teams to expose an interface to their services and make their libraries re-usable; and most importantly, document them and let other teams know. A company should encourage, and somewhat mandate(Bezos directive regarding no stinking db accesses, only services).

> They are also across the application security requirements recently mandated in government regulation

I don't know where you work, but the places I have worked, all mandated and non-mandated security requirements are implemented by engineers. I am curious. Care to quote me some of these security requirements of yours?

> can implement that too!

Implement what? I haven't implemented a hashing algorithm, or public-private key encryption ever, and most likely am not going to - I use tested, out of box components like I should. What's rocket science in storing hashed-salted passwords, or using SSL for transport, or PGP for offline...which engineers are incapable of? If they indeed are incapable of using bcrypt for storing passwords, well, I don't know what to say - words fail me.

> No-one needs company-wide frameworks, because each development unit's home-grown libraries are good enough

I am yet to see a company-wide framework which is relevant to anything beyond a small team, let alone useful. That said, I need to secure encode input and that other news team which takes news feed from variety of providers in multiple languages has already something for sanitizing markup. Are you implying without this architect of yours, I won't talk to the other team, or look at the code; and go in my cave to re-implement that? That makes 0 sense to me.

> Systems design? Pfft, overrated. Just check it in and break things, it's called 'agile'.

Where does this come from?

> but your advice to 'fire all the architects'

The architects in the article refer to a particular kind of person who finds it beneath himself to actually implement something, and spends his day making slide deck and uml diagrams. And yes, they should be fired, unless they are capable of and interested in implementing the stuff they swore by in their slides. Do a PoC and the engineer will take it from there. But don't come in with your ppt - you are wasting everyone's time.


> The architects in the article refer to a particular kind of person who finds it beneath himself to actually implement something, and spends his day making slide deck and uml diagrams. And yes, they should be fired, unless they are capable of and interested in implementing the stuff they swore by in their slides.

So if I understand correctly, the only value-add to software development is cutting code?

Let me put this another way via an analogy: should the architect who designs your house also be required to wire the electrics, install the plumbing, and lay the blocks too? And if he/she is not interested in "implementing" (because a design deliverable is not an implementation right?), then they should be fired?

Wow.


> So if I understand correctly, the only value-add to software development is cutting code?

The only value add to software development is people who can do software development. If all you do is pull slides out of your ass, you aren't welcome.

> Let me put this another way via an analogy: should the architect who designs your house also be required to wire the electrics, install the plumbing, and lay the blocks too?

Yeah. Surely a building architect and software architect are comparable.

/s

I am not interested in wiring and plumbing(tests, deployment scripts if you will), but if you come raving about how bayes classification is so sub-par, and you should use svm, you better know what is linear classification, non-linear classification(svm), and have a PoC with the data set comparable to what is being used in the application which cross-validates and proves svm is better than my bayes.

If you just read about it in some book(or blog or wherever), and can't implement it or you just think you can drop slides on me and I am supposed to do it, the door is over there - please show yourselves out and quit wasting my time. Your ppts and umls mean shit to me. If the upper management tolerates(or worse, appreciates it), do the dance for them. I am not impressed.


> The only value add to software development is people who can do software development.

You just described why projects fail. Developers Developers Developers.

Architects? We don't need, we are so smart we integrate everything ourselves. Marketing? Sales? Who needs that, my github repository sells and when it doesn't, there is always oDesk.

And don't get me started over "customers" and "clients".

To cut the sarcasm here, yes, I know that a lot of MBA's and Architects suck. As do a lot of software developers, even if they call themselves agile or know that svm is somehow related to classification.

So I do not really see where this straw man burning leads to .


> The only value add to software development is people who can do software development.

>> You just described why projects fail. Developers Developers Developers.

Read it again. Software development isn't the same as the whole project.

> Marketing? Sales? Who needs that, my github repository sells and when it doesn't, there is always oDesk. And don't get me started over "customers" and "clients".

Hyperbole.

> I know that a lot of MBA's and Architects suck.

Not what I said. "If you are an architect, I don't care about your slides and umls, unless you know what you are talking about, and can do a PoC before dumping your horseshit of slides on me." is what I said.

> As do a lot of software developers, even if they call themselves agile or know that svm is somehow related to classification.

I implemented bayes, and suppose I don't know about svm. If an architect comes raving about svm is so much better than bayes because (I read a blog/I read a book/my thesis adviser told me so/once I did a project), it's your job to prove svm is better for the problem at hand. Don't waste my time with your slides and blogs.

> So I do not really see where this straw man burning leads to .

I don't either. Your whole post is full of hyperbole(marketing sucks, oDesk, github). You are making up arguments I didn't put, and then responding to them.


I think the only value-add about the construction of software can only come from people who are regularly cutting code. Other people just don't have enough detail to understand the implications of their mandates.

Your analogy is poor.

A normal house uses well-understood materials and established techniques to build very similar buildings. And even there, bad architects, ones without construction experience, can cause a ton of trouble. Talk to a house-builder sometime.

But many software projects aren't like that. They're much more like landmark buildings: novel structures, novel techniques, novel materials. And there, architects can cause massive troubles. Look at the Sydney Opera House, at 14x over budget and 10 years late. It's a classic case of an architect with limited understanding of construction techniques and materials just making shit up.

And of course, there's the problem that systems architects do something totally different in relation to software (issuing mandates about the internals and construction techniques) than architects of buildings (visionaries about the look and use).


>>So if I understand correctly, the only value-add to software development is cutting code?

No,

But if the guy doesn't know to cut code, I doubt if he can do anything advanced that can be built on top of it.

We are just saying you can't claim to be architect without coding or knowing coding.

>>Let me put this another way via an analogy: should the architect who designs your house also be required to wire the electrics, install the plumbing, and lay the blocks too? And if he/she is not interested in "implementing" (because a design deliverable is not an implementation right?), then they should be fired?

He should be able to do analogous work in software(That is he should understand and be able to implement electrics, plumbing and laying blocks in software). If he can't he is just a black berry button pushing, Slide making, glorified desk supervisor and not an architect.


>Let me put this another way via an analogy: should the architect who designs your house also be required to wire the electrics, install the plumbing, and lay the blocks too?

For better or worse, this is not a good analogy.

Software is design all the way down, due to complexity. There is no realistic distinction between software design and software construction / implementation.

Also, regardless of whether the software architect actually does the development work, he should be capable of doing the work. Therefore an effective software architect is a software engineer.


That rant sounds good.

But then I note that every small company everywhere still manages to solve issues of integration, security, code reuse, and systems design. That's because you can do all of those things in ways other than top-down, hierarchical control from a central office.

I have never seen a company where "architects" empowered to boss people around via white paper and mandate didn't cause far more problems than they solved.


The point he is trying to make is that the title 'Architect' has been abused at Yahoo.


From what I've witnessed, it is typically an organizational issue. Let's say there's a site that has some sort of marketplace, and the company wants a better algorithm for searching the marketplace because the current algorithm is some crappy substring search. So they hire an architect with some advanced experience on search and tell him, "go figure out something cool that will solve this problem." So far so good.

If you're a developer who works on implementing site features and enhancements, this is what you see. The architect spends the next three months where every meeting his status is "I'm working on the search algorithm." That's all you know that's happening. You assume it's really cool and advanced and it requires his undivided attention, while you continue to juggle managing production issues and implementing new features on the site. Occasionally he has some question about existing search engine, and you show him how it works and due to some painful legacy decisions made earlier, it's pretty embedded in basically everywhere on the site, and everytime he just kind of grunts and scratches his beard and goes back to his desk.

Three months later the project manager taps you on the back and says, "hey, the CEO wants an estimate on how long it's going to take you to implement the architect's new search engine." Erm, okay. So you schedule a meeting with him to see what he has built so far. You don't even know what to expect at this point, since he barely asked you ANYTHING about the existing technology of the company. You're thinking maybe he built some sort of abstracted RESTful service, and hopefully the work on your end will consist mostly of translating direct SQL queries to REST calls.

But, no. Instead you get this HUGE diagram with barely comprehensible terms. Some things immediately jump out to you, like "previous search query terms" is in some sort of cylinder object you assume is supposed to be some sort of database, but you don't actually log the search queries to any database currently. And then there's all these boxes he seems like he just sort of hand-waves, like "baseline linguistic semantic engine," whatever the fuck that means. You ask him about that and he mutters, "oh yes, that is when you compare the search query term for the baseline frequency it occurs compared to the corpus," and this time it's you that grunts, but unfortunately, you don't have a beard you can stroke.

So basically, for you to "implement" this, you're going to need to do a ton of development work building data sources that don't even exist, and then implement his algorithm and find some way to make it robust and scale. So you tell your project manager, "yeah, um, whatever number we're using this quarter for estimating 'story' sizes or whatever, just use the biggest one and double it." And that's the last you hear of it until you're in some meeting a week later with the execs, and someone mentions some problem because the search engine performed suboptimally, and the CEO says, "Wait, I thought the architect already built the solution for that? Why haven't we put it into production yet?" And then you face-desk so hard you break 27 bones in your face and spend the next two years rehabilitating from your reconstructive plastic surgery.

So yes, it's not really the architect's fault. And I actually think architects, with the right skill set and organizational support, can be fantastic. At my last employer there was an architect on my team that was one of my favorite people to ever work with. If an architect is well-integrated with the team, and can work with them to actually develop what he's working on in tandem with reality and determine the right levels of abstraction, then they can be a great resource for a software team. Every time there was some feature request that made us think, "man, we're gonna need some PhD shit for that," our architect would ride to the rescue and figure out some way to solve it that was very advanced but still completely practical given the constraints of everything else, on top of providing general mentorship and design advice.

Architects can get a bad rap and in the example I just described, it's not really their fault. But, it's probably not worth continuing to pay them $250,000 to design completely impractical algorithms nobody can realistically implement, including themselves, either.


>>So yes, it's not really the architect's fault. And I actually think architects, with the right skill set and organizational support, can be fantastic.

Sorry, this looks like the same line of talk used to defend MBA's. And 'Architect' titled are basically MBA equivalents of the programming world. They want to manage things they can't do or understand too well in deep.

If you can't write code, you basically can't design large software that requires tons of code to be written. Architecture isn't merely black boxes represented as classes interacting with each other.

If you are an architect you should be able to write code which you can use to do prototypes, or demonstrate a proof of concept, or verify what somebody else is trying to show you, or you would like to show them. You should be able to point out bottle necks, pain points in large software code bases and correct them. You should know how to refactor and all other best practices in software world.

UML/Black box diagram only architects, aren't architects.


The architects and MBAs will counter by blathering something about siloing, antisocialism, poor communication skills, and anything else that will attempt to disparage and marginalize people who strive to understand things at all levels including the very deepest. Some people are insane about this. I've heard some messed up things like academic advisors telling me to avoid computer science professors because they are 'hard to talk to.'

Asimov's "my ignorance is just as good as your knowledge" anti-intellectualism is really horrifying to behold and will be used against people who strive to know the high level and the bare metal. There is really no defense against this career-wise either except to get out in the open market where it's just you and your knowledge against the idea guys and their talk. In most organizations the idea guys like you describe will posse up because they have to.


Man, these are an awful lot of strawmen you're building up.

I don't have any experience with/at Yahoo, but I imagine that there are a lot of good employees and a lot of bad employees and its important to identify which is which.


As a counter point to your hand waving:

This guy: http://codahale.com/about.html

has 'Infrastructure Architect' as his job title.

I'd be wary of painting everyone who has Architect in their title with your broad brush strokes.


I am sure infrastructure architects or senior sysadmins have their own variations or equivalents of writing code. Like knowing command line usage to the teeth. Making sense of any documentation by just reading man pages, without having to hit Google in dark server rooms.

Or being able to building a Working Linux machine from scratch by compiling the kernel, and installing the utils. Or being able to network and administer a cluster of servers in a data center.

This is vastly different than, a guy who would just draw a block of servers on MS paint and connect them through some lines and then call himself an architect.


If you can't write code vs I’m a software engineer who says Writing tests for your code may not reduce the number of bugs, but it will make fixing the bugs you inevitably find easier.

Sorry, not the same type of person.


>>> phd shit ... Rides to the rescue with so ething implementable

if you have examples I would love to know. The variability of architects I have known has been enormous - I put them on a spectrum - everything from UML 'oh I don't need to program' waste of time to highly competant "set of principles" approach - such as why are we serving this per second data to all the clients by holding open connections to everyone of thousands of clients, let's put them on caches with 1 sec TTL all the way upto folks who live in the JvM and can debug it and explain how

can you supply examples of the phd shit solved and where it sits on the spectrum - cheers


I'm not sure the systems "look good", it's more like they "look too complex". That's the sign of a useless architect. Simple and efficient are so under-appreciated.


What's 'right' for the company is often not what looks best for you when performance review time comes around. That's sad reality in most big companies.


I disagree. There is never a shortage of need to improve things (unless this is some perfect world company that has 1 tough problem a year that the architect can busy himself with). So by getting the project done in whatever means possible (github or simple solution that works) he can move on and solve more problems in a year. That's real value to the company and translates into $$$. Also, the more complex a solution is the more it costs the company to maintain.


Do companies still have absurdly well-compensated "architects" who do nothing but diagram?


Yes, for many companies it's a critical part of the career path for programmers who don't want to be managers.

So all the good programmers (or programmers that stick around long enough) become architects. The system actively weeds out people with lots of domain knowledge and an ability to solve problems by promoting them into architects.

Theoretically architects should be helping teams write even better code than they did before, but usually the teams ignore what the architects do, so there's a whole "us versus them" thing going on.


Not all architects have a programming background. Eg. in Lucent, the architects where postdocs and PhD's in wireless technologies and related fields. I think even Google has postdocs as architects.


I worked at Google for a long time and never encountered anyone with the title "architect" or with a similar job role.


Given how much money IBM still makes off of Rational, clearly somebody's writing UML. I imagine that all that UML's being written at places like banks, defense contractors, three letter agencies...

If there really are people at an internet company like Yahoo doing that, well, wow. I don't see how a company where such a thing even was allowed to develop could have a future in this industry.


Having worked with some of the first few Rational employees, my understanding is that Rational was/is very good at sales through their consulting arms (hired a consultant? congrats, you just paid a member of their sales force to wear your employee badge!). They don't have particularly great usage numbers on those sold products, though.

That said, there are some very useful UML diagrams for non-architect-titled folks. For people stuck using class-heavy systems (some of which are out of their control), the UML Sequence Diagram is both useful and a very compact way to explain "what happens when the user goes <poke>": http://en.wikipedia.org/wiki/Sequence_diagram


Sequence diagrams existed before UML and for getting stuff done, and being able to maintain it, I prefer http://www.websequencediagrams.com/

I just paste the diagram description into my documents as "hidden text", and everyones happy.



I find it impossible to imagine anybody who can write a perfectly working software in a UML diagram without writing & testing a line of code


Many times, the word architect is just a word pre-pended to senior technology worker titles. I know several people who have that in their title and they are solid technologists with lot's of real-world experience. While the term may be abused often, many architects are great. Bad apples are easy to spot, no matter their title.


Damn right they do. These "architects" are typically folks who have just a bit of coding experience but learned to navigate the bureaucratic waters to their advantage, and they love it.

A real "architect" who really solves business problems with technology is called a CTO


And the architect's eventual spot is CIO (a CXO title as useless as "architect")


http://en.wikipedia.org/wiki/Peter_Principle

The principle is commonly phrased, "employees tend to rise to their level of incompetence."


Yes. One enterprise that I am familiar with had a team of about 15 architects, most of whom were former programmers. None had programmed once in the enterprise architect role.

All of us here on HN are much more familiar with smaller outfits--smaller by more than an order of magnitude that typical "enterprise" outfits.

The diversity of programming environments is actually quite vast. Here on HN we are all closer to the actual code than a significant fraction of these environments.

Having done the enterprise thing (as well as the startup thing) that is how I prefer it.


Fire all architect and you will lose all good engineer and only bad one will stay (hoping to become managers). The problem with "individual contributors" (read engineers) is that the only way they can raise on the ladder is to become "architect". If that possibility becomes unobtainable (or insecure), oh well maybe Informatica or Oracle is hiring...

Anyway, good architects are very very important. If you want to succeed you need a secret sauce and person how can to break that secret saurce into deliverable pieces for which a good architect is worth gold.


The term 'Architect' is used differently in each company. In most of the companies I know, Architects are more technical people and only Product Managers have to be fired.




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

Search: