Catégories
Gestion de projet

Créer un Cahier des Charges et Spécifications Fonctionnelles (ou BRD) pour un site internet

Le Cahier des Spécifications (ou « Business Requirements Document – BRD » en anglais) est un outil très puissant qui vous permettra de valider vos livrables par rapport aux demandes initiales. Le but est d’y articuler très clairement ce qui doit être livré en fin de projet, vu par les commanditaires du projet. Cette étape de formalisation est absolument critique dans ce qui vous permettra de dire si tel ou tel point est atteignable dans le temps / ressources / budget imparti et en définitive, si le projet est un succès ou non.

Il y a de nombreux paramètres à prendre en compte si l’on veut bien faire les choses. La liste variera de projets en projets mais quelques aspects majeurs ressortent au fil des épreuves et c’est d’ailleurs pour cela que l’on pourra retrouver dans la culture Six Sigma (le DMAIC : Define, Measure, Analyze, Improve & Control).

Un cahier des charges, pour faire quoi ?

  • S’aligner avec les clients, équipes impactées et son équipe
  • Jeter les bases de la communication avec un prestataire technologique
  • Alimenter les futures phases du projet
  • Décrire les Cas Typiques d’Utilisation (« Use Cases » en anglais) et préparer le « comment » d’un point de vue technique

On voit bien que le BRD est la base qui permet au projet de se nourrir et surtout de se construire durablement. Pour autant, on reste dans la zone du « quoi » et on n’effleure qu’à peine le « comment ». On distingue un Cahier des Charges et Spécifications Fonctionnelles (BRD, donc) d’un Cahier des Charges et Spécifications Techniques (Product Requierements Document, PRD). Pour reprendre un exemple cité sur le net, imaginons un département événementiel qui souhaite avoir à sa disposition 100 bouteilles de vin par soir lors d’une conférence de 3 jours, le vin devant être porté à 14° : il s’agit du BRD. Le PRD étant l’expression technique du même besoin, à savoir la mise à disposition d’un espace de stockage approprié ayant telle ou telle particularité.

Qui doit créer le BRD ?

On s’en doutera, la liste des auteurs d’un tel document est l’un des ingrédients les plus délicats. D’une part, on veut s’assurer d’avoir une répartition représentative du « business », mais d’un autre côté, on veut s’assurer aussi d’avoir en face de soi des experts opérationnels et autres équipes étant liées à l’ampleur des changements. S’il n’y a pas de recette magique, voilà déjà des pistes:

  • Le noyau dur de votre projet
  • Vos homologues côté Business
  • Les responsables des processus actuels ?
  • Des experts ?
  • Des groupes supports ? (IT / RH / légal / finance)

J’ai mon équipe, c’est bon ?

Que l’on soit prestataire ou interne, le fait d’avoir une équipe de responsables ne signifie malheureusement pas que vous ayez toutes les cartes en main. Pour garder le parallélisme avec la méthodologie Six Sigma, on va commencer par un audit -rapide- de la situation. Idéalement, les informations devront être chiffrées et comparables. Plus vous pourrez réunir d’informations quantifiables sur le « avant », plus il sera simple et flatteur de comparer avec le « après ». Cela peu paraître un peu racoleur, mais dites-vous que votre communication vers votre hiérarchie s’en trouvera facilitée si vous pouvez aligner les « +162% de taux de conversion & -17% de variation de semaine en semaine » au lieu d’un email élogieux venant d’un de vos partenaires.

Pour ceux familiers avec Six Sigma, cette étape de documentation couvre les outils suivants:  AS IS, IS / IS NOT, Fishbone Diagram, 5 Whys et autres du même genre.

Fishbone Diagram

J’ai de tout dans mon cahier de spécifications, comment garder de l’ordre ?

Un BRD n’est juste un défouloir pour le business, bien que cela puisse être un excellent moyen de commencer à récupérer des retours. Les éléments pris en compte doivent répondre -idéalement- au points suivants:

  1. Unilatéral : Chaque point doit adresser une seule demande. La réciproque est fausse.
  2. Complet : Même avec un système de suivi de versions de fichiers, si une définition n’est pas complète, finie, elle n’est pas recevable.
  3. Persistent : Chaque point est intègre et ne vient pas contredire une autre demande faite dans le même document.
  4. Partagé : la requête est partagée, validée par les autres parties.
  5. A jour : la requête est en phase avec les versions pertinentes des applications en question.
  6. Réaliste : la demande doit être en phase avec l’ambition et les ressources du projet.
  7. Limpide : Il faut arriver à donner de la lumière à chaque point. Si quelque chose n’est pas clairement explicité, il le sera officieusement par l’équipe technique. C’est un point qu’il est facile de mettre en avant auprès du business qui voit souvent cette tâche comme un point de pénibilité… mais le sentiment de contrôle est très souvent le plus fort !
  8. Obligatoire : comme abordé dans le point précédent, si une demande n’est pas exprimée mais seulement attendue ou évoquée, c’est un peu comme dire que le projet ne sera pas un succès pour cette raison. Vous avez des ressources pour ce qui n’est pas demandé ?

