Plateforme Digitale d'Entreprise / Développement sur-mesure

Notre équipe se tient à votre disposition pour vous accompagner dans la mise en place de votre application web sur mesure.

Slider Image
Python / Django

Développement sur mesure de votre plateforme digitale Python Django

Notre équipe se tient à votre disposition pour vous accompagner dans la mise en place de votre application web sur mesure.

Nos équipes maîtrisent toute la chaîne du développement : du backend au frontend, de l'hébergement à l'automatisation du déploiement et du build de l'application. Nos UI / UX apporteront leur savoir faire sur l'ergonomie de votre application métier. Nos chefs de projet vous accompagneront tout au long du projet. Les développeurs frontend s'occuperont d'intégrer les interfaces riches en collaboration avec les équipes "Backend".
Nous sommes en capacité d'accepter des projets complexes, à forts enjeux stratégiques et économiques, tout en respectant les délais grâce aux méthodes agiles.

Technologies
Rapide et Reactif

Méthodologie agile

Scrum est un schéma d’organisation de développement de produits complexes. Il est défini par ses créateurs comme un « cadre de travail holistique itératif qui se concentre sur les buts communs en livrant de manière productive et créative des produits de la plus grande valeur possible ».

Nos experts développent de façon incrémentale et itérative pour vous permettre de tester et valider à chaque étape. Vous avez ainsi une parfaite visibilité sur l'avancement du projet et vous pouvez faire les adaptations nécessaires pour répondre au mieux aux besoins de vos utilisateurs.

Ci-dessous figurent les différentes cérémonies qui seront mises en place lors de chaque Sprint :

Sprint Planning : le premier jour du sprint
Timebox : 1h à 1H30 par sprint en fonction de la connaissance du produit

  • Définition des objectifs du sprint (sprint goal)
  • Définition par la Scrum Team des tâches à embarquer dans le sprint planning
  • Utilisation de la vélocité de l'équipe de développement (Development Team) : pour valider ce qui est embarqué dans le sprint
  • Analyse des contraintes qui pourraient affecter la bonne réalisation du sprint
  • Choix avec le Product Owner des tâches créant le plus de valeur pour le client pour définir les priorités
  • Analyse de la capacité et des disponibilités de l'équipe pour le sprint à venir

Daily Scrum
Timebox : 15 min

Seule la Development Team y participe.
Inspection de l'équipe : ce qui a été fait la veille qui a permis d'atteindre l'objectif du sprint, les points bloquants qui pourraient m'empêcher d'atteindre l'objectif de sprint, et ce que je vais faire aujourd'hui pour atteindre l'objectif.
Update du tableau et des Radiateurs (Burndown Chat, Confidence Chart)

Refinement
Timebox : 1h par semaine

La Product Backlog Refinement permet d’affiner le contenu du Product Backlog.
Lors de la Product Backlog Refinement, le Product Owner va proposer des user-stories aux développeurs qui respecteront la définition du « Ready » préalablement défini par l’ensemble de l’équipe.
Analyse de la story / S'assurer de la bonne compréhension de la story.
Estimer la demande (planning poker). Nous utiliserons à cet effet https://www.planitpoker.com.

La Review
Timebox 1H pour un sprint de 2 semaines.

Se tiendra le vendredi matin à la fin du sprint.
L'équipe de développement présente ce qui a été fait pendant le sprint (Dans le respect du Définition of Done - DOD)
Collecte des retours client, échange sur l'incrément démontré
Inspection de l'incrément pour identifier ce qui pourrait améliorer la valeur du produit.

La retrospective
Timebox : 1H pour un sprint de 2 semaines.

