Close

Développement logiciel

Découvrez les fondamentaux du développement logiciel


Les logiciels ont conquis le monde. En 2011, Marc Andreessen déclarait : « les logiciels conquièrent le monde ». Peu après, ses prédictions se sont réalisées. Dans l'économie numérique d'aujourd'hui, chaque entreprise utilise de nombreux logiciels. Amazon est peut-être le plus grand vendeur au monde, mais ce n'est pas une entreprise de vente au détail : c'est un éditeur de logiciels, a déclaré l'ancien PDG d'Amazon, Jeff Bezos. Comme il l'a expliqué : « Notre activité ne tourne pas autour du contenu des colis, mais autour des logiciels qui permettent leur expédition ».

Boucle de l'infini DevOps

Qu'est-ce que le développement logiciel ?

Le développement logiciel désigne la conception, la documentation, la programmation, les tests et la maintenance continue d'un livrable logiciel. La combinaison de ces aspects permet de créer un pipeline de workflow, une séquence d'étapes qui, lorsqu'elles sont suivies, donnent naissance à des livrables logiciels de grande qualité. Ce pipeline est connu sous le nom de cycle de vie du développement logiciel (SDLC).

Bien qu'il existe de nombreuses nuances, le SDLC inclut généralement des éléments communs, comme indiqué ci-dessous.


Étapes du SDLC


Éléments en orbite autour d'une ampoule

Concept

Les projets sont planifiés, conçus et priorisés. Une méthodologie comme Agile permet d'orienter le processus de travail du projet. Des pratiques comme DevOps encadrent le travail de développement et d'exploitation. Durant cette phase, Confluence est l'outil idéal pour élaborer des documents de recherche sur les produits et pour partager des fichiers de design.

Workflow simple

Plan + feuille de route

Les parties prenantes sont identifiées, les budgets sont définis, et l'infrastructure est réquisitionnée. Les documents issus de la phase Concept sont répartis en tâches exploitables. Jira Software et Trello gèrent, suivent et organisent ces listes de tâches.

Enregistrer le code

Code, revue et test

Les équipes de développement conçoivent des logiciels prêts pour la mise en production, qui répondent aux exigences et aux commentaires. Les pipelines de CI/CD garantissent l'expérience efficace des développeurs. Bitbucket comprend des outils collaboratifs de revue de code et des pipelines de CI/CD qui s'intègrent au processus de revue de code.

Livraison de code

Déploiement, livraison et hébergement

Une fois le code approuvé et mergé, le moment est venu de le livrer. Avec les pipelines de CI/CD de Bitbucket, le déploiement est un jeu d'enfant : il suffit d'appuyer sur un bouton. Vous aurez besoin d'un espace pour stocker le code mis en production. Envisagez d'utiliser les services d'hébergement dans le cloud fournis par Amazon AWS, Google Cloud Platform ou Microsoft Azure.

Vitesses

Support, exploitation et maintenance

Le support et la maintenance sont indispensables dans les projets logiciels actifs. Jira Service Management procure des outils performants pour collecter, trier et résoudre les demandes de support client.

erreur

Gestion des incidents

La gestion des incidents désigne le processus utilisé par les équipes DevOps et des opérations informatiques pour répondre à un événement imprévu ou une interruption de service et rétablir le fonctionnement du service. Les équipes ont besoin d'une méthode fiable pour prioriser les incidents, parvenir à une résolution plus rapide et offrir un meilleur service aux utilisateurs.

Pratiques tout au long du SDLC

CI/CD

Feedback continu

Les équipes doivent évaluer chaque version et générer des rapports pour améliorer les versions futures, demander aux clients de donner leur avis sur la valeur et l'impact des fonctionnalités du produit, et partager les résultats commerciaux avec les parties prenantes. En recueillant un feedback continu, elles peuvent améliorer leurs processus et augmenter la valeur apportée aux clients.

Sécurité

Sécurité

À mesure que les apps logicielles gagnent en complexité et évoluent, la sécurité traditionnelle « ajoutée » à la fin d'un cycle de livraison ne suffit plus à sécuriser les logiciels. La sécurité devrait plutôt être introduite tout au long du SDLC afin de limiter les vulnérabilités dans le code logiciel.

Fonctionnalités clés pour un développement logiciel efficace


Agile

Agile est une approche itérative de la gestion de projets et du développement qui aide les équipes à apporter de la valeur aux clients plus rapidement et plus facilement. Les méthodologies Agile sont extrêmement populaires dans le secteur du développement logiciel, car elles permettent aux équipes d'être flexibles, bien organisées et capables de répondre aux changements.

DevOps