Comment organiser votre BRD ?

Un Cahier des Charges et Spécifications Fonctionnelles doit être accessible pour ceux qui vont devoir vivre avec au quotidien. Il doit par exemple couvrir les points suivants:

  • But du projet
  • Périmètre
  • Équipes impliquées
  • Résultat des audits (y compris les AS IS, IS / IS NOT, Fishbone, …)
  • Planning général
  • Processus de validation
Créer un Cahier des Charges et Spécifications Fonctionnelles (ou BRD) pour un site internet -

L’exercice étant assez pénible tant qu’on a pas d’exemple sous la main, je vous offre gracieusement un modèle de cahier des charges et des spécifications fonctionnelles. Il est au format Microsoft Word, ce qui devrait convenir au plus grand nombre. Il est également sensé fonctionner sur PC comme sur Mac, mais je n’ai pas testé. Il ne vous reste plus qu’à vous lancer et à remplir furieusement chaque point. Il va de soi que tout n’est pas forcement applicable à votre projet. D’ailleurs, je n’ai pas inclue de vraie grille de demande parce qu’on est dans le cas par cas à ce niveau là. Mon seul conseil c’est qu’Excel est votre ami !

Un dernier conseil ? Pour la route ?

  1. Valider le périmètre: revoir et préciser le périmètre du projet en fonction des demandes. En se basant sur l’ampleur ou la diversité des demandes, certains objectifs auront un impact trop important sur d’autres équipes pour pouvoir être traité dans votre projet. A partir de là, soit vous pouvez entamer une discussion avec le business pour revisiter le périmètre, soit vous acceptez de coacher un autre chef de projet pour qu’il gère une piste pour votre projet. Cela peut paraître flatteur et évident mais attention aux dépendances, si le sous-projet prend du retard ou se fige, votre projet en pâtira.
  2. Définissez les acronymes, les KPIs, assurez-vous de faire circuler un certain niveau de connaissances dans le groupe.
  3. Communiquez très fréquemment sur des bases factuelles. Par exemple, dans le cas d’un site internet, les statistiques hebdomadaires peuvent être une excellente raison d’envoyer un email de rappel à votre liste mais aussi au-delà de vos interlocuteurs habituels pour dire ce qui se passe.

N’hésitez pas à partager vos retours d’expérience. Je me ferai un plaisir de mettre à jour le document ou cet article.

Bons projets
Greg

Catégories
Design

Améliorez le design de votre site internet

Grâce à 3 gros projets en cours, j’en profite pour revister les classiques. Ci dessous une liste de 22 adresses proposant des kits graphiques ( web templates ) gratuits pour vous aider à construire un site internet qui corresponde au mieux à son contenu:
Améliorez le design de votre site internet -

  • Freshtemplates.com
  • Effex-media
  • Zerodollartemplates
  • Templatesbox
  • Mastertemplates
  • Freewebsitetemplates
  • Anvisionwebtemplates
  • Templateyes
  • Templateworkz
  • 4layouts
  • Freetemplates
  • Freephotoshoptemplates
  • Allfreetemplates
  • Freetemplatedesigns
  • Zymic
  • Freepsd
  • Mamboteam

D’ici quelques jours, je reviendrai sur de nombreux aspects de la gestion de projet web dans le cas de la refonte d’un site et de la récuperation des specifications.

Catégories
Productivité

Gratuit : tout MS Office et Adobe Creative Suite en quelques fiches

Fiches visio par Customguide
Fiches visio par Customguide

Le site dreamweaver gratuit vient de publier une note couvrant la sortie d’une fiche pense-bête pour la version CS3 du logiciel d’adobe. Initialement gêné par le fait que ce ne soit que pour CS3 alors que CS4 est sorti depuis quelques mois déjà, j’ai voulu creuser un peu la source citée. 2 clics plus tard, je découvre une page complète de fiches couvrant une grande majorité des outils que l’on peut utiliser aujourd’hui: la suite Office (2000 à 2007) et Adobe. Je doute qu’un pense-bête puisse faire découvrir quoique ce soit de vraiment nouveau, mais je me suis rendu compte à l’usage, que cela peut quand même vous faire gagner du temps. Ce n’est déjà pas si mal.

