|
|
De manière schématique, on trouve deux catégories de produits concurrents au Cockpit :
-
des outils techniques réservés aux développeurs. Certains de ces outils sont parfois gratuits, mais leur
coût de mise en place ne doit pas être négligé : appropriation de l'outil, sélection et paramétrage des
règles, paramétrage pour le projet, formation des développeurs, ... Nos retours d'expérience montrent qu'en
plus du coût caché, il est difficile de mettre en place un processus pragmatique qui soit réellement suivi
par les développeurs.
-
des solutions commerciales avec une couverture fonctionnelle plus large et qui s'adressent aux manageurs
comme
au développeurs. Deux écueils récurrents apparaissent pour ce type de solutions : leur coût, qui les réserve
aux projets les plus conséquents, et leur complexité. Cette complexité se traduit à l'installation,
effectuée chez le client généralement à l'aide d'un consultant, à la configuration et à l'utilisation.
Le Cockpit a été conçu dès le départ avec des objectifs qui le rendent unique :
- il propose une démarche pragmatique : plutôt que de noyer les acteurs
du projet sous des flots
de chiffres et de leur imposer des règles de qualité théoriques et parfois sur-dimensionnées par rapport à
leurs besoins, les exigences techniques sont définies de telle sorte qu'elles puissent être réellement suivies ;
- il s'adresse autant aux manageurs qu'aux
développeurs. Les manageurs trouveront des tableaux de bord
leur donnant une vision synthétique et les développeurs pourront accèder aux détails des violations,
jusqu'aux lignes de code concernées
- il ne nécessite aucune installation chez le client et n'impose aucune contrainte d'intégration gràce à son
modèle SaaS
(Sofware as a Service). L'initialisation de la première analyse prend moins de 2 heures, les suivantes
pourront être automatisées.
- le Cockpit est proposé selon un mode d'abonnement
mensuel
avec des prix hyper-compétitifs. Aucun coût caché d'installation voire de résiliation, le client peut
arrêter ou suspendre son abonnement à tout moment.
Le Cockpit supporte actuellement les deux technologies de développement modernes les plus courantes, dans leurs
différentes versions :
D'autres langages seront supportés par la suite, mais notre expertise sur ces 2 technologies
majeures garantit à nos clients des règles pertinentes.
Nous analysons le code source ainsi que le
code compilé.
Le code source est utile pour des règles qui doivent être appliquées avant les éventuelles
optimisations du compilateur. Il est également utilisé pour vous aider à localiser les alertes au
sein
de votre code
Certaines règles se basent plutôt sur le code compilé parce qu'elles introspectent l'état du programme lors
de son exécution. Nous analysons donc le code compilé en plus du code source.
Enfin, nous nous basons aussi sur les bibliothèques tierces utilisées par le programme afin d'être
plus précis pour des règles nécessitant des informations complémentaires, par exemple liées à l'héritage
ou aux arbres d'appels entre les différentes classes.
En partenariat avec le laboratoire
LIESP
de l'INSA de Lyon ainsi que du centre de recherche
CETIC, nous avons réalisé
une sélection des règles qui nous paraissent les plus pertinentes parmi les centaines de mesures que
nous recueillons
On trouve notamment les catégories suivantes :
- des mauvaises pratiques : écritures de code qui entraînent des
bugs,
qui ne sont pas conformes aux standards, qui nuisent à la maintenabilité, ...
- des métriques : mesures quantititatives telles que des nombres
d'instructions, la complexité
cyclomatique, des mesures de couplage/dépendances,
des taux de commentaires, ...
- des duplications : copiers/collers au sein du code, strictement
identiques ou avec des variantes mineures
Le Cockpit propose également des règles constituées à partir d'autres règles unitaires, pour
croiser
les résultats et proposer ainsi des mesures plus fines et consolidées.
Le travail de mise au point des règles a nécessité des investissements en terme de recherche,
d'implémentation, de paramétrage et de tests. Plusieurs facteurs ont guidé ce travail :
-
nous avons bénéficié de l'apport théorique et de recherche du laboratoire
LIESP
de l'INSA de Lyon ainsi que du centre de recherche
CETIC
-
nous nous sommes appuyés sur des standards prévalant pour les différentes technologies (tels que
MSDN pour C#/.Net).
-
nous avons retenu des bonnes pratiques émises par des experts des communautés techologiques
-
enfin, nous avons sollicité nos propres expériences de développement effectuées dans de très nombreux
projets et continuons à alimenter le référentiel de règles avec notre expertise. Nous sommes aussi les
premiers utilisateurs du Cockpit :-)
Suivant l'importance du projet, la complexité du paramétrage et la charge liées aux autres analyses
en cours, la durée de traitement d'une analyse se chiffre en dizaines de minutes voire en quelques
heures.
Nous nous engageons dans tous les cas à fournir les résultats sous
24 heures, même si ces résultats sont généralement accessibles bien
avant.
Un premier niveau de paramétrage est déjà effectué par Kalistick à l'initialisation du projet. Le
responsable du projet remplit en effet un questionnaire utilisé pour cibler son profil qualité. Les
règles de détection sont alors automatiquement sélectionnées et paramétrées suivant les résultat de
ce
questionnaire.
Par la suite, le responsable du projet peut affiner ce paramétrage à tout moment directement sur le
Cockpit, à l'aide d'une IHM simple. Il peut par exemple désactiver des règles
qu'il ne juge pas importun de corriger. Ces désactivations peuvent porter sur tout le code du projet, ou sur
certaines parties seulement, par exemple sur du code généré.
Le pilotage de la qualité du code devrait toujours être initié dès les premiers développements. Plus
il
est intégré tard dans le projet, plus les actions correctives sont complexes à mener :
- les violations sont généralement nombreuses, il est difficile de tout corriger et la
progression semble lente pour les développeurs et les manageurs ;
- les corrections sont souvent risquées en terme de régression : il est délicat de modifier le
code
d'une application qui fonctionne sans maîtriser toutes les répercussions possibles. La charge de
test
devient très lourde.
Cependant, le Cockpit propose une fonctionnalité novatrice pour faciliter la mise en oeuvre
progressive d'une démarche qualité : le mode RAZ (remise à zéro).
Le principe consiste à "oublier" les violations existantes et ne vérifier que les nouvelles
violations. Les risques de régression sont évités et la qualité des nouveaux développements reste
garantie.
Le paramétrage du mode RAZ est géré par le client directement dans l'IHM du Cockpit, à partir des
résultats d'analyse de son existant. Au fur et à mesure des évolutions de son projet, le client
pourra modifier son paramétrage de désactivation pour s'efforcer de corriger peu à peu le code
existant par lots successifs.
Nous avons choisi de n'imposer aucune installation chez le client. De ce fait, les analyses sont
intégralement traitées sur nos serveurs à partir du code source du projet, qui est donc stocké sur nos
serveurs sécurisés.
La sécurité maximale des sources de nos clients constitue l'une de nos préoccupations majeures. Plusieurs
mécanismes de sécurité ont été mis en place pour répondre à cette problématique, certains sont cités sur la
page Sécurité.
De manière générale, on retiendra que les sources sont toujours stockés de manière cryptée sur nos
serveurs sécurisés à partir d'un mécanisme de sécurité basée sur une paire certificat/clé privée. De plus,
le client peut décider à tout moment (et même automatiquement) de supprimer ses
sources sur nos serveurs.
Le Cockpit dispose d'une gestion d'accès évoluée. Les utilisateurs sont évidemment restreints à leur(s)
projet(s), mais au sein d'un projet, chaque utilisateur dispose de droits qui lui sont propres. Il faut
par exemple disposer de droits spécifiques pour lancer une nouvelle analyse, paramétrer des masques pour
désactiver des règles, lancer la suppression des sources sur le serveur, ...
Nous conseillons donc à nos clients d'utiliser un compte d'accès indépendant pour chaque utilisateur afin
de mieux sécuriser les actions effectuées.
Les analyses proposées par le Cockpit sont encore mieux valorisées quand elles sont intégrées au processus
d' intégration continue
du client car elles fournissent des indicateurs qui permettent de juger de la qualité du livrable.
Le Cockpit a été conçu pour s'intégrer le plus facilement possible dans les solutions d'intégration
continue. Cette intégration est réalisable au travers de plugins proposés pour les serveurs les plus
courants : Visual Studio
Team System,
CruiseControl,
Hudson, ...)
De plus, des extensions à des outils de construction du type
MsBuild,
Ant
ou Maven, sont également disponibles.
Le Cockpit fournit des flux RSS/Atom qui peuvent être intégrés dans un portail interne ou public
(iGoogle,
Netvibes, ...) ou n'importe quel aggrégateur RSS
(dont la plupart des navigateurs web actuels).
Chaque utilisateur peut s'abonner à des flux pour récupérer une sélection d'indicateurs ou un suivi des
analyses
Le Cockpit a été conçu pour accepter de nouvelles règles très facilement. Ces règles sont définies
dans un format qui nous est propre mais notre architecture accepte également des règles d'outils tiers tels
que Gendarme,
FindBugs,
PMD...
De plus, nous pouvons également proposer d'intégrer des règles spécifiques à votre projet dans le cadre
d'une prestation complémentaire.
Kalistick est une jeune entreprise mais avec un potentiel déjà reconnu et qui offre déjà des garanties.
Kalistick a été primée par deux fois au
concours national
d'aide à la création d'entreprises de technologies innovantes du ministère de la recherche, avec à la clé des
aides financières conséquentes qui ont renforcé son développement à venir. Elle a également
été labellisée Jeune Entreprise Innovante
(JEI).
Kalistick a bénéficié du soutien de Créalys,
d'OSEO et de
Novacité.
De plus Kalistick est membre du
Réseau Entreprendre et a été retenu par
Microsoft dans le cadre de son programme
IDEES.
Enfin, parmi nos clients qui ont choisi de nous faire confiance se trouvent des grands comptes tels que la
Société Générale, la SNCF, Schneider Electric ou Bayer Crop Science
Notre objectif principal est de concentrer nos efforts autour du Cockpit pour enrichir constamment ses
fonctionnalités et le référentiel de règles. A ce jour, nous n'avons pas vocation de développer une activité
de services type SSII en marge de cet objectif.
Cependant, l'accompagnement de nos clients dans la compréhension des résultats d'analyse et dans la conception
d'un plan d'amélioration est pour nous une priorité. Nos experts peuvent ainsi vous conseiller et assister
vos équipes de développement.
|
|
|
|
|
|
|
|
|
|