Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Etude de cas: Réduction d'une Dette Technique

51 views

Published on

Retour d'expérience sur un projet de réduction de dette technique mené au sein d'une compagnie Internet.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Etude de cas: Réduction d'une Dette Technique

  1. 1. Etude de cas: Réduction d’une Dette Technique Emmanuel Fayet – JobWings 2 Octobre 2017
  2. 2. Plan Dette Technique – 101 Historique JobWings Phase I - Evaluation Dette Phase II - Premières Actions Phase III - Support Dette Phase IV - Solde Dette Conclusion
  3. 3. Dette Technique - 101 Technical debt (also known as design debt or code debt) is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer. https://en.wikipedia.org/wiki/Technical_debt
  4. 4. Dette technique - 101 “You need to deliver quality software on time, and under budget. Therefore, focus first on features and functionality, then focus on architecture and performance.” Brian Foote and Joseph Yoder - Juin 1999 Big Ball of Mud http://www.laputan.org/mud/
  5. 5. Dette technique - 101 Henrik Kniberg Good and Bad Technical Debt (and how TDD helps) http://blog.crisp.se/2013/10/11/henrikkniberg/good-and-bad-technical-debt
  6. 6. Dette technique - 101 Dino Esposito – Andrea Saltarello Microsoft .NET: Architecting Applications for the Enterprise
  7. 7. 2001 - jobWings.com
  8. 8. 2002 - latoiledesrecruteurs.com
  9. 9. 2002 - publipac.ca
  10. 10. 2003 - beljob.ca
  11. 11. 2003 - beljob.ca
  12. 12. 2008 - ratemyemployer.ca
  13. 13. 2010 - aerojobs.ca
  14. 14. 2016 – jobs.ca
  15. 15. 2016 – jobs.ca
  16. 16. Evaluation Dette - Infrastructure Serveur virtuel Serveur physique OS Usage TASK ESX1 WINDOWS 2003 Traitements de nuit - Alertes Emploi - Facturation KERIO ESX1 LINUX Serveur SMTP WEB1 ESX1 WINDOWS 2003 Sites NET2 WEB2 ESX2 WINDOWS 2008 Sites et apps NET4 SQL ESX3 WINDOWS 2008 Serveur SQL
  17. 17. Evaluation Dette – Inventaire Sites Nom de domaine Technologie www.latoiledesrecruteurs.com www.jobwings.com www.compta.ca www.salesrep.ca www.itjobs.ca www.detail.ca www.techjobs.ca www.adminjobs.ca www.centredappels.ca www.pmjobs.ca www.bajobs.ca www.pharmajob.ca www.emploisante.ca www.aerojobs.ca www.legaljobs.ca www.paralegaljobs.ca .NET4/C# - KENTICO 6
  18. 18. Evaluation Dette - Inventaire Sites Nom de domaine Technologie www.demission.ca www.cv.ca .NET4/C# - KENTICO 5.5 www.RateMyEmployer.ca .NET4/C# - KENTICO 6 www.temps-partiel.ca .NET2/VB www.beljob.ca .NET2/VB www.publipac.ca .NET2/VB Application Crawler .NET3.5/C#
  19. 19. Evaluation Dette - Bases de données Nom Nombre de tables Taille - MB AdminTools 14 190 Click4Trees 6 20 jobWings 179 44 991 kentico 224 156 kentico5_aero 286 19 286 kentico6_rme 296 3 188 RateMyEmployer 25 175 TinyUrl 1 68 Taille totale = 68 GB
  20. 20. Premières Actions - Infrastructure Serveur virtuel Serveur physique OS Usage WEB2 ESX2 WINDOWS 2008 Sites NET2 + NET4 JOBGROUND3 ESX2 WINDOWS 2008 Serveur SQL Crawler SQL ESX3 WINDOWS 2008 Serveur SQL Traitements de nuit - Alertes Emploi - Facturation JOBGROUND1 ESX3 WINDOWS 2008 Sites Developpement Serveur VEEAM – Backup VM Serveur RECOVERY
  21. 21. Premières Actions - Outil Monitoring
  22. 22. Premières Actions - Sites • Mise du code source dans TFS 2010 • Configuration de sites de développement • Ajout de numéros de version – Version x.y • Ajout de notes de changement – README.TXT • Tracking des bugs dans Excel puis GitHub
  23. 23. Premières Actions – Bases de données • Lister les tables et leurs tailles associées • Supprimer ou archiver d’anciennes données • Répertorier les Jobs SQL Server actifs • Mise en place d’un projet Visual Studio Base de données pour documenter la base JobWings
  24. 24. Premières Actions - Cartographie
  25. 25. Premières Actions - Cartographie
  26. 26. Support Dette – Projet JobBoard2
  27. 27. Support Dette – Projet JobBoard2
  28. 28. Support Dette – Projet Jobs.ca • Technologie: SQL Server FullText • Mise en place d'un catalogue Full-Text avec offres/catégories/employeurs par site • Problématique: mise à jour du catalogue en fonction des entrées/sorties des offres • Solution: Log des changements par trigger sur la table Indexation
  29. 29. Solde Dette – Nouvelle plateforme Architecture Microservices Technologies Open Source: Linux – PHP – WordPress Services Cloud: Scrapy Cloud, Amazon Cloud Search, ... API XML de Transition
  30. 30. Conclusion – Mesures prévention Evaluer le niveau de Dette Technique Fixer un seuil limite à ne pas dépasser Encourager la programmation défensive Planifier des phases de cleanup Opter pour des architectures orientées services

×