PROBLÈMES RÉSOLUS • matérialité des cartes de visite • risque de ne plus en avoir • impossible de rechercher dans les données • risque d’égarement du support • pas de possibilité de copie de carte • gros stock de cartes après coup 4 ∞ ?
PROBLÈMES RÉSOLUS • matérialité des cartes de visite • risque de ne plus en avoir • impossible de rechercher dans les données • risque d’égarement du support • pas de possibilité de copie de carte • gros stock de cartes après coup • procédé d’échange peu attractif • deux actions discrètes • n’aide pas à créer du lien 4 ∞ ?
TABLE SURFACE • tactile : réagit aux contacts manuels • tangible : réagit aux objets physiques • permet une manipulation directe des données virtuelles 5
TABLE SURFACE • tactile : réagit aux contacts manuels • tangible : réagit aux objets physiques • permet une manipulation directe des données virtuelles • reconnaît des objets précis grâce aux “tags” 5
ADMINISTRATION 12 • fonctionnalités attendues • ajout d’utilisateurs • création des badges : association à un tag • contrainte : équipe de gestion inconnue ?
ADMINISTRATION 12 • fonctionnalités attendues • ajout d’utilisateurs • création des badges : association à un tag • contrainte : équipe de gestion inconnue • facilité de déploiement de l’application ?
ADMINISTRATION 12 • fonctionnalités attendues • ajout d’utilisateurs • création des badges : association à un tag • contrainte : équipe de gestion inconnue • facilité de déploiement de l’application • exhaustivité de la documentation ?
ADMINISTRATION 12 • fonctionnalités attendues • ajout d’utilisateurs • création des badges : association à un tag • contrainte : équipe de gestion inconnue • facilité de déploiement de l’application • exhaustivité de la documentation • accessibilité des services d’administration ?
ADMINISTRATION : SOLUTION • déploiement sur un serveur web : PHP • gestion d’une base de données XML • pas de configuration nécessaire • bibliothèque standard PHP (simpleXML) 13
ADMINISTRATION : SOLUTION • déploiement sur un serveur web : PHP • gestion d’une base de données XML • pas de configuration nécessaire • bibliothèque standard PHP (simpleXML) • présentation : HTML+CSS 13 GET/ POST URL 200/ 404/ 500… GET/ POST URL 200/ 404/ 500…
ADMINISTRATION : SOLUTION • déploiement sur un serveur web : PHP • gestion d’une base de données XML • pas de configuration nécessaire • bibliothèque standard PHP (simpleXML) • présentation : HTML+CSS • interface de programmation disponible pour automatiser la gestion 13
ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des URLs et des méthodes HTTP seules pour manipuler les données 14 GET/ POST URL 200/ 404/ 500… GET/ POST URL 200/ 404/ 500…
ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes 14
ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module 14
ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module • classe JavaScript d’interfaçage asynchrone entre formulaire HTML et API REST “pure” 14
ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module • classe JavaScript d’interfaçage asynchrone entre formulaire HTML et API REST “pure” • github.com/MattiSG/WebServiceForm 14
ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module • classe JavaScript d’interfaçage asynchrone entre formulaire HTML et API REST “pure” • github.com/MattiSG/WebServiceForm • facilité de déploiement 14 1. 2. [host] baseURL = http:// example.com/surface/ 3. There is no step 3! config.ini 1. 2. [host] baseURL = http:// example.com/surface/ 3. There is no step 3! config.ini
ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module • classe JavaScript d’interfaçage asynchrone entre formulaire HTML et API REST “pure” • github.com/MattiSG/WebServiceForm • facilité de déploiement • démo sur un “vrai” serveur (OVH) 14 1. 2. [host] baseURL = http:// example.com/surface/ 3. There is no step 3! config.ini 1. 2. [host] baseURL = http:// example.com/surface/ 3. There is no step 3! config.ini
SURFACE : FRAGMENTS • autoformation • sites communautaires • cours officiels : DotNetFrance, Polytech’… • respect des User Experience Guidelines • base de données téléchargée • mise en cache des avatars 19
SURFACE : FRAGMENTS • autoformation • sites communautaires • cours officiels : DotNetFrance, Polytech’… • respect des User Experience Guidelines • base de données téléchargée • mise en cache des avatars • diminution des délais 19
COMPOSANTS Base de données Tag Surface Table Surface Serveur web recense manipule communique webservice 20 Interface web Carte de visite communique webservice recense
COMPOSANTS Base de données Tag Surface Table Surface Serveur web recense manipule communique webservice 20 reconnaît Interface web Carte de visite communique webservice recense
DONNÉES : SOLUTION • modification des données : interface web • universellement accessible • réception des cartes : email et exhaustivité des formats 23
DONNÉES : SOLUTION • modification des données : interface web • universellement accessible • réception des cartes : email et exhaustivité des formats • cartes en pièce jointe au format le plus commun (VCF) 23
DONNÉES : SOLUTION • modification des données : interface web • universellement accessible • réception des cartes : email et exhaustivité des formats • cartes en pièce jointe au format le plus commun (VCF) • possibilité de télécharger des versions alternatives (LDIF, CSV) 23
DONNÉES : FRAGMENTS • formats de carte non standardisés ! • recherche de documentation • trial and error sur différentes plateformes • formulaire HTML5 : nouveaux input 24
DONNÉES : FRAGMENTS • formats de carte non standardisés ! • recherche de documentation • trial and error sur différentes plateformes • formulaire HTML5 : nouveaux input • s’améliorera “tout seul” avec les navigateurs 24
DONNÉES : FRAGMENTS • formats de carte non standardisés ! • recherche de documentation • trial and error sur différentes plateformes • formulaire HTML5 : nouveaux input • s’améliorera “tout seul” avec les navigateurs • emails et formulaire en templates 24
DONNÉES : FRAGMENTS • formats de carte non standardisés ! • recherche de documentation • trial and error sur différentes plateformes • formulaire HTML5 : nouveaux input • s’améliorera “tout seul” avec les navigateurs • emails et formulaire en templates • éditables par la prochaine équipe sans toucher au code fonctionnel 24
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Serveur web recense manipule communique webservice communique webservice reconnaît recense 25
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Serveur web recense manipule communique webservice communique webservice génère reconnaît recense 25
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense 25
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense 26
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense C# XAML 26
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense PHP C# XAML 26
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML PHP C# XAML 26
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML HTML CSS PHP C# XAML 26
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML HTML CSS PHP C# XAML MIME 26
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML VCF LDIF CSV HTML CSS PHP C# XAML MIME 26
COMPOSANTS Interface web Base de données Tag Surface Table Surface Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML VCF LDIF CSV HTML CSS PHP C# XAML RESTful Admin API MIME RESTful Surface API 26
MÉTHODOLOGIE DE TRAVAIL 28 • aucune familiarité avec le code Surface • impossibilité d’estimer la durée des tâches • impossibilité de prévoir les points critiques
MÉTHODOLOGIE DE TRAVAIL 28 • aucune familiarité avec le code Surface • impossibilité d’estimer la durée des tâches • impossibilité de prévoir les points critiques • choix de méthodologies type agile
MÉTHODOLOGIE DE TRAVAIL 28 • aucune familiarité avec le code Surface • impossibilité d’estimer la durée des tâches • impossibilité de prévoir les points critiques • choix de méthodologies type agile • mise en place d’outils de suivi interactifs
MÉTHODOLOGIE DE TRAVAIL 28 • aucune familiarité avec le code Surface • impossibilité d’estimer la durée des tâches • impossibilité de prévoir les points critiques • choix de méthodologies type agile • mise en place d’outils de suivi interactifs • utilisation des tableaux blancs • travail dans les mêmes espaces • code itératif • déploiements réguliers
MÉTHODES AGILE EMPLOYÉES • Scrum • très bon fonctionnement de l’Équipe • rôle du Directeur de Produit rempli par l’encadrante • pas de possibilité d’avoir un Facilitateur (ScrumMaster) • adaptation à des cycles très courts : sprints d’une journée • éléments d’eXtreme Programming • philosophie (propriété collective du code…) • pair programming lors de problèmes particuliers rencontrés • développement continu • pas de tests unitaires (trop d’interface pour du TDD) 29
BILAN • résultat déployable • démo sur une version en production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation 30
BILAN • résultat déployable • démo sur une version en production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation • améliorations possibles 30
BILAN • résultat déployable • démo sur une version en production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation • améliorations possibles • interface graphique de la table et du formulaire d’édition 30
BILAN • résultat déployable • démo sur une version en production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation • améliorations possibles • interface graphique de la table et du formulaire d’édition • meilleure sécurité des transmissions (authentification de la table) 30
BILAN • résultat déployable • démo sur une version en production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation • améliorations possibles • interface graphique de la table et du formulaire d’édition • meilleure sécurité des transmissions (authentification de la table) • sonorisation du dispositif 30