Réservé à la Scrum Team
Une opportunité pour l'équipe de faire une introspection sur le sprint (ce qui s'est bien passé, ce qui s'est mal passé, comment l'améliorer)
Nous utiliserons le format RETROMAT (https://retromat.org/).
Exemples : SAD MAD GLAD, Perfection Game, Speedboat / Sailboat

A l'issue de la retro : vote de l'équipe qui doit aboutir à l'amélioration du DOD (Definition of Done) et la mise en place d'un ticket d'action à mettre au prochain Sprint pour améliorer la qualité du produit

Les outils de suivi et reporting :
- Slack
- Breeze
- JIRA
- Gitlab

Environnements et good practices

De nombreux types d’environnements sont possibles mais on retrouve couramment

Développement

Pour le développement local sur la machine d’un développeur. C’est l’environnement le plus simple, par exemple, on n’y active généralement pas de cache, pas d’accès un service d’API externe, etc.. et en mode “DEBUG” activé.

Test

Un environnement spécial pour lancer les tâches qualité par exemple lorsque le déploiement est automatisé (via un système deCI/CD) pour bloquer une release qui inclurait des régressions. Il est aussi souvent inclus dans l’environnement de développement pour qu’un développeur puisse contrôler son travail localement avant de livrer

Pré-production

Qui intervient entre le développement local et la production pour présenter des preuves de concept et tester en interne des évolutions.

Recette

Il sert à pratiquer du test fonctionnel par une équipe pouvant représenter un ou plusieurs utilisateurs finaux. Son plus grand intérêt est de temporiser l’état de la pré-production qui peut valider des concepts en interne qui ne sont pas finalement souhaitables, il sert donc de tampon. C’est utile pour une équipe externe de validation qui suit son propre cahier des charges sinon la pré-production sera suffisante.

Production

C’est la finalité pour publier un projet. Développement et Production sont les environnements naturels d’un projet et Pré-production est un atout pour éviter les régressions et les pertes de données en production.

Le style de programmation ou “code style” est un ensemble de conventions pour définir des règles communes à tous les développeurs sur le code qu’ils produisent dans un même projet.

PEP8

Python a défini la PEP8 comme norme de référence, elle décrit les règles de base pour produire un code lisible et accessible sans brider l’ingéniosité du développeur. Lorsque la PEP8 a été absorbée par un développeur, il pourra plus aisément se confronter à l’usage de Flake8 qui est un outil implémentant l’intégralité de la norme pour sonder son code et lui retourner tous les manquements aux règles qu’il devra corriger car Flake ne modifie jamais le code lui-même.

Flake8

Lorsqu’un outil comme Flake a été intégré aux tâches qualité, les règles de la norme s’imposent assez rapidement et avec un peu d’expérience, un développeur écrira naturellement la quasi totalité de son code en les respectant.

Tests unitaires

Le principe des tests unitaires est de valider du code par du code dans une procédure automatisée qu’il suffit d’éxecuter par une commande unique pour effectuer un contrôle qualité d’une plateforme.
Tout projet nécessite d’être testé et le test humain est le plus naturel mais aussi le moins sûr car plus un projet est conséquent plus il nécessite de tester des scénarios différents pour chaque fonctionnalité et comportement. Les tests humains mobilisent du temps et des moyens sans garantir pour autant une qualité fiable.
C’est pourquoi il est indispensable qu’un projet ait une couverture de tests automatisés, pour le backend via des tests unitaires et pour le frontend via des tests fonctionnels.

Pytest est l’outil de référence pour exécuter des tests unitaires et les rédiger naturellement par une approche de programmation fonctionnelle.

Pair programming & review de code

CI CD automatisé avec déploiement des branches / feature branches

Support

Nous pouvons vous aider !

Forte d'une expérience éprouvée sur Django Python, Emencia est à même de vous accompagner et de vous conseiller pour la migration de vos projets Django.

Emencia, expert Python depuis 2002, a réalisé plus de 350 projets Django. Nous accompagnons nos clients de la conception à la mise en production.

Publications
21 décembre 2023
Création de la boutique en ligne de la brasserie Captain Coeur de Boeuf

Captain Cœur de Bœuf est une jeune brasserie installée en Charente.

27 octobre 2023
C-TEC Constellium Technology Center - Développement d'une plateforme web de calculs scientifiques et d'applications métiers

Constellium est un leader mondial dans le développement, la fabrication et le recyclage de produits et solutions en aluminium avec près de 12 500 employés et 25 sites de production dans le monde.

21 septembre 2023
Développement de la plateforme SMP
22 décembre 2022
Témoignage de Pierre ESTAGER, Product Owner chez Moët Hennessy
15 avril 2021
UTB : Développement d’une solution complète de pilotage à l’avancement