Analyse, conception et implantation d`un logiciel de

Transcription

Analyse, conception et implantation d`un logiciel de
Analyse, conception et implantation d’un
logiciel de CRM pour la société AdaCore
Audran Le Baron
Tuteur scientifique : Laurent Pautet
Directeur de stage : Franco Gasperoni
15 février 2004
Table des matières
Table des matières
1 Présentation d’AdaCore et du projet de CRM
3
1.1
AdaCore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
L’Offre commerciale d’AdaCore . . . . . . . . . . . . . . . . .
4
1.3
Le Projet de CRM . . . . . . . . . . . . . . . . . . . . . . . .
5
2 Analyse du projet de CRM
6
2.1
Les Techniques de modélisation . . . . . . . . . . . . . . . . .
6
2.2
Le Travail d’enquête . . . . . . . . . . . . . . . . . . . . . . .
7
2.3
Intérêts de la modélisation . . . . . . . . . . . . . . . . . . . .
7
2.4
Résultats de la modélisation . . . . . . . . . . . . . . . . . . .
8
3 Design : construction d’une maquette
9
3.1
L’Interface utilisateur . . . . . . . . . . . . . . . . . . . . . . .
9
3.2
Le Choix d’une interface Web . . . . . . . . . . . . . . . . . .
9
3.3
Réalisation d’une maquette . . . . . . . . . . . . . . . . . . . 10
3.4
Conception du schéma de la base de données . . . . . . . . . . 10
4 Implantation
11
4.1
Base de données PostgreSQL . . . . . . . . . . . . . . . . . . . 11
4.2
L’Utilisation de la technologie AWS . . . . . . . . . . . . . . . 11
5 Passation du projet
12
A Sales Workflow Diagrams
14
B ER Diagram
26
2
1 Présentation d’AdaCore et du projet de CRM
Le présent rapport fait état des travaux menés durant mon stage — du
15 juillet 2003 au 30 janvier 2004 — dans la société ACT Europe. L’objet de
mon stage était l’analyse, la conception et l’implantation d’un outil interne
de gestion des clients pour les sociétés ACT Europe (Paris) et Ada Core
Technologies (New-York).
Ce projet, mené depuis ses débuts et jusqu’à son implantation, a été
l’occasion de mettre notamment en pratique les enseignements de la brique
BDL (Bases de Développement Logiciel) dans un environnement réel. La
réalisation du projet en Ada m’a permis par ailleurs de consolider et d’approfondir les bases de ce langage acquises à l’ENST dans le cadre de la brique
SIP (Système, Interface, Programmation).
Après une courte présentation de l’entreprise, nous reprendrons chacune
des grandes étapes constitutives du projet que j’ai été amené à réaliser.
1
Présentation d’AdaCore et du projet de
CRM
1.1
AdaCore
Le nom AdaCore désigne deux sociétés (( jumelles )) : l’une basée aux
États-Unis à New-York (Ada Core Technologies, Inc.) et l’autre située en
France à Paris (ACT Europe).
Les offres de ces deux sociétés sont strictement identiques : leur produitphare est GNAT Pro, un environnement de développement Ada1 sous licence
GPL2 , qu’elles vendent dans le cadre de contrats de souscriptions à un service
de support.
Les deux sociétés développent ensemble les mêmes produits et se répartissent les clients de manière géographique : le continent américain, l’Australie
et le Japon sont parmi les régions réservées à la société de New-York tandis
que l’Europe et l’Asie (excepté le Japon) constituent le territoire de la société
1
Langage de programmation spécialiement conçu pour le développement de logiciels à
longue durée de vie, aisément maintenables et hautement fiables.
2
General Public License : Licence de logiciel libre, détails disponibles à l’adresse : http:
//www.gnu.org/copyleft/gpl.html.
3
1 Présentation d’AdaCore et du projet de CRM
parisienne.
Dans la suite de ce rapport, le terme AdaCore fera donc référence indifféremment à la fois à ACT Europe et à Ada Core Technologies.
1.2
L’Offre commerciale d’AdaCore
Tous les produits développés par AdaCore sont open source, sous licence
GPL ou approchant (certains composants sont notamment sous GMGPL3 ou
LGPL4 ). Parmi ces produits se trouve le produit-phare, qui a donné naissance
à la société : le compilateur GNAT, issu d’un projet universitaire à NYU et
basé sur GCC 5 .
GNAT se situe au centre de l’offre commerciale d’AdaCore. Un grand
nombre d’outils gravitent autour : parmi eux, l’IDE6 GPS 7 et le debugger
graphique GVD 8 , les librairies GNAT, etc. Tous ces composants sont disponibles en accès libre et public9 . Cette version libre est largement utilisée dans
les universités ainsi que par les particuliers.
Une version payante, GNAT Pro, est proposée aux professionnels. Le
produit GNAT Pro est vendu avec une souscription d’un an ou plus au service de support d’AdaCore. Ce service prévoit notamment la réponse aux
questions des équipes de développement dans des temps très courts (souvent
inférieurs à 15 minutes pour les requêtes simples) et directement par des professionnels spécialistes du langage Ada, ou encore la mise à disposition de
wavefronts 10 en cas de bug, etc. De plus, et contrairement à la version libre,
le client est garanti d’avoir de nouvelles versions — qualifiées qui plus est —
de la gamme de produit tous les six mois (chaque version corrigeant tous les
bugs ayant été soumis par les différents clients depuis la version précédente).
Ce business model a déjà fait ses preuves. L’une des grandes raisons de
ce succès est la qualité du service rendu aux clients, qui fait notamment que
plus de 80 % des contrats sont renouvelés d’une année sur l’autre. Une autre
3
GMGPL : GNAT Modified GPL.
LGPL : Lesser -GPL.
5
GNU Compiler Collection (http://gcc.gnu.org/).
6
IDE : Integrated Development Environment.
7
GPS : GNAT Programming System.
8
GVD : GNU Visual Debugger.
9
Voir le site libre d’AdaCore : http://libre.act-europe.fr/.
10
Versions intermédiaires de la chaı̂ne d’outil GNAT avant une prochaine release.
4
4
1 Présentation d’AdaCore et du projet de CRM
est également la présence dans la clientèle de grands groupes pérennes tels
que BNP Paribas, Boeing, Canal Plus, Dassault, EADS, EdF, Eurocontrol
ou Thales. Cette position confortable n’empêche pas pour autant les dirigeants d’AdaCore de sans cesse remettre en cause leur offre, leur système de
tarification, leur image, afin de suivre au plus près l’évolution de leur marché
et les besoins de leurs clients.
1.3
Le Projet de CRM
AdaCore est une entreprise récente (fondée en 1994). Elle est en croissance permanente, tant du point de vue du nombre de ces employés (une
quarantaine environ, dont une quinzaine à Paris) que du point de vue du
nombre de ses clients (quelques centaines à ce jour). La société a ainsi atteint
une taille critique au-delà de laquelle il serait difficile de gérer l’ensemble des
clients sans l’aide d’un logiciel de gestion de clients. Jusqu’à ce jour, la gestion
administrative des clients (envois de devis, de factures, ouverture et fermeture de comptes, gestion des contacts, envois des produits, etc.) était une
gestion purement manuelle, sous la responsabilité de Zépur Blot en Europe
et de Karen Mason aux États-Unis.
Le besoin d’un outil informatique d’aide à la gestion des clients s’est
fait sentir dès l’été 2001. Ce type d’outil est connu sous l’acronyme CRM
(Customer Relationship Management). Il existe déjà sur le marché plusieurs
solutions de CRM. Elles se présentent généralement sous la forme d’un grand
nombre de composants logiciels nécessitant une longue période de configuration, d’intégration et de mise en place par des professionnels. Ces solutions
sont de plus adaptées à des grandes entreprises dont l’échelle a peu de rapport
avec l’échelle d’AdaCore. Une autre raison pour ne pas avoir choisi de solution commerciale existante est qu’aucune ne prévoyait une intégration réelle
et complète de la communication électronique par email. De plus, le parc
informatique d’AdaCore étant relativement hétérogène (majoritairement des
PC sous GNU/Linux, certains sous Windows ainsi que quelques PowerPC
sous Mac OS X), la condition de compatibilité avec l’ensemble de ces systèmes était primordiale et suffisait à éliminer la grande majorité des solutions, dont les clients ne fonctionnaient que sous Windows. Enfin, le système
de fonctionnement d’AdaCore est spécifique en de nombreux points et n’aurait vraisemblablement pas permis l’intégration parfaite et sans compromis
d’un outil de CRM existant.
C’est dans cette situation que je suis arrivé en juillet 2003 dans les
5
2 Analyse du projet de CRM
bureaux d’AdaCore à Paris : la décision avait été prise de développer en
interne un logiciel de CRM. Franco Gasperoni est la personne à l’origine de
ce projet. Une étude de l’offre existante — brièvement évoquée plus haut —
avait déjà été menée et un premier cahier des charges rédigé. Mon but était
donc de réaliser, en collaboration étroite avec Franco, l’analyse poussée du
projet et la conception d’un logiciel de CRM adapté à AdaCore, puis d’en
réaliser une maquette et enfin d’en commencer l’implantation.
2
Analyse du projet de CRM
Pour bien comprendre les objectifs du projet et les besoins auxquels
devra répondre l’outil de CRM, il est indispensable de comprendre dans les
détails ce en quoi consiste le travail du personnel lié à la vente, à savoir
principalement Zépur Blot et Franco Gasperoni en Europe d’une part, Karen
Mason et Bernard Banner aux États-Unis d’autre part.
L’idée est donc d’avoir une vue à la fois globale et détaillée de l’activité liée à la vente chez AdaCore. Il s’agit ensuite de mettre en lumière
l’ensemble des tâches à caractère administratif (par opposition aux activités
créatives) liées à la vente. C’est en effet sur cet aspect administratif du travail de la relation client qu’un outil informatique peut apporter une réponse
convaincante.
2.1
Les Techniques de modélisation
Il existe des principes de modélisation des processus, notamment en
UML11 , qui peuvent aider à obtenir cette vue globale et détaillée de certaines
activités. Un travail préalable à mon stage a donc été, sous les conseils de
Franco, d’approfondir mes connaissances sur ce sujet. Deux livres ont été
particulièrement utiles :
– UML Distilled : A Brief Guide to the Standard Object Modeling Language 12 est une très bonne introduction à l’UML. Les auteurs insistent sur les apports de la modélisation dans les projets de développement logiciel, mais également mettent en garde le lecteur sur les
11
12
UML : Unified Modeling Language.
Martin Fowler et Kendall Scott, 2nd edition, Octobre 1999, ISBN 0-201-65783-X.
6
2 Analyse du projet de CRM
excès de modélisation ou de conformation à un modèle (en l’occurrence, le langage UML), qui peuvent à leur tour devenir un frein au
développement d’un projet. Plus qu’une simple introduction à l’UML,
ce livre est aussi une introduction à la gestion de projet logiciel.
– Workflow Modeling : Tools for Process Improvement and Application Development 13 . Certains chapitres traitent exclusivement de la
modélisation d’un processus de travail et ont été utiles pour la modélisation des activités de vente chez AdaCore.
2.2
Le Travail d’enquête
Les premières semaines du stage ont donc été consacrées à la découverte des métiers de vente chez AdaCore et à leur décortication. J’ai pour
cela réalisé de multiples entrevues avec les principales personnes concernées,
en particulier Zépur Blot et Karen Mason (par téléphone pour cette dernière,
travaillant dans les bureaux de New-York) — que je tiens à remercier pour
leur coopération et la bonne humeur avec laquelle elles ont accepté de répondre à mes (très) nombreuses questions. Ce travail, nécessaire à la suite
du projet, a également été pour moi l’occasion de m’introduire auprès des
employés d’AdaCore et de me familiariser avec ce nouvel entourage.
À ces entrevues, s’ajoute la consultation d’un échantillon de dossiers
client : Zépur tient à jour un dossier pour chaque client dans lequel sont
conservés au format papier tous les échanges avec un client (emails, lettres,
fax, comptes-rendus de communications téléphoniques, devis, ordres d’achat,
factures, etc.). Ces documents, ainsi que mon abonnement aux mailing-lists
(( sales )), ont été précieux pour avoir une idée encore plus concrète de la
relation avec le client.
2.3
Intérêts de la modélisation
Au fur et à mesure de la découverte des processus de vente, la modélisation de ceux-ci s’étoffe et se complète de plus en plus. Outre le fait de
permettre d’avoir une idée visuelle des processus, la modélisation a ici deux
intérêts annexes, loin d’être négligeables :
– La communication : ces schémas sont en effet un outil de communication avec les autres employés. Il a rendu en effet très facile, deux
13
Alec Sharp et Patrick McDermott, 1st edition, Février 2001, ISBN 1580530214.
7
2 Analyse du projet de CRM
semaines après mon arrivée, la présentation au personnel européen
d’AdaCore des processus de vente. Ce support visuel leur a permis
de me formuler aisément leurs commentaires, de mettre le doigt sur
les inexactitudes ou les oublis.
– La motivation : cette modélisation permet de voir avancer son propre
travail de manière concrète, tangible. Cela constitue — en cela-même
— un encouragement, une motivation à continuer le travail en cours.
En dehors de ces avantages annexes, le fait de travailler sur cette modélisation oblige à s’imprégner totalement de la chaı̂ne de processus en jeu
dans les activités de vente. Encore une fois, il est primordial de comprendre
parfaitement cet enchaı̂nement avant de pouvoir prétendre apporter une solution au problème posé. L’étape de modélisation est en cela très fructueuse.
Elle permettra de garder en tête, tout le long de la phase de design du logiciel, les différentes phases qui constituent la prise en main d’un prospect,
la négociation d’un contrat, le suivi d’un client, etc., afin que tous les cas
d’utilisation (use cases) du futur outil soient bien prévus dans la maquette.
En cela, cette modélisation constitue d’une certaine manière un cahier des
charges du logiciel de CRM.
2.4
Résultats de la modélisation
Le résultat du travail de modélisation — présenté en annexe A — permet de faire ressortir les différents outils existants (par exemple, pour la
rédaction de devis, la génération de factures, la création d’un compte client,
etc.) qu’il sera important de prendre en compte lors de la future phase de
transition et d’intégration de l’outil de CRM. Il permet également de mettre
en lumière l’absence d’outils dans certains domaines (par exemple pour la
gestion des factures) : c’est dans de tels cas qu’un outil informatique de traitement de l’information peut s’avérer très pertinent.
Enfin, il est possible de faire ressortir du schéma l’ensemble des documents (lettres, fax, emails, contrats, factures, etc.) qui interviennent dans
les processus de vente. Comme écrit précédemment, tous ces documents sont
à ce jour stockés sous format papier et classés dans des dossiers par client.
Cette solution passerait manifestement difficilement à l’échelle et n’est donc
pas satisfaisante à long terme. Ce sera donc l’un des rôles les plus importants
de l’outil de CRM que de permettre l’archivage de tous ces documents sous
forme numérique et de les classer selon le client ou prospect concerné.
8
3 Design : construction d’une maquette
3
3.1
Design : construction d’une maquette
L’Interface utilisateur
L’outil de CRM est destiné à devenir l’outil de travail quotidien des personnes touchant aux activités de vente de l’entreprise et un outil occasionnel
du personnel technique souhaitant obtenir des informations de manière ponctuelle sur un client.
Par conséquent, l’interface utilisateur du logiciel sera l’une des clés de
la réussite du projet : une mauvaise interface condamnera d’emblée l’outil
à un avenir incertain, tandis qu’une interface bien pensée sera un atout essentiel pour l’adoption de l’outil par les employés. Il est des projets dont la
difficulté réside dans des aspects techniques, algorithmiques ou autres : la
phase de conception se concentrera alors sur le recherche de solutions techniques, la mise au point d’algorithmes, ou autres. Ici, le point délicat est
l’interface utilisateur : où faire apparaı̂tre l’information ? Sous quelle forme ?
Comment en permettre l’édition ? Comment établir des passerelles entre différents types d’information ? Autant de questions qui sont incontournables
lors de la conception du logiciel.
3.2
Le Choix d’une interface Web
La technologie à utiliser pour l’interface utilisateur des clients était
fixée depuis longtemps : ce serait une interface Web. Les raisons à cela sont
multiples, la plus importante est la contrainte de compatibilité : les clients
doivent pouvoir fonctionner indifféremment sous Linux, Mac ou Windows
pour ne citer qu’eux. Avec une interface Web, le client est un navigateur :
même si le respect des standards (HTML, CSS, DOM, etc.) varie d’un navigateur à un autre, la contrainte de compatibilité est quasiment acquise d’office
avec ce choix d’interface. Un autre intérêt est justement le fait qu’aucune
installation d’un logiciel client n’est nécessaire pour accéder aux données du
CRM : n’importe quel ordinateur équipé d’une connexion Internet et d’un
navigateur peut faire l’affaire.
Pendant cette longue phase de design (3 mois entiers, de septembre à
novembre), il est important de ne pas trop s’isoler et ainsi perdre de vue les
utilisateurs finaux : régulièrement, des réunions de mi-parcours doivent être
organisées, afin de s’assurer que les attentes de chacun sont bien respectées
9
3 Design : construction d’une maquette
et que le produit final ne diverge pas du produit demandé. Un passage par
les bureaux de New-York a même permis une présentation (( en direct )) de
la maquette en cours de finalisation.
3.3
Réalisation d’une maquette
Ce travail de design nécessite beaucoup d’imagination : il faut garder
son esprit ouvert à toute solution, toute idée nouvelle qui puisse contribuer
à une meilleure ergonomie de l’interface est bonne à considérer. Pour cela,
il faut non seulement être soi-même inventif, mais aussi et surtout, être à
l’écoute de toute suggestion venue d’une tierce personne : certaines idées,
même — surtout ? — évoquées au détour d’une conversation informelle,
peuvent receler la clé d’un problème d’interfaçage.
La grande difficulté dans la conception d’une telle interface est la prise
en compte de tous les cas particuliers qui peuvent survenir lors de négociations avec un client. Le point de départ pour la construction de la maquette
est le travail précédent de modélisation des processus de vente : chaque circuit
dans les diagrammes réalisés doit pouvoir être parcouru aisément et intuitivement à travers l’interface. Mais une fois tous ces circuits, ces use cases,
pris en compte, restent les nombreuses exceptions, cas particuliers, que le
logiciel doit être en mesure de supporter : l’outil de CRM, même dans ces
cas-là, ne doit pas être un obstacle, mais une aide. C’est la raison pour laquelle l’accent a été mis sur la modularité de l’outil, donc de l’interface qui
l’accompagne. En même temps que cette modularité, il est souhaitable de
pouvoir lier le maximum d’éléments entre eux (par exemple, être en mesure
de lier des factures à l’ordre d’achat correspondant et aux contrats qu’elles
concernent). Ces deux objectifs contradictoires — modularité/souplesse vs.
(( connectivité ))/rigidité — doivent se résoudre en un compromis adéquat,
qu’il n’est pas toujours évident de trouver.
3.4
Conception du schéma de la base de données
Une fois cette maquette (un site HTML entièrement statique) suffisamment complète, souple et validée par les plus intéressés, les structures des
données commencent déjà à apparaı̂tre d’elles-mêmes : la manière dont sont
structurées les pages et la manière dont les différents écrans sont liés entre
eux laissent en effet apparaı̂tre en filigrane ce que sera la base de données
10
4 Implantation
sous-jacente au logiciel.
Étant donnée la complexité et la quantité des données à stocker et à
structurer dans le cadre de l’outil de CRM, l’appui sur un système de gestion
de base de données était une décision prise depuis longtemps.
L’annexe B présente le schéma de base de données relationnelle tel qu’il
est à l’état actuel. Le long travail d’élaboration de l’interface web réalisé
au préalable a rendu la conception de ce schéma extrêmement rapide : la
structure des données découle littéralement du travail effectué auparavant.
4
Implantation
À ce stade, il s’agit de créer la base de données et de commencer l’implantation du serveur web de CRM.
4.1
Base de données PostgreSQL
Le choix de PostgreSQL14 comme SGBD15 était le résultat de deux
contraintes : celle d’avoir un véritable SGBD, respectant notamment les propriétés ACID (Atomicity, Consistency, Isolation, Durability) et celle d’utiliser, dans la mesure du possible, des logiciels open source.
Le travail de traduction du schéma de la base de données en instructions
de création SQL est un travail systématique qui s’est fait en parallèle avec la
construction du schéma entité-associations évoqué plus haut.
4.2
L’Utilisation de la technologie AWS
Pour la réalisation du serveur web, le choix s’est porté sur la technologie
Ada Web Server (AWS) développée par Pascal Obry et Dmitriy Anisimkov,
tous deux d’AdaCore. Cette librairie Ada a déjà été utilisée avec succès dans
le cadre de GNAT Tracker, site technique mis en place pour les clients d’AdaCore.
14
15
Voir http://www.postgresql.org/.
SGBD : Système de Gestion de Base de Données.
11
5 Passation du projet
L’architecture globale a été en partie inspirée de l’article de J.-P. Rosen :
Experiences in developing a typical web/database application 16 .
Pour la génération de pages HTML à partir de modèles, le package Ada
Templates_Parser a été utilisé. Un bon usage des modèles et du package Ada
associé permet de bien séparer l’affichage de la partie traitement des données,
tandis que l’utilisation de stylesheets CSS permet en outre de séparer la mise
en forme du contenu brut.
Une API relativement simple et générale a été mise en place pour le
remplissage des modèles HTML directement à partir des données de la base et
a permis de parvenir à couvrir très rapidement une grande partie de l’interface
utilisateur.
5
Passation du projet
Les dernières semaines de mon stage ont été essentiellement consacrées
à la passation du projet à d’autres développeurs. Un ingénieur de New-York,
Albert Lee, s’est vu confier la responsabilité du module de gestion et traitement des emails, tandis que Jérôme Roussel, élève en deuxième année de
l’ENST en stage chez AdaCore sous la direction d’Emmanuel Briot, se charge
de compléter entièrement l’interface web.
Cette phase a été riche en réunions et en travail d’équipe. Un accent a
également été mis sur la rédaction de toute la documentation nécessaire à la
reprise du projet par d’autres, même si l’essentiel de la documentation avait
été réalisée en parallèle du travail d’implantation.
La confrontation de mon travail à d’autres développeurs a été très enrichissante. Elle a fait naı̂tre des idées à la fois pour le logiciel de CRM en
cours de construction, mais aussi pour d’autres projets tels que la suite d’outils utilisée en interne par AdaCore pour gérer la partie technique. En effet,
l’utilisation faite des bases de données dans le CRM en a séduit certains,
qui pensent pouvoir avantageusement tirer parti de cette technologie dans
d’autres contextes.
La prochaine étape délicate du projet sera l’importation — depuis des
sources diverses — des données client existantes vers la base de données.
Puis, une période d’essai et de transition délicate à gérer sera certainement
16
Annual International Conference on Ada, 2003, ISBN 1-58113-476-2.
12
5 Passation du projet
décisive dans l’utilisation à terme de l’outil de CRM.
Conclusion
Contrairement à ce que la construction de ce rapport peut le laisser
entendre, le développement de ce projet n’est pas tout-à-fait linéaire : même
si les étapes semblent se succéder de manière linéaire, les retours à des étapes
antérieures sont fréquents et nécessaires à la suite du projet. Par exemple, le
travail sur le schéma de la base de données a pu faire apparaı̂tre des manques
dans l’interface prévue par la maquette. Ce phénomène, loin d’être inconnu,
a confirmé les enseignements que j’ai pu recevoir, notamment dans le cadre
de la brique BDL.
Si j’ai pu aboutir à ce résultat au bout des sept mois de stage, c’est avant
tout grâce à tous ceux qui croyaient en l’utilité de ce projet et qui m’ont aidé
à le porter jusqu’à ce stade. Cependant, ce projet ne sera véritablement mené
à bien que le jour où il sera devenu l’outil quotidien et apprécié des employés
d’AdaCore.
13
A Sales Workflow Diagrams
A
Sales Workflow Diagrams
Les pages suivantes représentent les diagrammes modélisant le processus de vente tel qu’il existait à mon arrivée chez AdaCore. Le premier schéma
représente une vue globale de l’activité de vente, tandis que les pages suivantes détaillent chacune des étapes introduites dans le premier schéma.
Ces schémas ont été réalisés sous Microsoft Office Visio 2003 Professionnel.
14
Sales opportunity
follow-up
or
Inactive contact
Offer evaluation
Obtain PO
& CPSA
Pack and ship
product
6 month later
Send invoice and
get paid
Follow-up
Renew
contract
Legend:
Documents involved are in red
Tools that are used are in blue
Notes:
- During all sub-processes, emails, phone call reports, fax and mail are archived in a per-customer paper file, hereafter called “customer file (paper)”
- In many of the above steps, a prospect can be moved to the “inactive” state (meaning, no current contract and no recent contact)
Global sales process
Sales personnel
- From sales trips/trade shows
- From outside sales reps
- From WindRiver
- From inactive contacts file
By phone or by email
EU
or
US
Send sales
message
Sales staff and/or Technical experts
http://…/offering.txt
Phone/email
Yes
or
Prepare eval
Prepare quote to
obtain PO &
CPSA
Some contact do not have
immediate needs, but just
want to evaluate the
technology for future projects
Re-contact a
couple of times,
then move to
“inactive” state
Not answered
All clear?
No
Supply information
to prospect
Insert contact in
ACT! database
Keep everyone aware of the prospect’s status by sending emails to the usleads mailing-list during the whole phase of negotiation
http://…/sales-msg.txt
Introduce ACT to
prospect
Indirect prospect
contact
Preferably by phone,
otherwise by email
Welcome prospect
Direct prospect
contact
Sales opportunity follow-up sub-process
Zepur/Karen
Anne
Ema
il
Send quote &
CPSA
Maybe
Re-contact a
couple of times,
then move to
“inactive” state
Not answered
within [variable]
Accepted?
No
o
Ph
Phone/email
Receive PO &
CPSA
Offer evaluation
Find out why and
negotiate
Paper (fax/mail)
Yes
- Cut & paste http://…/quote-msg.txt
- Attach http://…/cpsa.doc
- Consult http://…/list-price.html
Obtain PO & CPSA sub-process
Zepur/Karen
ai l
Em
Unsuccessful
negotiation
Sales staff
Not OK
Check PO vs.
quote
Move contact to
“inactive” state
OK
Note:
The account already exists if an
eval was previously offered
Solve PO problem
w/ customer
/
ne
l
ai
em
Update account
file
Open account
CVS commit
Yes
Existing
account?
No
Send:
- eval-CPSA
- Test plan
- quote (if applicable)
All docs in
paper
Analyze Test Plan
& eCPSA
Note:
The prospect might have
already been sent a quote
Yes
Validate?
- Attach http://…/cpsa.doc (converted to pdf)
- Attach http://…/test-plan.doc (converted to pdf)
- Attach (if applicable) http://…/quote-msg.txt
Offer evaluation sub-process
Zepur/Karen
Cyrille/Bernard
l
Em
ai
No
OK for regular
contract?
Explain why and
propose a regular
contract instead
Find out why and
move to “inactive”
state
No
Follow-up with
prospect
Open account
6 weeks later
Customer
ready to buy?
No
Yes
Find out why and:
- extend evaluation period
or
- move to “inactive” state
Yes
Obtain PO &
CPSA
Local Excel file
Command line from paris server:
cftp -n (+ passwd)
Returns userid & hash(passwd)
Assign new userid
Update ACTE-customers.xls
Chose login &
password
EU
Update customer database
Userid &
hashed passwd
Cust#
CVS
commit
Receive & send
confirmation
message
- Update NIS database
- Setup mailing-lists and groups
etc.
cftp -m
Generate
confirmation
message
cron task on Po
run every 30 min.
Update accounts
file
For evaluation, type is
marked “evaluation”
Information
contained in
CPSA
Send customer’s
password
separately
Note:
This process is being transformed and simplified: “Chose login”, “Assign userid”, “Update account file”, “Generate confirmation message” are to be regrouped into one step via the web
interface of GNAT Tracker.
and
or
US
MS Access
Open Customer Account sub-process
Zepur/Karen
ISO image
Burn CD
Pack & Ship sub-process
Sales Dpt
(Zepur/Anne/Karen)
Ship Dpt
(Zepur/Anne/Jennifer)
Print CD
Pack
[EU only]
Archive shipping docket in
customer file (paper)
Archive packing slip in
customer file (paper)
Collect relevant
docs
Ship
EU: Update ACT! Database
US: Update Excel file
Invoice
Create new
invoice with
QuickBooks
Local
Excel file
Update Invoice.xls
Invoice sub-process
Zepur
Karen
and
Archive in
customer file
(paper)
Update incomeus.xls file
Send to customer
(2 copies)
FileMaker Pro
Fill FileMaker
invoice template
and
Same as above
No
Invoice paid ?
Yes
Put in “waiting for
payment” box
Archive in financial
file (paper)
Send to
customer’s
accounts dpt
and
Mark invoice as
paid
Update incomeus.xls file
Update invoice
status in
QuickBooks
Send dunning
notice
No
Delinquent
level?
No
Invoice paid ?
[Franco] Update
income-eu.xls file
Yes
Yes
and
Update accounts file and mark
account as “closed” until
problem solved
Mark both invoice copies as paid
& move it to customer file (paper)
[Franco] Update
income-eu.xls file
and
Measure
customer’s
satisfaction
Check report
activity
Follow-up sub-process
Zepur/Karen
Phone customer
Get in touch with
customer if
necessary
- Web interface of Gnat Tracker
or
- creport command line
Send expiration
notice with CPSA
& renewal quote
Pester
customer
No response
OK for
renewal?
No
Yes
Simple notice showing that
the customer wishes to
renew
2-3 months (even
more during summer)
before expiration
http://…/renew-msg.txt
Renew sub-process
Zepur/Karen
Ema
il
Update accounts
file
Find out why and
negotiate
Unsuccessful
negotiation
Pester
customer
No
PO received
and conform to
quote?
Send “Thank you”
message
Yes
Soon the same message as
in “open account”
Update accounts
file
At expiration date
Send simple
confirmation
message
Update accounts
file (type=“closed”)
Zepur/Karen
- Tech. expert
- Sales dpt
Ph
one
/e m
ail
Send quote
(email)
A note indicates that
no travel
arrangements or dates
setup can be done
before the PO has
been received
Understand
customer’s needs
Customer requests training/consulting
Pester prospect
Not answered
within 15-30 days
Accept?
No
Yes
Setup dates
Unsuccessful
negotiation
- Tech. experts availability
- Customer schedule
Receive PO and
check it vs. quote
Find out why and
negotiate
/e m
ail
Pho
ne
Once
training/
consulting
done
Give up
Gather
travel
receipts
Invoice
Understand
exact needs
(mail +
phone)
Feasible?
Yes
Write and
send detailed
offer (with
delivery
steps)
Agreement?
No
Review offer
Customer requests special development/enhancement
Zepur
Franco/Bernard/Robert
Technical personnel
Yes
Sometimes, there is
no initial invoice
Receive PO
Invoice (if
applicable)
Archive email
Next step
finished?
Inform by email/phone
While other
steps remain
Invoice
B ER Diagram
B
ER Diagram
Le schéma de la page suivante est celui de la base de données relationnelle adoptée. Le schéma a été réalisé sous Microsoft Office Visio 2003
Professionnel. Afin d’éviter une trop forte surcharge du diagramme, toutes
les relations entre les tables ne sont pas indiquées explicitement par un lien.
Une légende explique brièvement les codes adoptés.
26
Comment
SE1_Type
SE1_Nb
SE2_Type
SE2_Nb
PK
PK
PK
Description
PN
Product
Rate
HTML_Symbol
Currency_Code
Currency
Price
PK
*
*
Name
Reseller_Id
Reseller
Message_Id
SE_Type
SE_Nb
Date_Received
From_Email
From_Full_Name
Subject
Content
Answered
Deleted
Email_Id
File_Name
Mime_Type
Description
Date_Inserted
File_BLOB
File_Id
File
FK1
FK1
PK
- Colors have no specific semantics in this diagram
- PK = Primary Key
- FK = Foreign Key
- The _Id suffix means the attribute is an internal identifier,
unknown to the user
- The _Nb suffix means the attribute is an identifier used by
the user to designate a specific instance
- Bold attributes are required
PK,FK1
PK,FK2
PK
PK
*
Legend:
File_Id
FK2
SE_SE
Email_Id
Ordinal
PK,FK1
PK
Attachment
SE_Type
SE_Nb
FK1
FK1
Email
Doc_File_Id
Document
PK,FK2
FK3
FK1
FK2
PK
Quote
*
*
*
*
FK1
FK2
FK3
PK,FK1
PK
First_Name
Last_Name
Quick_Name
Region
Signature
Pref_AI_Main_Inf
Pref_AI_Main_Sup
Pref_AI_Other_Inf
Pref_AI_Other_Sup
Pref_Contact_Nbr
Opp
PN_List_Id
1
SE_Type
Reseller_Id
Needs_List_Id
Date_Needed
Need_Duration
Opp_Nb
PN_List
1
Internal_User
Login
0..1
Opp_Nb
Currency_Code
Date_Created
Date_Sent
Validity_Duration
Payment_Conditions
Other_Info
PN_List_Id
Quote_Id
SE_Type
SE_Nb
Who_Assigned
Who_Done
Priority
Date_Assigned
Date_Done
Deadline
What
FK1
FK1
FK2
FK3
*
AI_Id
PK
Action_Item
PK
*
*
Invoice
SE_Type
Cust_PO_Nb
Amount_PO
Currency_Code
PN
Nb_Developers
Description
Single_Team
Price
PN_List_Id
Ordinal
PN_List_Item
PO_Nb
Currency_Code
Date_Created
Date_Sent
Date_Paid
Amount_Paid
Address
VAT_Nbr
Payment_Conditions
Other_Info
PN_List_Id
Invoice_Nb
*
PK,FK1
PK
1
FK3
FK2
FK1
PK
FK2
FK1
PO
PO_Nb
0..1
Company_Id
Country_Code
Sales_Rep_Login
Date_Created
Status
Region
Name
Site
Address
Comment
SE_Type
SE_Nb
PK,FK1
FK2
FK1
FK3
PK
PK
*
Sales_Entity
*
FK1
FK3
PK
*
FK1
ACT_Nb
Prepared_By_Login
Date_Sent
Tracking_Nb
Address
Content
Comment
Shipment_Nb
Shipment
SE_Type
ACT_Nb
ACT
0..1
Name
Display
Country_Code
Country
Name
Former_Name
Company_Id
PK,FK1
PK
FK1
PK
0..1
Company
*
Contact
*
*
PK,FK1
PK,FK1
PK,FK2
*
*
Contract_Nb
Contract_Type
Opp_Nb
PO_Nb
ACT_Nb
Date_Created
Comment
FK1
FK2
FK3
FK1
PK
PK,FK2
PK
PK
Ordinal
Position
SE_Type
SE_Nb
Contact_Id
*
Contract
First_Name
Last_Name
Email
Phone
Fax
Cellular
Address
Comment
Picture_File_Id
Pref_Announcement
Contact_Id
Sales_Entity_Contact
FK1
PK
*
0..1
0..1
0..1
0..1
Contact_Id
Passwd_Hash
Admin
Active
Download
Browse_Report
Send_Report
Login_Email
ACT_Nb
GT_User
FK1
FK3
FK2
Products
Contract_Type
PN
Attendees
Description
Site
Days
Service_Nb
Service
Contract_Type
Active
CPSA_Type
PN_List_Id
CPSA_File_Id
Start_Date
Subscription_Duration
Renewal_Intention
Renewal_Why_Not
Renewal_Opp_Nb
Renewal_Products_Nb
Test_Plan_File_Id
Products_Nb
Contract_Type
Contract_File_Id
PN
Description
Enhancement_Nb
Enhancement
PK,FK1
FK1
FK2
PK,FK1
FK2
FK3
FK6
FK4
FK5
FK1
PK,FK1
*
*
FK2
Description
Date_Expected
Date_Delivered
Date_Approved
Price
Currency_Code
Enhancement_Nb
Ordinal
Milestone
Service_Nb
Date_Done
Who_Done
Service_Day_Id
Service_Day
PK,FK1
PK
FK1
PK