Your new post is loading...
Your new post is loading...
Quelques questions sur mes motivations avant de lire ce livre.Coaching ou plutôt Mentoring technique ?Le terme coaching est employé à tors et à travers. L’intention est d’aider les autres à apprendre à résoudre des problèmes par eux-mêmes.
La communauté d’acteurs du logiciel est composée de profil très différents, certains voient les “craftsman” comme des artisans qui pourraient avoir la tentation de se comporter en diva et de ne se concentrer uniquement sur leur “art”.
Robert C. Martin dans Bringing Balance to the force répond à ces fausses idées, en communiquant sur le fait que la pratique technique est un bon moyen pour répondre aux problèmes d’évolution et de sécurité d’une application. Situation souvent rencontré par les équipe agiles se concentrant peut-être un peu trop sur la méthode au détriment du reste.
Des échanges et points de vues intéressant qui permettent d'établir un ensemble de valeurs humaines et compétences techniques. Des valeurs humaines
Humilité : une constante remise en question et recherche d’amélioration Apprentissage: j’apprend en permanence de manière a mieux répondre aux besoins Beaucoup de partage : Je tente de partager avec mes pairs mes expériences et découvertes Pragmatisme : une compréhension des besoins et dans quel contexte ils s’inscrivent Professionnalisme : Je traite mon clients comme un pair, je sais communiquer mes points de vues quand nécessaire.
Techniquement
Vision de la conception juste : tiny is beautiful. Adhérence aux notion DDD & SOLID Clean code Refactoring Techniques de testing.
Ou en sommes nous ?
En 2018, la philosophie des méthodes agile est plus présente dans les équipes. On observe globalement un changement de paradigme dans les échanges entre les acteurs projets. La culture craftsman est encore a construire et défendre au sein de ces équipes. Dans The Tragedy of Craftsmanship, Robert C. Martin (Uncle Bob) défend l’idée que le craftman n’occupe pas la place qu’il devrait et que les esprits ont encore besoin d’évoluer.
Even Uncle Bob has addressed the subject. In npm alone, countless packages have been released to provide an alternative. People tend to think that the catch with Contact and if-then-else is that the more branches in your code, the more opportunities for untested and unexpected behavior. Each branch requires different use cases to be thoroughly tested, and although some tools, such as Istanbul, provide an indication of how many branches have been performed, in addition to the traditional feature coverage. But branches are part of the nature of programming, there is nothing we can do about it. In this brief statement, I would like to give a new spin on when to use control structures and when to use some functional alternatives.
“The Pragmatic Programmer” est une bible pour les développeurs. Il est l’œuvre d’Andrew Hunt et Dave Thomas d’après leurs expériences en tant que développeurs. Leur objectif est simple, faire du lecteur un Pragmatic Programmer, un développeur fier de son travail et qui utilise les meilleures techniques à sa disposition pour faire un travail de qualité.
Un rapport* de Dimensional Research pour Sourcegraph met en exergue la croissance du volume et de la complexité du code que livrent les équipes de développement. 503 développeurs et responsables informatiques ont participé à l’enquête* américaine. Plus de 9 répondants sur 10 considèrent que le volume et la variété du code ont fortement augmenté ces dix dernières années. Il en va de même de la pression exercée pour accélérer la fréquence de livraison applicative. Interrogés sur l’évolution de la taille de la base de code dans toute leur entreprise, base mesurée en mégaoctets et en nombre de référentiels, 51% considèrent que le volume du code a été multiplié par 100 en 10 ans. 18% disent que ce volume est 500 fois plus élevé. Par ailleurs, plus de 60% des professionnels constatent une « forte » ou « très forte » augmentation des plateformes et terminaux supportés et de l’utilisation de l’open source. Code et dépendances 74% des répondants déclarent que leurs équipes retardent des changements dans le code car elles ne sont pas sûres des dépendances.
Dans un monde où il est de plus en plus facile de rendre le code sûr et naturel, cela devient de plus en plus critique. Dans cet article, nous couvrirons un modèle qui rendra votre API naturelle, intuitive et sécurisée avec Fluent-API.
Découvrez quels sont nos conseils expérimentés pour mettre en place l'artisanat logiciel ou software craftsmanship
Contains Uncle Bob's "The Craftsman" articles. I did nothing more than putting them in a single book to make it more accesible. All credit goes to Uncle Bob (Robert C. Martin) for creating such a wonderful story. - jeremiahflaga/the-craftsman-book
The folks at NimblePros have put together a pretty sweet 2011 calendar showcasing principles of software craftsmanship and agile software development. The calendars are arriving from the printer today and should start shipping out over the next week or so to those who have pre-ordered them (or won them in the twitter contest, which lasts until 8 December 2010). Here’s my review of the calendar (before having an actual one in hand, mind you).
Game Programming Patterns is a collection of patterns I found in games that make code cleaner, easier to understand, and faster.
This is the book I wish I had when I started making games, and now I want you to have it. It’s available in four formats
Le but de cet article est de parler de Zelda de vous amener à réfléchir sur vous-même et d’identifier si vous êtes Craftsman ou non. Essayons ensemble d’aborder ce qu’est le mouvement Software Craftsmanship en faisant une petite introspection : Comment vous percevez-vous ? Comment percevez-vous votre métier ?
À la fin de cet article vous aurez, je l’espère, plus d’éléments pour savoir dans quel mesure vous êtes un artisan du logiciel.
|
Presentation donnée à l'Agile Tour Bordeaux le 27/102016
I had my fair share in designing and building large systems. I've taken part in rewriting Uber's distributed payment systems, designing and shipping Skype on Xbox One and open-sourcing RIBs, Uber's mobile architecture framework. All of these systems had thorough designs, going through multiple iterations and had lots of whiteboarding and discussion. The designs then boiled down to a design document that was circulated for more feedback before we started building. All of these systems were large at scale: hundreds of developers build them - or on top of them - and they power systems used by millions of people per day. They were also not just greenfield projects. The payments system rewrite had to replace two, existing payments systems, used by tens of systems and dozens of teams, all without having any business impact. Rewriting the Uber app was a project that a few hundred engineers worked simultaneously on, porting existing functionality to a new architecture. Let me start with a few things that might sound surprising. First, none of these designs used any of the standard software architecture planning tools. We did not use UML, nor the 4+1 model, nor ADR, nor C4, nor dependency diagrams. We created plenty of diagrams, but none of them followed any strict rules. Just plain old boxes and arrows, similar this one describing information flow or this one outlining class structure and relationships between components. Two diagrams within the same design document often had a different layout and were often added and modified by different engineers. Second, there were no architects on the teams that owned the design. No IT architects or enterprise architects. True, neither Uber nor Skype/Microsoft have hands-off software architect positions. Engineers at higher levels, like staff engineers, are expected to still regularly code. For all the projects, we did have experienced engineers involved. However, no one person owned the architecture or design. While these experienced developers drove the design process, even the most junior team members were involved, often challenging decisions and offering other alternatives to discuss. Third, we had practically no references to the common architecture patterns and other jargon referenced in common software architecture literature, such as Martin Fowler's architecture guide. No mentions of microservices, serverless architecture, application boundaries, event-driven architecture, and the lot. Some of these did come up during brainstormings. However, there was no need to reference them in the design documents themselves.
This is my summary of the The Pragmatic Programmer, by Andrew Hunt and David Thomas. I use it while learning and as quick reference. It is not intended to be an standalone substitution of the book so if you really want to learn the concepts here presented, buy and read the book and use this repository as a reference and guide.
As computer code is written by humans, languages must be easy on the brain. Similarities with human language may even predict something about their evolution.
"One difference between a smart programmer and a professional programmer is that the professional understands that clarity is king. Professionals use their powers for good and write code that others can understand." - Clean Code: A Handbook of Agile Software Craftsmanship by Robert C Martin.
Le software craftsmanship (ou l'" artisanat du logiciel ") est une approche de développement de logiciels qui met l'accent sur les compétences de développement des développeurs. Il se propose comme une réponse aux maux récurrents de l'industrie du logiciel et à la tendance à l'externalisation, qui priorise les préoccupations financières avant la responsabilité du développeur.
Expliquer les techniques de craft est compliqué, surtout au plus haut niveau de hiérarchie. La compréhension étant une des clés pour changer l'état d'esprit, et les pratiques techniques un pré requis pour créer du code de qualité, il est important de les expliquer. Mike Bowler a facilité un atelier à l'Agile Games Conference, montrant l'usage des Lego pour expliquer les pratiques techniques.
Le code legacy n’est pas une fatalité ! Avec Adrien Joly, découvrez quelques techniques pour maintenir votre legacy, ne plus avoir peur de modifier votre code et transformer le tout en défi passionnant !
Establish an engineering mindset
I believe that our industry needs to take the next step on our journey. We have discovered techniques that work. We have data that shows that these techniques work better than other approaches. If we don't take this step at some point, a software disaster will happen on a bigger scale than the VW emissions scandal, and legislation will take over.
Let us take this into our own hands. We are the experts. Let us create a discipline of genuine software engineering and create better software, faster. And maybe along the way we will adopt a stronger sense of professional ethics to complement our more disciplined approach.
It is time to take back the term software engineering. Craftsmanship is not enough.
Après avoir lu Clean Code et Clean Architecture du même auteur, j’avais été déçu après la lecture du dernier. En effet, sur les 430 pages seulement quelqu’unes d’entres elles m’ont semblé…
I think everyone can benefit from viewing this material: Enjoy! Alan
On parle de plus en plus de tests unitaire, de TDD, de BDD, d’ATDD, de DDD… Si beaucoup de développeurs savent à peut prêt ce que veut dire ces termes, très peu sont capables de mettre ces techniques en place.
Et c’est là que nos coachs craftsmanships apparaissent ; ils vont aider ces équipes techniques à mettre la qualité technique au centre de leurs préoccupations. D’ailleurs, ils vont également accompagner la partie fonctionnelle à se familiariser avec ces notions car ils seront eux mêmes acteurs de celles-ci.
On parle de coachs car ils ne sont pas là pour imposer une panoplie de pratiques techniques mais ils sont là pour accompagner les équipes à trouver leur voix. En effet, c’est comparable à la posture du coach agile sur certains aspects sauf qu’il est très axé sur l’excellence technique.
|
Pour partager les valeurs et pratiques (techniques) des membres de l’équipe, quelques outils