DevOps est un ensemble de pratiques et d'outils, ainsi qu'une philosophie culturelle. Son but est d'automatiser et d'intégrer les processus entre les équipes de développement et informatiques. DevOps met l'accent sur l'autonomisation des équipes, la communication et la collaboration transverses ainsi que l'automatisation technologique.

Intégration continue et livraison continue (CI/CD)

L'intégration continue désigne la pratique qui consiste à automatiser l'intégration des changements de code dans un projet de développement. Elle permet aux développeurs de logiciels de merger fréquemment des changements de code dans un dépôt central où les builds et les tests s'exécutent.

La livraison continue s'étend à l'intégration continue en déployant automatiquement les changements de code dans un environnement de test/production. Elle suit un pipeline de livraison continue, où les builds, les tests et les déploiements automatisés sont orchestrés en un workflow de livraison unique.

Microservices

Une architecture de microservices, également appelée simplement « microservices », est une approche permettant de créer une app sous la forme d'une série de services déployables indépendamment, décentralisés et développés de manière autonome. Ces services à couplage lâche sont déployables indépendamment et facilement maintenables.

Dans une architecture de microservices, les développeurs peuvent ensuite s'organiser en équipes plus petites spécialisées dans différents services, avec différents stacks et déploiements découplés.

Agile

Agile est une approche itérative de la gestion de projets et du développement qui aide les équipes à apporter de la valeur aux clients plus rapidement et plus facilement. Les méthodologies Agile sont extrêmement populaires dans le secteur du développement logiciel, car elles permettent aux équipes d'être flexibles, bien organisées et capables de répondre aux changements.

DevOps

DevOps est un ensemble de pratiques et d'outils, ainsi qu'une philosophie culturelle. Son but est d'automatiser et d'intégrer les processus entre les équipes de développement et informatiques. DevOps met l'accent sur l'autonomisation des équipes, la communication et la collaboration transverses ainsi que l'automatisation technologique.

Intégration continue et livraison continue (CI/CD)

L'intégration continue désigne la pratique qui consiste à automatiser l'intégration des changements de code dans un projet de développement. Elle permet aux développeurs de logiciels de merger fréquemment des changements de code dans un dépôt central où les builds et les tests s'exécutent.

La livraison continue s'étend à l'intégration continue en déployant automatiquement les changements de code dans un environnement de test/production. Elle suit un pipeline de livraison continue, où les builds, les tests et les déploiements automatisés sont orchestrés en un workflow de livraison unique.

Microservices

Une architecture de microservices, également appelée simplement « microservices », est une approche permettant de créer une app sous la forme d'une série de services déployables indépendamment, décentralisés et développés de manière autonome. Ces services à couplage lâche sont déployables indépendamment et facilement maintenables.

Dans une architecture de microservices, les développeurs peuvent ensuite s'organiser en équipes plus petites spécialisées dans différents services, avec différents stacks et déploiements découplés.

Outils de développement logiciel


Les outils de développement logiciel peuvent vous aider à chaque étape du SDLC, y compris l'orientation des pratiques Agile et DevOps, la gestion du code, l'automatisation via la CI/CD, la réponse aux incidents, les tests, et plus encore.

Logo Jira Software

Jira Software

Jira est l'outil de développement logiciel nº 1 pour les équipes Agile. Jira Software est un outil de gestion de projet pour les équipes Agile qui permet de planifier, suivre et livrer des logiciels de premier ordre en toute confiance.

Logo Bitbucket

Bitbucket

Bitbucket ne se résume pas à la gestion du code Git. Avec Bitbucket, les équipes disposent d'un espace unique où planifier des projets, collaborer autour du code, tester et déployer.

Logo Compass

Compass

Compass est une plateforme de partage d'expériences pour les développeurs qui vous permet de naviguer dans votre architecture distribuée. Il fournit des informations déconnectées sur les résultats d'ingénierie et sur les équipes qui collaborent pour les atteindre dans un emplacement central et interrogeable.

Atlassian Open DevOps

Les équipes disposent de tout ce dont elles ont besoin pour développer et utiliser des logiciels dans Open DevOps, directement prêts à l'emploi. Open DevOps est disponible avec Jira Software, Confluence, Bitbucket et Opsgenie. Les équipes peuvent facilement ajouter les outils de leur choix, tels que GitHub ou GitLab, en un seul clic.

Atlassian Open DevOps

Les équipes disposent de tout ce dont elles ont besoin pour développer et utiliser des logiciels dans Open DevOps, directement prêts à l'emploi. Open DevOps est disponible avec Jira Software, Confluence, Bitbucket et Opsgenie. Les équipes peuvent facilement ajouter les outils de leur choix, tels que GitHub ou GitLab, en un seul clic.