15 ms·
And by "superstar", it's usually a person that can communicate his ideas eloquently and knows how to effectively evangelize and self-promote. It has not much to
by levosmetalo 11y ago
And by "superstar", it's usually a person that can communicate his ideas eloquently and knows how to effectively evangelize and self-promote. It has not much to do with the actual technical competency. So, the skillset required to become a "technical superstar" resembles more of a skillset required for good manager or marketing persona than actual engineering skill set, though some level is required.
- Ensorceled 11y agoTrue, most of the superstars are "architects" who can both come up with excellent technical plans and then socialize/communicate them. I have a had a few "put on head phones and pump out 5 developers worth of excellent code" types as well.
- jerf 11y agoI'm continuing to wander slowly but surely into more architecture roles, and while the term has fully justifiably been badly wrecked by people doing "architecture" who think it involves drawing diagrams with lots of boxes and lines and never checking the architecture against the requirements, there is a legitimate architecture role that does exist and there are legitimate skills that are specialized to that role. I'm not sure it's something that can be taught very well, though. But as one for instance, I could clearly explain to you how the architecture conforms to Conway's Law and exactly why it's shaped the way it is, and not some other way. (Conway's Law is huge for a high-level architect... in a lot of ways you do not so much "create" the architecture as discover how to correctly translate the pre-existing corporate structures into code in the most business-efficient manner. "Architects" in this position who think they're working with a blank slate crash and burn, and probably are the source of the disdain for the term. A real architect is in fact working in some of the most constrained design space there is. In some ways that actually sorta kinda makes the job easier; you can sort through and dismiss a lot of bad choices very quickly with Conway's Law. The biggest challenge is when you get constrained down to zero choices for some problem and have to work Conway's Law in the other direction, and figure out how to fix the corresponding structural failures in the organization itself. It's a lot easier to change code than people structures, but sometimes you have no choice....)
- perlgeek 11y ago> I'm not sure it's something that can be taught very well, though Why ever not? You can study and discuss existing architectures, their advantages and disadvantages, discuss case studies of existing code and new requirements and what architecture to implement them in etc. Of course, you also need some decent programming experience to come up with architectures that work in practice, but that can be also acquired.
- dwmtm 11y agoThis kind of architecture is akin to surgery, and there aren't enough cadavers available for practice. (Zombies, on the other hand, maybe.) The Conway's Law factors are also harder to treat "fairly" in a theoretical sense relative to some of the real team-related difficulties that exist in any large enough organization.
- Ensorceled 11y agoYes, I've worked with Architects and "architects". Only the first type actually benefit the company :-)
- gaius 11y agoYou can't be a software architect without extensive experience as a software engineer first, at least 10 years, more like 20. At a previous job, you could go straight into architecture as a graduate on the "fast track". The architecture group at that company went on to produce many epic 500-page documents that no-one ever read, and one day they were all laid off... And no-one noticed.
- bonzini 11y agoIt's actually a different skillset than management. A good manager is able to act as the interface between multiple teams, for example collecting requirements and resolving impedence mismatches. A developer who has advanced along the technical path does need some social and people management skills, but the role is very different. For example, they can mentor junior developers, or they can work with their managers to ensure that technical problems at said interface are spotted before they become problematic.