41
LE DÉVELOPPEMENT CÔTÉ UTILISATEUR David Buros Développeur – No Parking

Le développement côté utilisateur

Embed Size (px)

DESCRIPTION

Cours donné aux licences webdeveloppement à l'INSSET de Saint Quentin le Mardi 2 Octobre 2012.

Citation preview

Page 1: Le développement côté utilisateur

LE DÉVELOPPEMENT

CÔTÉ UTILISATEUR

David BurosDéveloppeur – No Parking

Page 2: Le développement côté utilisateur

About.me

Développeur PHP depuis 5 ans.

Quatre belles expériences en entreprise.

Du code, mais pas que.

Veille, veille, veille !

Page 3: Le développement côté utilisateur

L'INFORMATICIEN« Rush middle ! »« Rush middle ! »

ww.web2mag.info/wp-content/uploads/2011/09/Fotolia_18567847_Subscription_XL.jpg

Page 4: Le développement côté utilisateur

« Faire comprendre votre travail, c'est déjà votre travail »

« Plus vous communiquerez et plus on vous fera confiance »

« Les non techniciens sont vos amis. Et souvent vos collègues »

« Gardez à l'esprit pour qui vous travaillez »

Page 5: Le développement côté utilisateur

Vous êtes desARTISANS

Pas des TRADERS

Ni des chefs de projets. (petite digression right now)

Page 6: Le développement côté utilisateur

EXERCICE N°

1EXPLIQUEZ

… en une cinquantaine de mots, Internet à votre grand-mère.Bien entendu, vous adapterez votre langage.

Postulat de départ : elle n'est pas sourde et a toute sa tête.

10 minutes

Page 7: Le développement côté utilisateur

LE CLIENT

http://referencechecknz.co.nz/wp-content/uploads/networking2.jpg

« Bleu le bouton, heu non rouge, heu non vert, heuuuuu ...»« Bleu le bouton, heu non rouge, heu non vert, heuuuuu ...»

Page 8: Le développement côté utilisateur

PAR DÉFINITION, LE CLIENT NE SAIT PAS CE QU'IL VEUT.

Et ne le saura sûrement vraiment jamais.

Va falloir vous y faire.

Désolé :-/

Page 9: Le développement côté utilisateur

Le client ne sait pas dire ce Le client ne sait pas dire ce qu'il veut ?qu'il veut ?

Vous ne parlez pas le même Vous ne parlez pas le même langage ?langage ?

La communication passe mal La communication passe mal et les infos se perdent ?et les infos se perdent ?

Votre boite pratique le Votre boite pratique le développeur black-box ?développeur black-box ?

Faites lui dire ce qu'il ne veut Faites lui dire ce qu'il ne veut surtout pas !surtout pas !

Entendez-vous sur un Entendez-vous sur un dictionnaire de termes !dictionnaire de termes !

Choisissez un interlocuteur Choisissez un interlocuteur unique et rencontrez-vous IRL !unique et rencontrez-vous IRL !

Ca vous plait ? Tant mieux. Ca vous plait ? Tant mieux. Sinon changez, vite !Sinon changez, vite !

Page 10: Le développement côté utilisateur

C'est [presque] gagné si vous comprenez le métier de votre

client.

http://www.azprocede.fr/Schema_GC/galleries/Usines_Procedes_Produits/raffinerie_ariel_texas_bas_bp.jpg

=

Page 11: Le développement côté utilisateur

EXERCICE N°

2IMAGINEZ

… dans les grandes lignes, les aménagements que vous apporteriez à votre épicerie fine pour attirer les personnes mal

voyantes du foyer qui se trouve de l'autre côté de la rue.

Postulat de départ : budget illimité. 15 minutes

Page 12: Le développement côté utilisateur

http://qse.free.fr/IMG/jpg/tunnel.jpg

LE PROJET« Dépêche toi de commencer, c'est pour hier ! »« Dépêche toi de commencer, c'est pour hier ! »

Page 13: Le développement côté utilisateur

L'effet papillon tunnel

1. Réunion ↓

2. Cahier des charges fonctionnelles↓

3. Cahier des charges techniques↓

4. 5. 6... Faille spatio-temporelle de 6 mois↓

1 247. Site terminé↓

« Ha, mais j'avais pas demandé ça (le client)»↓

Goto étape 1

Page 14: Le développement côté utilisateur

- LE MANIFESTE AGILE -

« Les individus et leurs interactions plus que les processus et les outils »

« Des logiciels opérationnels plus qu’une documentation exhaustive »

« La collaboration avec les clients plus que la négociation contractuelle »

