David Farley, l'auteur de "Continuous Delivery" qui a remporté le Jolt Award, a un autre nouveau travail "Modern Software Engineering"

David Farley  est un pionnier de la livraison continue, un leader d'opinion et un expert en livraison continue, DevOps, développement piloté par les tests et développement de logiciels.

Travaillant en tant que programmeur, ingénieur logiciel, architecte système et chef d'équipes performantes depuis les débuts de l'informatique moderne, David a maîtrisé les bases du développement informatique et logiciel et a développé des méthodes révolutionnaires qui ont changé la façon dont les développeurs et les équipes travaillent. Il a défié les modes de pensée conventionnels et a dirigé des équipes pour développer des logiciels de classe mondiale.

David est co-auteur du livre primé Jolt, Continuous Delivery: A Systematic Approach to Delivering Reliable Software, est un conférencier populaire et dirige la populaire chaîne de livraison continue sur YouTube sur le génie logiciel. Il a construit l'un des échanges financiers les plus rapides au monde, a été le pionnier du développement axé sur le comportement, a co-écrit The  Reactive  Manifesto et a remporté le Duke Open Source Software Award pour LMAX Disruptor.

David est passionné d'aider les équipes de développement du monde entier à améliorer la conception, la qualité et la fiabilité de leurs logiciels en partageant son expertise par le biais de conseils, d'une chaîne YouTube et de sessions de formation.

Le nouveau livre de David Farley : Modern Software Engineering : How to Build Software Efficiently

Ce livre explore ce qu'est réellement le génie logiciel, rassemblant certains principes fondamentaux importants du développement logiciel, les associant étroitement dans un modèle cohérent, conçu pour aider les lecteurs à créer des logiciels de manière efficace et rapide. Le livre se compose de 4 parties : la partie 1 traite de la véritable signification du génie logiciel et de la manière d'appliquer les principes et principes d'ingénierie au développement de logiciels ; la partie 2 décrit les méthodes d'utilisation de la pensée scientifique pour optimiser le processus de développement de logiciels, y compris le travail itératif et incrémental, l'obtention et l'utilisation de commentaires rapides et de haute qualité et l'adoption de méthodes scientifiques expérimentales et empiriques ; les concepts de développement logiciel tout au long de ce livre incluent la testabilité, la déployabilité, la vitesse, les variables de contrôle, la livraison continue, etc.


Ce livre convient à ceux qui s'intéressent au génie logiciel et à la gestion d'équipes de développement logiciel, et peut également être utilisé comme manuel de référence pour les cours liés au génie logiciel.

Ce livre contient la réalité désordonnée du développement de code, ou devrais-je dire du génie logiciel : il n'y a pas une seule bonne réponse. Rien n'est gravé dans la pierre. Les choses qui sont justes à un certain moment, parfois même après un très court laps de temps, peuvent être très fausses.

