www.neuros.fr
Savoir- Faire Offres mé1ers Offres technologiques! Audit et conseil (stratégie, organisation, urbanisation )! Assistance à maîtrise d'ouvrage! Développement d'applications métiers! Migration vers des solutions Open Source! DSI déléguée Exper.se dans les Systèmes d'informa1on Assurance Créa.on de sites internet à par.r d'ou.ls de ges.on de contenus (CMS) Créa.on de portails extranet BtoB et BtoBtoC Intégra.on de la Ges1on Electronique de Documents Refonte de processus et workflows Ges.on des flux de données inter et intra entreprise
Comment spécifier pour Drupal www.neuros.fr
Chrispane JOSEPH
Comment spécifier pour Drupal Introduction Spécifier pour Drupal CMS ou CMF? Exemples rapides
Introduction Le terme spécifica.ons recouvre toute la documenta.on permefant de décrire ce qu une réalisa.on doit couvrir. Elle consiste donc à l expression détaillée des besoins du client puis à leur traduc.on en terme d implémenta.on informa.que Bonjour, je vous appelle pour mon projet je souhaite et aussi sans oublier..
We want drupal! drupal est partout > Gouvernements > Célébrités > Universités > Commerçants > Intranet > Site web > Application > e-commerce pour livrer des projets drupal de qualité industrialiser le processus
Industrialisation des projets Drupal industrialiser pour réussir > mieux réussir son projet Drupal > processus fiable et réutilisable > réduire / éviter les retard > accélérer le développement la spécification est une phase importante dans la réussite d un projet Drupal
Les phases Analyses Design Concep.on & Livraison Recueil des besoins Spécifica.ons Design technique Développement Tests Qui va u.liser Drupal? Interface Interac.ons DB Views Que va faire drupal? fonc.onnalités Comportement afendu Fields Features Paramétrage rec.fica.on
Qu est-ce qu une spécification?
Qu est-ce qu une spécification? > Un outil de communication > entre le métier et le développement > entre un chef de projet technique et les développeurs > Faciliter la communication entre le client et le prestataire > Etablir ce que l application Drupal doit faire > Formaliser la réponse aux besoins du client > Accélérer les développements en les structurants Spécifications = projet sans frustrations
est-ce aussi important? feriez-vous construire une maison sans plan? Les spécifications sont > la continuation des expressions de besoins > les plans de votre projet > des directives à exécuter Quel que soit le mode de développement retenu (agile?) On a toujours besoin d une phase de spécification
Back to Basics Pourquoi Drupal pour ce projet? > Drupal est une solution technique, donc un outil, et pourtant un grand nombre de projets démarrent par la phrase «Je veux Drupal» avant même d écrire une ligne sur le besoin > La renommée de la solution n est plus à faire en terme de productivité, stabilité, fonctionnalités et le pouvoir d attraction au delà de la sphère technique est de plus en plus fort > Oui, mais, tous les projets sont ils faisables sous Drupal? Heureusement, PRESQUE TOUS (ouf )
Back to Basics suite > OK, tout le monde est d accord, on peut tout faire ou presque avec Drupal > Des questions demeurent cependant : en combien de temps? avec quel budget? avec un vrai niveau de qualité? vraiment tout? Les spécifications font partie du cycle de vie du projet et c est un moment où beaucoup de temps peut être sauvé. Elles vont donc avoir pour but d associer au plus vite les besoins du client à la façon dont on peut les implémenter dans Drupal
Comment spécifier pour Drupal Introduction Spécifier pour Drupal CMS ou CMF? Exemples rapides
Drupal, en fait c est quoi? > Drupal est à la fois un CMF & un CMS > 12 950 Modules à disposition > Modules à réponses aux besoins déjà rencontrés par des membres de la communauté Les spécifications Drupal doivent tenir compte de la nature du projet. Ce n est pas la même chose de réaliser un site institutionnel de présentation de contenus et un site avec des fonctionnalités très spécifiques
Drupal, en fait c est quoi suite Quelque soit le projet, dans Drupal, on retrouve toujours : - du contenu (node) - des utilisateurs (user) - une interface utilisateur (thème) - des fonctionnalités (module) - des contraintes techniques (infrastructure, performance ) Spécifier pour Drupal, c est reprendre chacun de ces items et définir comment ils vont être adressés vis-à-vis du client et vis-à-vis de l équipe de développement
Les contenus Avec le client Quels sont les différents types de contenus? Pour chaque contenu : - quels champs/données? - Quelles relations avec les autres contenus? - Possibilité de faire des commentaires? - Comment le présenter quand on le consulte? - Faut-il le classer avec des tags? - Qui peut le saisir, modifier, supprimer? Specs fonctionnelles Avec l équipe de dev => content types => fields => node reference => propriétés du content type => template (ou panels) => vocabulaire de taxonomie => droits associés aux rôles Specs techniques
Les utilisateurs Avec le client Quels sont les types de personnes qui vont utiliser le site? Pour chaque type : - quels sont les droits associés? - y aura-t-il des exceptions? - quels sont les champs / données? - y aura-t-il des groupes? - Comment peuvent-ils se connecter? Specs fonctionnelles => rôles Avec l équipe de dev => droits d un rôle => fonctionnalité particulière => fields du user => fonctionnalité particulière (OG?) => fonctionnalité particulière (Facebook connect par exemple) Specs techniques
L interface utilisateur Avec le client Quelle est la structure générale du site? Quels sont les différents menus? Page par page, partie par partie quelles sont les données présentées? Qui peut accéder aux pages? Y a-t-il des éléments toujours présents? Specs fonctionnelles Avec l équipe de dev => thème => paramétrage des menus => node unitaire, views, template particulier => droits des utilisateurs => widget js, élément externe (iframe?) Specs techniques
L interface utilisateur La disposi1on des éléments Structure de haut niveau - - - - - La naviga.on générale Les composants majeurs Disposi.on des contenus Les Blocks Les widgets
Les fonctionnalités Avec le client Quelles sont les fonctionnalités du site? Pour chaque fonctionnalité : - s agit-il d un batch? - Faut-il utiliser des données à l extérieur? - y a t il un écran particulier? - Qui a le droit de l utiliser? - Va-t-il ajouter une fonctionnalité visible? Avec l équipe de dev Face à un besoin, plusieurs solutions peuvent être envisagées : - recours à un module qui couvre 100 % du besoin et paramétrage - recours à un module qui couvre une partie du besoin et adaptation du module ou du besoin - développement d un nouveau module complet (Form API, Hooks ) Specs fonctionnelles Specs techniques
Développer ou adapter un module Il ne s agit que d une partie des spécifications du projet!!! Face à une fonctionnalité, il faut savoir faire un choix : - utiliser le module adapté issu de la communauté (à choisir parmi 12 500 ) - adapter le module qu on a trouvé précédemment - développer un module en utilisant l api de Drupal L appel à un ami (expert Drupal bien sûr) est nécessaire pour les grosses fonctionnalités!!! Il aura pour rôle d orienter les développements et de faire bénéficier de sa connaissance de l api de Drupal Vous le trouverez : - au sein de la communauté (forum, IRC ) - auprès d une société spécialisée (Neuros) - dans cette salle?
Les contraintes techniques Avec le client Quelle est l infrastructure cible? Combien y aura-t-il d utilisateurs? Les fonctionnalités offertes par le site sontelles lourdes? Avec l équipe de dev => memcache, fs cache => serveur statique pour les css, js => plusieurs serveurs frontaux => plusieurs serveurs de BDD Specs non fonctionnelles Specs techniques
Les spécifications invisibles Un certain nombre de fonctionnalités ne sont pas demandés par le client, car : - logiques : dans un site internet, un client peut s attendre à ce que les modules minimaux (pathauto, url rewrite, global redirect ) pour faire du référencement soient installés - invisibles : de simples paramétrages comme l agrégation css et js (+ gzip) devront être mis en place, car ils contribuent à rendre un développement plus performant - technique : la mise en place d un cache de requête mysql de taille suffisante doit être considéré comme une bonne pratique Drupal qui se passe d expression de besoin - liée à l expertise : 100 est un nombre de modules qu il faut essayer de ne pas dépasser sous peine de lenteurs importantes Drupal est une solution d experts
Les spécifications inversées Pourquoi ne pas profiter de la communauté Drupal? De nouveaux modules sortent tous les jours Pourquoi ne pas proposer des fonctionnalités nouvelles à un client grâce à ces modules de la communauté? Dans cette démarche, la phase de spécifications peut : - ne pas exister - exister sous la forme d évolutions Le client y gagne des fonctionnalités rapidement mises en place, le prestataire offrant son rôle de conseil et de veille techno
Au final, une spec ça a quelle forme? elle peut avoir plusieurs aspects, être constituée de plusieurs documents : - des fichiers excel (décrire les contenus, les utilisateurs ) - des fichiers word (décrire les fonctionnalités) - une maquette HTML (décrire le design) - des maquettes photoshop Travailler avec un expert disposant d une spec «standard» reprenant les items vus précédemment permet de gagner énormément de temps
Comment spécifier pour Drupal Introduction Spécifier pour Drupal CMS ou CMF? Exemples rapides
Alors CMS ou CMF? Le débat n existe pas vraiment, car Drupal présente toujours les deux aspects En réalité, la quantité de modules à développer et leur complexité va influer sur le fait de considérer Drupal comme un CMS ou un CMF : - CMS : on couvre les besoins en contenus, utilisateurs, fonctionnalités avec les éléments fournis par la communauté - CMF : on est obligé de développer beaucoup de modules, on finit par faire plus de développement que de paramétrage ou de saisie de contenu en fait, Drupal c est un Framework!!! N oublions pas que, qui peut le plus peut le moins Même en développant beaucoup de modules, vous avez toujours le droit de gérer du contenu avec les fonctions de base
Comment spécifier pour Drupal Introduction Spécifier pour Drupal CMS ou CMF? Exemples rapides
Exemple CMS : www.lemouv.fr Exemple de contenu : Des événements ayant une date, un titre, un contenu et sur lesquels tous les internautes peuvent réagir via des commentaires Content type : événement avec les données précédentes Affectation des droits utilisateurs pour les commentaires Exemple d interface : Une page de timeline pour lister les évènements, une présentation simple pour le contenu seul Exemple de fonctionnalité : Les internautes non identifiés doivent saisir un captcha pour poster un commentaire Module : extension du formulaire de commentaire pour intégrer un captcha pour les utilisateurs non authentifiés www.lemouv.fr comprend plus de 20 types de contenus, 120 modules pour couvrir les fonctionnalités souhaitées
Exemple CMS : www.lemouv.fr
Exemple CMF : www.assor.ru Exemple de contenu : Une page avec un titre et un contenu géré par un administrateur Assez rapide à mettre en place, il s agit même d un type de contenu «standard» Exemple de fonctionnalité : Les administrateurs peuvent paramétrer des formulaires de saisie pour proposer au visiteur un comparateur d assurance Une grosse spécification plus tard 9 modules développés (appel de tarification par DLL, WS, traçabilité du parcours utilisateur, extraction de données ) Réutilisation de la notion de type de contenu Drupal pour paramétrage du formulaire
Exemple CMF : www.assor.ru
Quelques bonnes pratiques > 10 15 % pour spécifier > Spécifier pour votre audience > Associer les besoins aux fonctionnalités > Utilisation des mockups et wireframes > Valider vos spécification auprès du client
En savoir ++ www.neuros.fr say8now