Je travaille dans une grande entreprise où les techniciens appartiennent à peu près à l'une de ces catégories:
Dans mon entreprise, le rôle d'architecte est celui où la plupart des techniciens entrent dans la prochaine étape de leur carrière.
Mes questions sont les suivantes: la plupart des entreprises fonctionnent-elles de telle manière que leurs techniciens les mieux payés sont loin de l'écriture de code? Est-ce une tendance naturelle pour la carrière d'un développeur? Un développeur peut-il tout avoir (coder ET définir la direction?)
La plupart des entreprises fonctionnent-elles de telle manière que leurs techniciens les mieux payés sont loin de l'écriture de code?
La plupart des mauvaises entreprises. Il y a une tendance naturelle pour plus de responsabilité à impliquer moins d'écriture de code et plus de concentration sur d'autres aspects du développement logiciel. Cela dit, il est très courant pour les techniciens de perdre le contact avec ce qui est commun/meilleur/possible s'ils ne passent pas de temps à coder. Cela a un effet désastreux sur l'entreprise.
Est-ce une tendance naturelle pour la carrière d'un développeur?
Oui. En fin de compte, une personne peut aider le produit beaucoup plus en encadrant, en coordonnant, en concevant, en connaissant le domaine problématique et en effectuant d'autres tâches de développement logiciel qu'en écrivant du code. Et en toute honnêteté, avoir de bonnes compétences en leadership ou en conception sont beaucoup plus rares (lire: précieux) que les compétences en écriture de code.
Un développeur peut-il tout avoir (coder ET définir la direction?)
Absolument. Bien que vous deviez vous rendre compte que la quantité de codage diminuera. Vous juste ne pouvez pas bien faire ces autres choses précieuses si vous passez 80% de la journée tête baissée dans un IDE.
L'autre option qui se présente est celle de "l'ingénieur principal" faute d'un meilleur terme. Certains développeurs sont très spécialisés. J'ai travaillé avec quelqu'un par exemple qui a écrit des pilotes Gigabit Ethernet pour Linux. Nous avions besoin de lui pour faire ce genre de travail pour nous, et comme seulement une poignée de personnes pouvaient bien faire ce travail, il a fait des tas d'argent en plus d'écrire du code comme la majorité de sa journée.
La plupart des entreprises n'ont cependant pas besoin de ce type de spécialisation. Il s'agit simplement de rassembler des données ou de créer un autre site Web/mobileapp.
Cela dépend en grande partie de la culture de l'organisation. De nombreuses entreprises n'ont pas de véritables postes techniques supérieurs, bien qu'elles puissent en avoir de fausses.
Certaines entreprises ont ces postes. L'une des raisons pour lesquelles les grands ingénieurs ont tendance à se tourner vers quelques grandes entreprises (par exemple Google) ou vers des startups est qu'ils peuvent continuer à être des développeurs et travailler sur des choses qui les passionnent avec une rémunération élevée et un statut organisationnel. Dans la plupart des entreprises, si elles voulaient rester développeurs, elles seraient aux échelons inférieurs de l'échelle.
L'expérience personnelle est la plus expérimentée que j'acquiers à écrire du code, moins je peux me permettre de l'écrire.
Je passe du temps à essayer de résoudre les problèmes avant qu'ils ne surviennent. Pour aider les autres lorsqu'ils sont coincés. Pour planifier comment les choses vont s'asseoir ensemble. Essayant même d'amener les gens à tirer dans la même direction.
Cela me semble inévitable dans ma position. Je préfère travailler avec le code, mais il y a des choses que je peux faire pour notre entreprise qui sont beaucoup plus précieuses.
Maintenant, c'est une expérience personnelle, mais oui, je pense que cela refléterait la plupart des petites entreprises. Cependant, j'ai clairement indiqué à mon propre patron que je ne voulais pas être complètement supprimé du code.
Je pense que les meilleurs architectes logiciels sont pratiques J'ai vu un bon article http://www.infoq.com/articles/brown-are-you-a-software-architect Regardez la partie 4 Design , Développement et tests.
Cela dit, pourquoi les activités de codage quotidiennes ne devraient-elles pas faire partie du rôle d'un architecte? La plupart des architectes sont des codeurs expérimentés, il est donc logique de maintenir ces compétences à jour. De plus, l'architecte peut ressentir la même douleur que tous les autres membres de l'équipe, ce qui à son tour les aide à mieux comprendre comment leur architecture est considérée dans une perspective de développement.
Cela dépend de vos responsabilités. Si vous êtes responsable des questions techniques, vous devez rester dans une position de codage. Séparer le processus "idée" du processus "mise en œuvre" est un chemin dans la mauvaise direction. Si jamais vous vous trouvez dans une telle position, vous devez résister à l'envie d'être ce génie qui n'a tout simplement pas le temps de mettre en œuvre ses idées brillantes.
D'un autre côté, si votre responsabilité réside dans la gestion, je ne pense pas que vous devriez coder. Un gestionnaire doit gérer le temps de remplissage. Une telle position comprend la facilitation de la communication entre les différents codeurs, et entre l'équipe et le plus grand écosystème bureaucratique. Les pires managers de mon expérience où ceux qui sont restés bousculent le codage tandis que l'équipe s'effondre à cause de conflits et de mauvaises communications.