« L’adaptation au changement plus que le suivi d’un plan »

Page 15: Le développement côté utilisateur

Product OwnerProduct Owner

Scrum MasterScrum Master

BacklogBacklog

SprintSprint

Page 16: Le développement côté utilisateur

User Story

En tant que ROLE, je souhaite ACTION pour BUT.

« En tant que client, je souhaite uploader des documents pour compléter ma bibliothèque »

Page 17: Le développement côté utilisateur
Page 18: Le développement côté utilisateur
Page 19: Le développement côté utilisateur

EXERCICE N°

3PLANIFIEZ

… un sprint ! Ecrivez les user stories, faites un planning poker et mettez en place le backlog en vous basant sur les deux

dernières semaines.

Postulat de départ : utiliser votre propre projet ou devenez américain et recréez Facebook,

Github ou Twitter. 1 heure

Page 20: Le développement côté utilisateur

LA QUALITÉLOGICIELLE

Page 21: Le développement côté utilisateur

http://www.lizardheadone.com/Engine.html

LES OUTILS« Les mains dans le cambouis »« Les mains dans le cambouis »

Page 22: Le développement côté utilisateur
Page 23: Le développement côté utilisateur

OUTILS MAITRISES

≠OUTILS ADAPTES

≠PRISE DE RISQUE INCONSCIDEREE

Page 24: Le développement côté utilisateur

EXERCICE N°

4CONCEVEZ

… une plateforme d'emailing 3.0 en utilisant un maximum d'outils et de librairies externes.

Postulat de départ : internet et coup de bigot à une proximité autorisé.

20 minutes

Page 25: Le développement côté utilisateur

http://www.historyofinformation.com/narrative/restating-the-problem.php

LES TESTS« Finalement, on gagne du temps »« Finalement, on gagne du temps »

Page 26: Le développement côté utilisateur

TESTS UNITAIRES

class Request { /* CODE */

public function getPost($name = null) { if (null === $name) { return $this->_post; } return array_key_exists($name, $this->_post)?$this->_post[$name]:null; }}

class RequestTest extends \PHPUnit_Framework_TestCase { /* CODE */

public function testGetPost() { $this->assertInternalType('array', $this->object->getPost()); $this->assertNull($this->object->getPost('test')); $this->object->setPost(array('test' => 'value')); $this->assertEquals('value', $this->object->getPost('test')); $this->assertEquals(array('test' => 'value'), $this->object->getPost()); }}

Page 27: Le développement côté utilisateur

Behavior Driven Development

Page 28: Le développement côté utilisateur

TESTS FONCTIONNELS

Page 29: Le développement côté utilisateur

EXERCICE N°

5TESTEZ

… fonctionnellement, en BDD puis unitairement une méthode permettant d'envoyer un SMS à un utilisateur en cas de tweet

insultant à son égard.

Postulat de départ : seul le langage du Capitaine Haddock est autorisé.

15 minutes

Page 30: Le développement côté utilisateur

http://events.2hweb.net/scrapbook04su.html

LE VERSIONNING« Retour vers le futur »« Retour vers le futur »

Page 31: Le développement côté utilisateur

CENTRALISE VS DISTRIBUE

Page 32: Le développement côté utilisateur
Page 33: Le développement côté utilisateur

EXERCICE N°

6DEPLOYEZ

… votre application en ligne en utilisant les fonctionnalités offertes par un gestionnaire de version.

Postulat de départ : pensez au crash ;)

5 minutes

Page 34: Le développement côté utilisateur

?Contact : [email protected]

Page 35: Le développement côté utilisateur

EXTRABONUS

Pour les curieux

Page 36: Le développement côté utilisateur

http://getsocialwithamy.com/wp-content/uploads/2012/02/Vermillion_River_Kootenay_National_Park_Canada.jpg

INTEGRATIONCONTINUE

« Errors, you shall not pass »« Errors, you shall not pass »

Page 37: Le développement côté utilisateur
Page 38: Le développement côté utilisateur

1 : Commitez votre travail de la journée.

2 : Faite un build.

3 : Mergez vos branches.

4 : Mettez les sources en production en un clic.

5 : Allez vous reposer, demain on recommence.

Page 39: Le développement côté utilisateur

http://adnm-grp.com/services/solutions-et-lhebergement.html

LE DEVOP« La tête dans les nuages »« La tête dans les nuages »

Page 40: Le développement côté utilisateur

DEV + OP

Page 41: Le développement côté utilisateur

Cloud ComputingCloud Computing

IaaS - PaaSIaaS - PaaS

Chef - PuppetChef - Puppet

CapistranoCapistrano