Cliquez-ici pour acceder à la page contenant toutes les fiches, libres de droits.

Puisqu’on aborde le sujet de la formation en ligne, je ne saurai trop vous inviter à jeter un coup d’œil sur l’excellentissime Net Tuts. Ce site, très 2.0, publie chaque jour une nouvelle formation en ligne qui peut toucher à n’importe quel logiciel, langage, technologie que vous pourriez être amener à utiliser.

Catégories
Gestion de la qualité Gestion de projet

Comment définir les responsabilités ?

A chaque étape de la gestion de projet internet, que ce soit pour un lancement, pour une refonte ou pour des opérations de maintenance, vous aurez à définir les rôles et responsabilités des différentes parties impliquées. Par habitude, on répartira les attributions, les droits, les devoirs en fonction de l’équipe dans laquelle chacun de se trouve, chacun ayant une définition bien personnelle de ce que signifie « l’équipe opérationnelle », ou pire « l’équipe business ».

prendre des responsabilites

Définir les rôles dans mon projet

Comme dans beaucoup de cas, la meilleure des choses à faire est de dissiper cette brume environnante par une communication claire et surtout intelligible pour chaque membre, où qu’il se trouve. Sans chercher à réinventer la roue chaque début de trimestre, il existe une méthodologie relativement simple qui permet d’adresser ce point précis. La méthode RASIC tire son nom des rôles quelle représente :

Responsable: c’est ce que l’on appelle aussi la core-team, le nexus, le quorum… bref, l’équipe centrale qui pilote le projet et qui est associée à son succès direct.

Approbateur : il peut s’agir d’un comité de direction, d’un comité de pilotage ou d’équipes transversales étant impactées par les livrables.

Support: comme on peut s’en douter, il s’agit ici d’équipes de support dans le sens large. Au delà du classique département juridique, IT, marketing central; on veut cerner les équipes fournissant des outils, du contenu qui sera retravaillé pour le projet.

Informatif: ce groupe, souvent mal utilisé, est votre audience. Plus que des clients directs pour le projet que vous etes entrain de mener, il s’agit de votre réseau. Je ne saurai trop vous conseiller de (re)lire cet article !

Consultatif: les quelques membres qui vous aideront à accomplir les grandes étapes de votre projet sans pour autant le faire pour / avec vous. Par exemple la personne ayant modélise la première mouture d’une procédure que vous devez actualiser.

Concrètement, comment est-ce que je peux assigner une responsabilité ?

Une fois que ce modèle est clairement gravé dans notre esprit, il suffit de prendre un crayon ou sa souris et d’assigner une responsabilité par tâche. Prenons un exemple relativement commun : le couple Mme C et Mr D cherchent à vendre leur voiture, leur ami Mr A a bien vendu la sienne il y a deux mois et sa fille Mlle B l’avait aidé.

Methode RASIC : definir les roles et responsabilite
Methode RASIC : definir les roles et responsabilite

Appliqué au monde de l’entreprise, ce modèle permet non seulement de responsabiliser chacun mais aussi de clarifier les zones d’ombres. Si une action a 2 « responsables », il y a certainement de quoi creuser un petit peu, par exemple.

Dans certains cas bien précis, on pourra coupler cette matrice RASIC avec un diagramme de Gantt, notamment dans le cas de mini projet… ou de mini-équipes !

Grégory

Catégories
Developper

Developper : l’url rewriting #1 – comment donner du sens à vos urls ?

Les procédures de définition d’un projet web mettent naturellement ce que l’on trouve dans le site. L’identité visuelle, l’ergonomie, les chemins que les utilisateurs devront parcourir pour atteindre leur objectifs sautent à l’esprit puisque c’est ce que l’on voit et ressent dès les premières minutes sur un site. Depuis que Google est en position de quasi-monopole dans la plupart des pays, on prend aussi en compte des mots clefs (taxonomie, règles d’édition du contenu) et d’informations moins visuelles (comme le titre des fenêtres ou les textes descriptifs des images). Ça fait déjà une longue liste de tâches à accomplir pour être au niveau par rapport à vos concurrents potentiels. La bonne nouvelle, c’est qu’il y a encore des moyens de se différencier et de marquer des points de manière efficace ou de combler votre retard actuel. Comme le nom « url rewriting » l’indique, l’idée est de reformater les urls pour leur donner plus de pertinence, de sens.

