
La cuisine interne du développeur de produits informatiques est multiforme et toujours remplie de tâches différentes. Dans chaque projet, des personnes aux responsabilités différentes trouvent leur application.
En utilisant un projet comme exemple, nous allons approfondir le processus de développement. Avant cela, je décrirai toutes les étapes de ce processus et les responsabilités fonctionnelles des employés.
Cycle de vie du développement de produits informatiques
Les étapes du cycle sont décrites ci-dessous, à partir du moment où le client formule ses idées à l'entrepreneur.
Une bonne planification des fonctionnalités futures des produits et une analyse des exigences jouent un rôle clé pour l'ensemble du projet. Le chef de projet est responsable de cette étape, car c'est lui qui est responsable de la réussite de l'ensemble du processus de développement.
Avant la conception du produit, la planification est de nature «approximative», car il est impossible de connaître le cours exact du développement à ce stade.
Une fois la conception UX / UI terminée, vous pouvez faire un plan précis du déroulement du développement et des fonctionnalités du produit.
Après la planification vient le tour des concepteurs UX / UI - des spécialistes qui conçoivent des interfaces utilisateur. Les concepteurs étudient le comportement des utilisateurs et créent une interface lisible par l'homme. L'aspect visuel du produit est également le résultat du travail des designers.
Avec eux, les architectes système décident de la structure du produit fini et de son comportement.
Les développeurs suivent l'une des méthodologies - pour l'entreprise, c'est principalement Agile. Cette méthodologie implique une approche itérative flexible - c'est-à-dire que les développeurs agissent de manière séquentielle, divisant le projet en tâches plus petites.
Les itérations agiles sont appelées sprints, et un sprint comprend des travaux dans tous les domaines: planification, conception, développement, tests.
Les spécialistes des tests effectuent différents types de tests: tests unitaires, tests d'intégration, tests d'interface et d'autres types en fonction de l'objectif. Cette catégorie de spécialistes devrait arriver à la conclusion finale que le produit ne contient aucune erreur et est prêt à être publié.
Après cela, le produit peut être implémenté et intégré à un logiciel tiers. Le processus de développement ne s'arrête pas là - il se poursuit jusqu'à ce que des améliorations soient apportées.
Le produit fini peut nécessiter une assistance supplémentaire, qu'il s'agisse de questions supplémentaires sur le travail du produit de la part des clients ou de la nécessité d'apporter des modifications aux fonctions déjà définies - les spécialistes du service d'assistance sont toujours prêts à vous aider.
La plupart des projets de développement passent par toutes les étapes du cycle de vie décrites ci-dessus.
Par exemple, nous allons examiner de plus près le processus de développement de produits pour le projet d'entreprise actuel.
Étape 1: idée
Le client est une imprimerie publique. Partout dans le monde, cette industrie ne traverse pas le meilleur des temps, mais aux États-Unis, les imprimeries restent à flot grâce à des technologies innovantes. L'imprimerie nous a demandé de développer une application pour la réalité augmentée - Augmented Reality, AR.
Le United States Postal Service, qui envoie des rapports de transaction imprimés, offre des rabais aux entreprises partenaires qui réduisent la consommation de papier grâce à la technologie. Notre client est devenu l'une de ces sociétés.
Étape 2: Contact
Les représentants de l'entreprise nous ont contactés pour présenter leur idée. Ils voulaient une application de marketing en réalité augmentée. Avant nous, ils utilisaient le système de reconnaissance d'images Catchoom, ils voulaient également autoriser un système de gestion de contenu en tant que produit distinct, mais la société a refusé. De plus, le client souhaitait ajouter des fonctionnalités uniques, ce qui n'était pas impliqué dans la solution Catchoom. Par conséquent, notre tâche était de développer un système approprié en retour.
Étape 3: planification
Le client a décrit les fonctionnalités de base du produit avant de nous contacter. L'équipe de développement a dû étudier l'idée du projet et collecter toutes les exigences nécessaires, identifier les goulots d'étranglement et tout documenter. Les détails du projet et les détails techniques ont été spécifiés à l'intérieur de chaque sprint.
L'équipe qui recueille les exigences évalue les informations reçues, la proposition, les coûts de développement et le prix, appelé RFx. En règle générale, une telle équipe est composée de spécialistes techniques, d'un chef de projet et d'un directeur des ventes. RFx valide avant le début du projet.

