Je travaille depuis 12 ans dans les métiers de l'informatique orienté Web. J'ai développé sur plusieurs technos
(Angular, PHP, NodeJS) des applications destinées aux grands
groupes dans le domaine bancaire, services à la personne, e-commerce, aéronautique, protection civile, compagnie
aérienne, automobile etc...
J'interviens sur des projet réalisés en équipe, en méthode agile. Je participe aux démos, aux
rituels agile, réunion d'équipe, transmission de compétences, support etc... J'ai une bonne connaisance,
en plus de mes disciplines maîtrisées, du déploiement continu, de l'intégration continue,
chaîne devOps, architecture etc...
L'équipe coeur est l'équipe qui développe la solution. Ce sont les développeurs, techniciens de niveaux différents et de compétences souvent complémentaires. C'est une équipe où l'information circule et où tous les intervenants connaissent les sujets de toute l'équipe afin de pouvoir remplacer le plus facilement possible un membre de l'équipe en congés ou qui serait passé à un autre projet laissant son poste vacant le temps d'un nouveau recrutement. Elle est au centre de la méthode agile. C'est elle qui définit ses rituels, l'heure des réunions quotidiennes... Elle est censée être auto-organisée. Si la PO peut définir la priorisation des fonctionnalités à développer, l'équipe coeur doit émettre ces remarques, réflexions concernant la faisabilité des fonctionnalités et leur temps de développement.
En tant que dév. sénior, tech lead j'accompagne les différents intervenants du projet pour développer les fonctionnalités
attendues par le client. Au plus près du département fonctionnel comme le product owner ou product manager,
je conseille et avise mes collaborateurs des difficultés pouvant exister résultant de choix fonctionnels afin
d'anticiper certains éléments bloquants durant le développement du projet. Cette collaboration avec les rôles de
product owner ou product manager est très importante pour garantir la bonne exécution du projet.
L'architecte peut aussi être présent lors des réunions avec le, la product owner. Au plus près des problématiques serveur,
communications entre les différents supports informatiques de l'entreprise il peut soulever des problèmes résultants de choix
fonctionnels.
Le choix des technologies est essentielles pour votre projet. Elles constituent le socle sur lequel vont s'appuyer
votre équipe au coeur du développement. ces choix devront être minutieux pour avoir des technos faciles à utiliser,
avec un haut niveau de maintenabilité car vos systèes d'information évoluront avec.
Pour ma part, je tourne souvent entre des framework front commen Angular ou react et PHp Symfony ou NodeJs pour le backend.
En accord avec un bon designer, vos interfaces peuvent être très intuitives, simples à utiliser et adaptées à tous les
supports média (tablette, smartphone, orrdinateur).
Github, Bitbucket, pull request, code review, Jenkins, AWS, Terraform, Kubernetes, Docker, Argo CD, Gitlab-ci, Git flow...
Toutes ces technos, en plus d'une bonne équipe constituée de membres qui connaissent les problématiques
d'intégration continue, de déploiement continu, permettent de déployer rapidement de nouvelles versions de l'application
en mode "industriel". Cette approche DevOps permet aussi d'être flexible et "simpliste" dans la problématique de versionnement
de l'application et de son évolution à cours et long terme.
PO, POD, scrum master, PM, équipe coeur, rituels agile, daily, sprint, PI, PI planning, rétro planning... Autant de terme et de rôles qu'il faut comprendre afin organise le travail, atteindre des objectifs précis, prévoir et déterminer les temps de développement des objectifs à atteindre. L'esprit agile favorise la prise de risque en équipe, le partage des responsabilité entre développeurs et la mise en commun des savoir-faire.