Reformater mes urls ?

En ré-écrivant des urls dynamiques, il y a de fortes chances pour que la structure qui se déploie dans la barre d’adresse de votre navigateur paraisse plus logique aux yeux de vos visiteurs. C’est déjà quelque chose que vous voyez au quotidien sans vous en rendre compte. Normal, on ne remarque que si nous parait compliqué. Ainsi, de l’exemple #1 on pourra passer à l’exemple #2 en quelques étapes.

Exemple #1:
https://www.site.com/comparaison.php?categorie=172201&c=fr&l=fr

Exemple #2:
https://voyages.site.fr/billet/avion

1er avantage: imaginons que l’on voit cette url dans les pages de résultat d’un moteur de recherche (SERP), il y a fort à parier que que les visiteurs cliquent davantage sur l’url qui comprend les mots clefs qui correspondent à leur recherche.

2ème avantage: entre deux pages comprenant un contenu globalement similaire, traitant du même sujet, sans vrai facteur différenciateur; devinez laquelle de ces pages sera indexée plus facilement que l’autre ?

Pour autant, le champ d’application de l’url-rewriting est bien plus large que ce simple exemple. En fonction des besoins de vos projets, on pourra approcher cette fonctionnalité en s’axant sur:

  • la sécurité : cacher des failles potentielles liées à certains scripts,
  • le SEO : améliorer le référencement naturel des pages du site et le click-through,
  • le Customer Experience : les visiteurs peuvent mieux appréhender la structure du site… et on aime tous pouvoir se repérer sur un site,
  • les webanalytics : imaginez un rapport de trafic / revenu (basé sur les répertoires de vos urls) qui ait du sens,
  • l’opérationnel : pas besoin de changer toutes vos urls (ni de perdre le trafic ou Page Rank associé) lorsque vous lancez ou re-« brandez » un produit ou un site.

Chacun de ses points peut être une raison suffisante pour se lancer dans cet exercice.

Ok, j’en veux changer la structure de mes urls, je fais comment ?

Il existe des centaines de très bon sites qui couvrent l’implémentation technique sous les différents serveurs web qui existent aujourd’hui (enfin quand même surtout Apache et Microsoft IIS). Sans  réinventer ou recopier ce qui a été fait ailleurs, voilà déjà quelques pistes qui vont vous donner de quoi commencer.

Revenons à la définition de l’url rewriting. Le principe est de de vous permettre d’écrire des règles permettant au serveur de modifier les urls des contenus recherchés par les visiteurs. On a donc bien une notion de règles (à définir) que le serveur (Apache ou IIS) devra interpréter.

Concrètement, je veux transformer quoi en quoi ?

La première étape est donc de faire un état de ce que vous avez et de voir en quoi vous voulez le transformer. Bien que cela tombe sous le sens, il est important de bien se poser la question sous différents angles. Est-ce que ce que vous pourriez imaginer sur un coin de table serait pertinent une fois que vous regarder à vos rapports de statistiques ? Est-ce votre site est la cible d’attaques incessantes contre lesquelles il faudrait penser à se protéger ?

La meilleure méthode reste de commencer à griffonner sur un bout de feuille Excel les urls type que vous avez aujourd’hui, trier celles que vous voulez reformater et imaginer comment vous pourriez les simplifier. Vous n’avez pas besoin de simplifier TOUTES les urls de votre site, une approche branche par branche peut être se révéler bien plus pertinente ou en tous cas permettre de valider les acquis et la méthode.

Comment je dis ça au serveur ?

Cette fois, cela va dépendre du langage et du type de serveur que vous utilisez pour faire tourner votre site. Il exise grosso-modo 2 types de serveurs web : Apache (qui se couple généralement avec PHP & MySQL) et Microsoft IIS (qui se couple généralement avec ASP.NET).  D’après Woozweb (observatoire de sites) la part de serveurs Apache tourne autour des 80% du marché alors que IIS ne récolte que près de 20%. Apache représente a peu près 80% du marché mondial, vous trouverez par conséquent beaucoup plus de documentation à ce sujet, pour autant IIS n’est pas en reste et vous permet d’atteindre exactement les mêmes objectifs. Commençons donc avec le couple Apache & PHP.

Méthodologie sous Apache