La première moitié du livre nous offre des solutions pratiques non seulement pour survivre à une réalité aussi chaotique, mais aussi pour nous y développer. La seconde moitié aborde des sujets que certains pourraient considérer comme abstraits ou académiques, et montre comment ils peuvent être appliqués pour concevoir un meilleur code (par exemple, un code plus robuste, plus maintenable ou qui a d'autres "meilleures" propriétés).

La conception ici ne signifie certainement pas page après page de documents de conception ou de diagrammes UML (Unified Modeling Language), mais quelque chose d'aussi simple que "pensez au code avant de l'écrire ou pendant que vous l'écrivez". (Une chose que j'ai remarquée lorsque je programmais en binôme avec David, c'est qu'il passait très peu de temps à taper le code. Il s'avère que penser à ce que nous allons écrire avant de l'écrire nous fait gagner beaucoup de temps et d'efforts.)

David n'évite ni ne tente d'expliquer les incohérences dans l'utilisation de ces pratiques ensemble, ou la confusion potentielle pouvant résulter d'une seule pratique. Au lieu de cela, parce qu'il a pris le temps de discuter des compromis et des zones de confusion communes, j'ai compris pour la première fois que ce sont ces équilibres et ces conflits qui créent de « meilleurs » systèmes. Il s'agit de comprendre, ces équilibres et conflits peuvent être utilisés comme référence, comprendre leurs coûts et avantages, les utiliser comme "lentilles", et "ajuster le focus" de temps en temps pour examiner à plusieurs reprises le code/conception/architecture, plutôt que de simplement les comprendre avec une logique binaire, noire et blanche, juste ou fausse.

--Trisha Gee, évangéliste des développeurs et avocate de Java


Génie logiciel moderne : comment créer un logiciel efficacement Préface (extrait)

Ce livre réintroduit l'ingénierie dans le génie logiciel. Dans le livre, je décris une approche pratique du développement logiciel qui utilise une pensée consciemment rationnelle et rigoureuse pour résoudre des problèmes. Ces philosophies sont le résultat d'une application cohérente des méthodes mentales que nous avons apprises du développement de logiciels au cours des dernières décennies.

Dans ce livre, je définis un modèle sur la façon dont nous nous organisons pour créer de bons logiciels, et comment le faire efficacement, à n'importe quelle échelle, qu'il s'agisse d'un système vraiment complexe ou simple.

Il y a toujours des gens qui font un excellent travail. Nous bénéficions de pionniers innovants qui nous montrent ce qui est possible. Au cours des dernières années, cependant, notre industrie a appris à mieux expliquer ce qui fonctionne réellement. Nous avons maintenant une meilleure compréhension des idées qui sont plus générales et peuvent être appliquées plus largement, et nous avons des données pour étayer cela.

Nous pouvons créer des logiciels de manière plus fiable, meilleure, plus rapide, et nous avons les données pour le prouver. Nous pouvons résoudre des problèmes de classe mondiale, et nous avons de nombreux projets et entreprises réussis pour illustrer ce point.

Cette approche rassemble un ensemble important d'idées fondamentales et s'appuie sur des travaux antérieurs. D'une certaine manière, il n'y a rien de nouveau là-dedans en ce qui concerne les nouvelles pratiques, mais l'approche que je décris rassemble des idées et des pratiques importantes dans un ensemble cohérent et fournit la base de notre établissement d'un code de conduite pour le génie logiciel.

Il ne s'agit pas d'une combinaison aléatoire d'idées disparates, mais d'un entrelacement serré de ces idées afin qu'elles se complètent. Pris ensemble et appliqués de manière cohérente à notre façon de penser, d'organiser et de faire notre travail, ils ont un impact significatif sur l'efficacité et la qualité de notre travail. Bien que chacune des idées isolées puisse nous être familière, les rassembler est une façon fondamentalement différente de penser à ce que nous faisons réellement. Lorsque ces idées sont combinées et utilisées comme principes directeurs pour les décisions logicielles, elles représentent un nouveau paradigme de développement.

En tant qu'ingénieurs en logiciel, nous attendons à juste titre une discipline d'ingénierie spécifique au logiciel qui nous aidera à résoudre les problèmes auxquels nous sommes confrontés avec une meilleure qualité et une plus grande efficacité.

Ces disciplines d'ingénierie nous aideront également à résoudre des problèmes auxquels nous n'avons même pas encore pensé. Le concept d'une telle discipline doit être universel, durable et universel.

Ce livre tente de définir un ensemble d'idées étroitement liées. Mon objectif est de les combiner en une chose cohérente que nous pouvons considérer comme une méthode, une méthode qui peut affecter presque toutes les décisions que nous (développeurs de logiciels et équipes de développement de logiciels) prenons.

Le génie logiciel en tant que concept, s'il signifie quelque chose, doit nous fournir un avantage, pas seulement l'opportunité d'adopter de nouveaux outils.

Toutes les idées n'ont pas la même valeur. Il y a de bonnes pensées et il y a de mauvaises pensées, alors comment les différencier ? Quels principes peuvent nous aider à évaluer la valeur des logiciels et des nouvelles idées émergeant dans le développement de logiciels, et à décider si c'est bon ou mauvais ?

Toute idée pouvant raisonnablement être classée comme une approche d'ingénierie pour résoudre des problèmes logiciels est généralement applicable et fondamentale. Ce livre traite de ces idées. Sur quels critères devez-vous vous baser pour sélectionner vos outils ? Comment devez-vous organiser votre travail ? Comment devez-vous organiser les systèmes que vous construisez et le code que vous écrivez pour augmenter vos chances de les créer avec succès ?

Qu'y a-t-il dans ce livre ?

La partie 1, "Qu'est-ce que le génie logiciel ?", commence par examiner ce que signifie réellement l'ingénierie dans le contexte du logiciel. Il s'agit des principes et principes de l'ingénierie et de la manière dont nous appliquons ces principes et principes aux logiciels. C'est le principe technique du développement logiciel.

La partie 2, Optimiser l'apprentissage, examine comment nous organisons notre travail afin de pouvoir progresser par petites étapes. Comment évaluer si nous faisons de bons progrès ou si nous créons simplement aujourd'hui les systèmes hérités de demain ?

La troisième partie, "Gérer la complexité de manière optimale", explore les principes et les techniques nécessaires pour gérer la complexité. Cette section explore chacun des principes plus en profondeur, ainsi que leur importance et leur applicabilité pour la création de logiciels de haute qualité, quelle que soit leur nature.

La partie 4, "Outils d'assistance au génie logiciel", décrit des idées et des méthodes de travail qui maximisent nos opportunités d'apprentissage, améliorent notre capacité à progresser par petites étapes et gèrent la complexité du système à mesure qu'elle grandit.

Ce livre parcourt l'histoire et les principes du génie logiciel et le développement des idées sous la forme d'un fond gris. Ces insertions fournissent un contexte utile pour de nombreux points du livre.

 

Guess you like

Origin blog.csdn.net/epubit17/article/details/131502543