Le client étudie l'évaluation du projet pour obtenir une compréhension de base de l'apparence du projet et de la manière dont le développement sera mené. Il détermine également le temps et le coût.
Une fois que le client a approuvé le plan de développement et le budget, le projet peut être démarré.
Commentaire du chef de projet Alexander:
«Je suis responsable de l'avancement continu du projet. J'ai choisi la méthodologie Scrum pour répondre rapidement aux demandes des clients et du marché. Scrum nous aide à développer le produit, à prendre en compte les besoins des utilisateurs dans chaque version du produit et à utiliser les technologies de développement les plus avancées. »
Étape 4: Conception
Le client était ouvert à toutes les idées de nos designers et faisait confiance à la vision des spécialistes. Le concepteur UX / UI a décrit sa vision du futur système, sur la base des pratiques UX généralement acceptées, le client a accepté et la conception a commencé.
Étape 5: Développement et tests
Le client a personnellement visité le bureau de l'entreprise pour rencontrer l'équipe de développement et se familiariser avec la gestion de l'entreprise. Au cours des six premiers mois, le client est venu une fois par mois pour établir la communication, mieux connaître l'équipe et instaurer la confiance entre les parties.
Au premier stade de développement, l'équipe était composée de:
- Un chef de projet qui a également effectué les tâches d'un analyste d'affaires;
- Concepteur UX / UI;
- équipes de développement.
Au stade initial, les développeurs ont effectué des tests par eux-mêmes, sans la participation de spécialistes de l'assurance qualité. Le défi était de créer un ensemble de prototypes pour démonstration lors de conférences et pour attirer des clients potentiels. Ensuite, des tests détaillés n'étaient pas nécessaires.
Lorsque le processus de développement a commencé à travailler sur les fonctionnalités de base, l'équipe a dû être élargie. En conséquence, elle ressemblait à ceci:
- Chef de projet;
- Un analyste d'affaires avec un éventail de tâches plus large que le gestionnaire auparavant;
- Concepteur UX / UI;
- les développeurs
- Chef de l'équipe de développement (chef d'équipe);
- Architecte système qui a développé la structure du produit;
- Spécialiste des tests;
- DevOps - un lien entre le développement et l'exploitation, travaillé avec un réseau et le déploiement de produits.
Le chef de l'équipe de développement Igor a présenté ses innovations:
«Dans ce projet, je suis responsable de la mise en œuvre des tâches du projet, revoir le code, planifier les sprints (itérations en développement), introduire de nouvelles tâches. J'ai suggéré d'effectuer des tests unitaires à l'aide de GitFlow et de créer du code à l'aide d'AWS Lambda. Je présente également de nouveaux membres de l'équipe, je suis responsable de leur adaptation. "
Rejoindre Team Lead a été une décision importante, car elle a aidé à coordonner le développement des versions d'application pour iOS et Android et la version Web afin que tout bouge dans une direction.

L'analyste d'affaires Flor dit:
«Grâce à l'organisation du projet, mon travail a été extrêmement clair et efficace. J'ai traité les demandes des clients et les ai transmises à l'équipe de développement d'une manière compréhensible et techniquement précise. J'ai travaillé en tandem avec un concepteur UX / UI, et notre chef de projet était responsable des négociations, ce qui m'a donné l'opportunité de me concentrer sur mes tâches principales. »
Comme vous pouvez le voir, l'équipe avait besoin de spécialistes supplémentaires pour résoudre les tâches supplémentaires. Une telle composition d'équipe peut fournir un développement de système compétent sans erreurs.
Étape 6: soutien
Le support est généralement fourni à 3 niveaux:
- Premier niveau. Une aide de base, des questions simples qui ne nécessitent pas beaucoup d'attention sont traitées à ce niveau.
- Le deuxième niveau. Aide étendue du personnel avec une connaissance approfondie des produits. Ce ne sont pas nécessairement des spécialistes techniques, mais ils connaissent très bien le produit.
- Troisième niveau. Le niveau expert est assuré par des spécialistes expérimentés: chefs de produit, ingénieurs.
Il n'y a également aucun support par le biais de brochures et de guides d'utilisation.
En fait, il n'y a pas de temps où le travail sur le logiciel est considéré comme terminé. Soit de nouveaux souhaits sont reçus du client concernant l'extension des capacités fonctionnelles, soit une assistance aux utilisateurs du produit est requise. Par exemple, les utilisateurs clients souhaitaient mettre à jour l'application et étendre ses fonctionnalités.
Ce projet représente bien toutes les étapes du cycle de vie du développement. Si nous considérons en détail, le travail sur n'importe quel logiciel est à peu près le même et correspond souvent au schéma ci-dessus.