On se bornera ici à faire quelques tests donnant des directions sur ce que vous pouvez développer de votre côté. En aucun cas il ne s’agit d’une liste exhaustive.

1. Assurez-vous que votre serveur Apache gère l’url rewriting.

Il se peut que, en fonction de votre hébergeur ou de la manière dont est configuré le serveur, les instructions ne soient pas prises en charge. Commençons par savoir si le module est actif.

Créez le fichier « info_config_apache.php » comprenant cette simple ligne de code:

<?php phpinfo(); ?>

Ouvrez votre navigateur à l’adresse en question et regardez si « mod_rewrite » fait partie des modules listés. Si ce n’est pas le cas, je vous conseille de vous reporter à la FAQ de votre hébergeur. S’il s’agit de votre propre serveur, vous trouverez toutes les démarches ici. Enfin, si vous êtes hébergés chez 1and1, l’instruction ne s’affichera pas dans la liste pas mais vous pourrez tout de même faire de l’url rewriting.

2. Essayons ensuite de passer une ou deux commandes de test pour être sur que tout fonctionne bien avant de se lancer.

En fonction de votre hébergeur (notamment en hébergement mutualisé) il se peut que vous deviez rajouter quelques lignes de code. Lancez donc votre éditeur de code, Dreamweaver ou Notepad, et créez (ou éditez) un fichier « .htaccess » à la racine de votre site. Le fichier « .htaccess » permet de faire énormément de choses très utiles dans de nombreux domaines; si vous n’en avez jamais entendu parlé, je vous conseille d’aller et avant de continuer. Tout le monde est revenu ? Ok, on commence donc avec ce petit bout de code:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteRule   ^perdu.html$   gagne.html  [L]

Placez le à la racine de votre site, et créez au passage le fichier gagne.html. Si vous avez la flemme, téléchargez les deux fichiers en question et de-zippez les sur la racine de votre site.

Une fois les fichiers en place, il vous reste juste à tester avec votre navigateur si tout fonctionne bien. Tapez donc l’url de votre site (https://www.monsite.com/perdu.html) et vous devriez être redirigé de manière transparente vers le fichier gagner.html. Si ca marche, passez à l’étape suivante. Si ca ne marche pas (probablement « erreur 500 »), essayez de retirer la première puis la troisième ligne de code du fichier .htaccess.

3. Passons maintenant à la phase finale, la mise en production de ce que vous aviez griffonné un peu plus tot.

Pour cela il existe tout un langage et une syntaxe. Je ne livrerai ici que 2 exemples typiques et des sites permettant d’approfondir.

Forcer le sous-domaine « www » ?

Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^votre_site\.com$
RewriteRule ^(.*)$ https://www.votre_site.com/$1 [R=301,L]

Si vous tapez « votre_site.com », le serveur affichera et interprètera automatiquement « www.votre_site.com ». Visitez le site Apache Mod Rewrite pour creuser cet exemple.

Cacher les extensions de fichiers

Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Allez sur votre site, et vous y verrez toutes vos pages fonctionner sans le « .php », c’est à dire comme un nom de répertoire. Visitez le site Apache Mod Rexrite pour creuser cet exemple.

Dans un prochain article, nous reviendrons sur la syntaxe assez barbare utilisée ici -les expressions rationnelles- et nous verrons que cette norme est extrêmement pratique et puissante dans de nombreux domaines. D’ici là vous pouvez continuer à parcourir des exemples d’url rewriting et même d’autres possibilités offertes par la manipulation d’un fichier .htaccess.

Méthodologie sous IIS

Microsoft oblige, IIS nous offre une API pour faire ces même manipulations. On utilisera pourra utiliser l’application ISAPI (Internet Server Application Program Interface) développée par Helicon qui revient à triturer un fichier .htaccess sous Apache. On notera d’ailleurs que ISAPI 3.0 permet d’importer un fichier .htaccess, ce qui n’est pas sans intérêt. Découvrez ISAPI 3.0 et d’autres logiciels du même style .

IIS gérant nativement l’ASP.NET, vous pourrez aussi passer par une approche « code » si vous n’avez pas accès à la configuration de votre serveur. Voilà de quoi vous mettre sur la voie !

Le temps de digerez tout ca et j’aurai fini un deuxième article sur une série d’exemples prioritaires pour vos réécritures d’url sur Apache. D’ici là, commencez déjà à imaginer si certaines de vos urls devraient être réécrites et si oui, lesquelles et pour donner quel résultat ! Tout un programme.