Download - Startup driven development

Transcript

Startup Driven Development

Développer dans une société innovante en construction

Ça a débuté comme ça...

Startup by Wikipedia

1) Une jeune entreprise innovanteà fort potentiel de croissancequi fait souvent l'objet de levées de fonds.

2) Une entreprise en constructionqui n'est pas encore lancée sur le marché commercial(ou seulement à titre expérimental).

Qu’est-ce qu’une startup ?Pas de produitPas de clientPas d’argent

Qu’est-ce qu’une startup ?Quelques personnes, des bureaux (et encore), une idéeEt des manières d’exploiter cette idée :

● L’exposer au monde● Faire du CA● Revendre● Extirper de l’argent à l’Etat en subventions

But de Corporama1) Présenter des infos sur les sociétés2) Attirer des clients

Startup driven DevelopementBut en tant que développeur :

● Construire un produit● Rencontrer l’attente de clients

Mais ces deux buts doivent se rejoindre :● Adapter constamment le produit en train de se faire● Dans un temps limité

Retours d’expérience

Créer un cycle vertueux : Minimum Valuable ProductLa méthode : mettre en ligne une proposition de fonctionnalité aux clients.Ecouter le retour des utilisateursSi la fonctionnalité a du succès:

● Plus de clients● Plus de temps

Politique des petits pas

Forrest GumpThème récurrent : la lutte contre le temps.

Aller viteOn parle ici de la vitesse de la sortie du produitQuitte à se faire un peu de dette technique.

Dès les premiers jours. L'an 01Avoir une infrastructure adaptée à ces cycles courts

● Intégration continue● Déploiement continu

Avoir une équipe adaptée à ces cycles courts

Env. de développement : Fast and furiousEnvironnement de développement rapide :

● Playframework● JRebel● En Erlang : sync● CSS, JS : build automatiques

Dès les premières semaines : Reliability1) Environnement de production qui ne pose pas de problème.2) Technos : être à l'aise ou savoir le risque couru3) Dès le départ se garder des régressions grâce aux tests● Tests unitaires● Et surtout des tests fonctionnels

Oui c’est contre-intuitifTester : passer du “Tu devrais” à “Tu dois”

Dès les premiers mois : Clean CodeMoment de la société : les premiers moisIl faut lutter dès le départ lutter contre la loi de l’entropie

Simplicity is prerequisite for reliability --Edsger W.Dijkstra

SDD : Clean Code revisitedBeaucoup de fausses bonnes idées. Refactoriser en début de cycle, quand on améliore une fonctionnalité

SDD : Clean Code revisitedPréférer la modularité à l’abstraction.Petites méthodes, petites fonctionsAvantage d’un langage fonctionnel : pas d’effet de bord, tout est sous les yeux.Coder pour le présent et rendre le futur possible

SSD : La loi du travailViser les 80% de la fonctionnalitéSi on arrive à 100% c’est bien aussi

Dès les premières années : 3 hommes et un couffinAprès plusieurs mois il faut parfois partir en vacancesPour l'efficacité de l’équipe :

● Plusieurs Fullstack permettent de partir en vacances...

SSD : agilité, adaptabilité. L’âge de raisonMoment de la société : le pivotReconnaître un besoin client qui a de l’avenirAdapter la stack technique devenue limitative

SDD : La place du développeur dans l'entrepriseTechnique as First class Citizen dans la société

Même niveau de pouvoirMême niveau de responsabilité

Etre proche des retours du client (même sans intermédiaire du PO)

SDD : Responsabilité du développeurDans une startup la technique doit être en symbiose avec les autres

● Je ne crois pas à la vision du créateur d’entreprise qui va dicter le produit● Je ne crois pas non plus à une technique souveraine

SDD : ConclusionDo. Or do not. There is no trySpeed and AgilityReliabilityDevelopper as first class citizen