Posts Tagged ‘Jenkins’

Méthodes & Qualité

Il existe des processus à mettre en place pour améliorer la rentabilité des équipes de développement et la qualité logicielle. Des méthodes de modélisation, d’architecture ou de gestion de projet doivent être mises en place pour les améliorer. Voici une présentation de celles que j’ai utilisées et mises en place dans ma carrière professionnelle.

Systèmes d’Information

Logo ITILv3J’ai été amené à concevoir et exploiter des systèmes d’information dans des domaines fonctionnels complexes. Voici les qualités que je recherche à mettre en œuvre dans les systèmes que je conçois :

  • Haute disponibilité
  • Evolutivité
  • Performance
  • Normalisations de sécurité
  • Facilité de maintenance (documentation et gestion des évolutions)
  • Cycle de vie des données

Pour représenter les concepts métier et bâtir les fondations d’un système, j’utilise les Méthodes UML et Merise. Je peux ainsi communiquer sur des supports compréhensibles du plus grand nombre et faire évoluer mes idées.

Les concepts et le vocabulaire que j’emploie s’appuie sur le référentiel ITILv3 pour lequel j’ai suivi une formation qui a abouti sur une certification.

Outils de développement

J’ai l’habitude de mettre en place plusieurs outils pour aider l’équipe projet à travailler dans de bonnes conditions:

  • Gestion du code source: CVS, Subversion, Git
  • Gestion des anomalies: JIRA, Trac, Redmine, BugZilla
  • Analyse de code: Sonar
  • Gestion des dépendances: Artifactory, Nexus

Ce sont des outils vitaux pour gérer les projets et les maîtriser.

Industrialisation

Pour améliorer la précision et la qualité des livraisons, il est indispensable de mettre en place des processus de construction et de déploiement en production:

  • Automatisation de la construction: Maven, Ant
  • Intégration continue: Continuum, Hudson, Jenkins
  • Gestion des livraisons
  • Gestion de projet: Méthodes Agiles, cycle en V

Ce n’est pas la seule façon de gérer ces aspects, mais c’est ceux sur lesquels j’ai bâti mon expérience.

Qualité logicielle

Pour suivre la qualité d’un projet tout au long de sa vie, je pense qu’il est nécessaire d’appliquer avec rigueur des campagnes de tests pour chaque livraison. Voici les différents tests que j’ai pu mettre en place :

  • Tests unitaires automatisés
  • Spécification des recettes fonctionnelles
  • Tests de charge et non régression: Tests automatisables avec JMeter ou programmes sur-mesure

Open Source

L’utilisation et la collaboration à des projets Open Source me permettent de concevoir des produits qui exploitent ou se basent des technologies tierces.
Les technologies évoluent seules ou par le biais de contributions orientée par les équipes de développements.

Voici les projets qui me tiennent à cœur et que j’ai pu utiliser ou étendre par le développement de plugins:

Technologies serveur

 

  • Linux: Installation, maintenance et utilisation sur des serveurs en production.
  • Apache Web Server: Configuration, sécurité, Reverse proxy, gestion de modules
  • Apache Tomcat: Installation et configuration
  • Jetty: Intégration au processus de construction pour les tests unitaires
  • JBoss AS: Intallation et configuration
  • JOnAS: Configuration
  • PHP: Développement et configuration

Outils de développement

 

  • Maven: Mise en place sur de nombreux projets et développement de plugins
  • Ant: Scripts de construction
  • Make: Définition de scripts de construction de projets C
  • Eclipse: Développement de plugin lié à Maven
  • Netbeans

 

Gestion de source

 

  • Git
  • Subversion: Intégration de règles de commit

Business Intelligence

 

  • Talend: Construction de composants métier et design de jobs
  • Kettle: Construction de composants métier et design de jobs
  • JasperReports : Développement avencé de rapports, rapports dynamiques
 

Gestion de la qualité

 

  • JMeter: Tests de charge, tests de non-régression et développement de composants
  • Hudson / Jenkins: Spécification de processus d’intégration continue et développement d’un plugin pour JMeter
  • Sonar: Intégration à Maven et Hudson, Configuration des règles de qualité
  • Redmine: Intégration avec subversion, Maven et Jenkins