2. UX-REPUBLIC // Fondation Creative Technology
Le social coding est une approche de développement de logiciels qui met
l'accent sur la collaboration formelle et informelle.
Bien qu’on associe souvent le social coding à des sites de code sociaux
comme GitHub ou Bitbucket, le terme décrit aussi tout environnement de
développement qui encourage le débat et le partage de code.
La richesse du social coding c’est de réussir à rassembler sur un même
projet des profils variés : Développeurs Front, Back, mais aussi parfois des
UX et des UI. Chaque utilisateur doit pouvoir contribuer à son niveau.
Le social coding oui mais encore...
3. UX-REPUBLIC // Fondation Creative TechnologieUX-REPUBLIC // Fondation Creative Technology
Depuis maintenant plus de 10 ans, le social coding est
au coeur de la création des plus gros projets web.
Au point même d’inquiéter certains géants de l’informatique et de les pousser
à revoir leur modèle économique...
Node.js créé par Ryan Lienhart Dahl en 2009 constitue actuellement une
des plateformes de développement collaboratif les plus actives.
4. Nous voulons que l’esprit social coding
soit au centre de notre fondation.
Coder, apprendre, faire de la veille et partager en équipe
Pouvoir contribuer au projet sans contrainte de temps ni
d’espace grâce à GitHub
Travailler plus vite en utilisant des frameworks existants
et des modules open sources
UX-REPUBLIC // Fondation Creative Technology
6. UX-REPUBLIC // Fondation Creative Technology
Linus Torvalds, créateur de Linux, développe Git, un
système de gestion de code source
UX-REPUBLIC // Fondation Creative Technology
2005
2008 GitHub nait de la volonté commune de
Tom Preston-Werner et Chris Wanstrath de résoudre la
problématique de la collaboration décentralisée dans le
cadre du développement.
Il manquait à Git une plate-forme collaborative, GitHub est venu combler
ce manque.
Il est désormais possible, pour n’importe quel développeur de créer un
dépôt, d’y héberger un projet, et de le proposer à la Communauté.
GitHub les origines
7. GitHub en un schéma
/myproject
branche master
branche integration-front
branche webservice-back
Le gourou
relit, valide le
code et
fusionne les
deux
branches
Commit / Push
Fork
/myproject-copy
UX-REPUBLIC // Fondation Creative Technology
Pull request au
gourou vers
master
8. 15 millions de contributeurs dans le monde,
38 millions de projets,
Plus de 8000 contributions pour les développeurs les plus actifs
GitHub en chiffres
Les grosses communautés permettent de pérenniser un projet, d’assurer sa stabilité
pour qu’une fois arrivé à maturité il puisse être exploité dans un environnement de
production
UX-REPUBLIC // Fondation Creative Technology
+700
contributeurs
+800 contributeurs
9. UX-REPUBLIC // Fondation Creative Technology
# Être efficace avec les frameworks et
modules collaboratifs
10. Le développeur qui connaît tout n’existe pas il a forcement besoin du travail
d’autres programmeurs.
Les frameworks et les modules collaboratifs
UX-REPUBLIC // Fondation Creative Technology
Il pourra s’aider d’un framework qui va regrouper un ensemble de briques de
code prêtes à l’emploi pour démarrer son projet. En cas de besoins il pourra
également faire appel à des modules.
Les avantages
Gain du temps pour développer
Base d’architecture robuste, testée
Évolution constante et mises à jour régulières
Code plus accessible
11. UX-REPUBLIC // Fondation Creative Technology
Framework et modules collaboratif dans une webapp
FRAMEWORK
Modules obligatoires
à express
Crypto, pour la sécurité
Gulp la trousse à outil du front
EJS, pour le template de page html
Autres modules
Passeport, pour l’authentification
ProjetCreativeTechnology
12. Attention aux dépendances entre modules !
Récemment la dépublication d’un module Node.js a entraîné l'échec du build de
nombreux projets open-source.
La triste petite histoire d’Azer Koçulu.
Les inconvénients des frameworks et modules collaboratif
UX-REPUBLIC // Fondation Creative Technology
Qui dit open source, dit Cyber attaque !
Les modules très populaire open sources sont la cible d’attaque de pirate.
Si un module est infecté des milliers d’App peuvent tomber
Frameworks et effet de mode
Il y a google derrière c’est forcement bien
14. C’est une méthode de travail dans laquelle deux développeurs travaillent
ensemble sur un même poste de travail. Il y a toujours un codeur et un
observateur dont les rôles peuvent parfois s’inverser.
Le concept de pair programming
UX-REPUBLIC // Fondation Creative Technology
L’observateur assiste le codeur en décelant les imperfections dans le code,
il vérifie aussi que le code implémente correctement le design, et il peut
également suggérer des alternatives de développement (optimisations).
Au sein d’une entreprise le développement en binôme encourage le transfert
de compétence. C’est un élément clé de l’Extrem programming inclu dans
la méthode Agile.
15. UX-REPUBLIC // Fondation Creative Technology
Les inconvénients
“Générateur du stress, surtout si un
esprit de compétition s’instaure entre
les deux développeurs.
Coûteux en temps pour les
entreprises, deux personnes sont
mobilisées sur une seule tâche.”
16. Les avantages
“Travail de meilleure qualité.
Montée en compétence des développeurs
juniors.
Déblocage plus rapide des problèmes
complexes.
Intégration native à l’agilité.”
UX-REPUBLIC // Fondation Creative Technology
17. “Apprentissage, entraide, partage, convivialité, aujourd’hui le social coding et devenu le Leitmotive
des programmeurs heureux.”
“Composant centrale de notre fondation le social coding va stimuler notre créativité et nous
apporter des méthodes et des outils de travail collaboratifs intéressant pour progresser dans
nos projets de développements.”
UX-REPUBLIC // Fondation Creative Technology