Que faut-il faire pour avoir de meilleurs logiciels ?
Selon un développeur senior, il faut miser sur les techniques d'ingénierie du génie logiciel

Le , par Amine Horseman, Expert éminent sénior
Dans son blog nommé Building Real Software, Jim Bird, directeur de technologie chez BIDS Trading, nous interpelle avec cette question : « Si vous ne pouviez faire qu'une seule chose pour avoir de meilleurs logiciels, que serait-elle ? »

Selon lui, on devrait commencer par l’intégration continue puisqu’il faut d’abord « construire le logiciel et le faire fonctionner avant de pouvoir faire quelque chose d'utile avec ». Pour cela, il conseille de « faire en sorte que les développeurs enregistrent et synchronisent leur travail plus souvent » en gardant en tête qu’il faut construire le système (Build) le plus fréquemment possible : « au moins une fois par jour pour commencer, puis lors de chaque Check-in » déclare-t-il. Ceci implique selon lui de simplifier et automatiser le Build du système, et faire en sorte que l’opération s’effectue de manière correcte.

Il ajoute ensuite qu’on ne peut pas être Agile sans l’intégration continue, et qu’on a « besoin de la mettre en place avant de pouvoir aller sur le chemin du DevOps pour assurer la livraison ou le déploiement continu ».

La deuxième chose la plus importante à faire pour avoir de meilleurs logiciels selon Jim Bird c’est de « charger les développeurs de tester leur propre travail, et automatiser cela autant que possible en s’appuyant sur l’intégration continue », ceci serait selon lui « la seule façon de fournir des logiciels plus rapidement et réduire les coûts ». Toutefois, il rappelle que ces tests ne sont pas exhaustifs et qu’il faudra quand même quelqu’un pour vérifier manuellement la sécurité, l’utilisabilité, l’intégration ainsi que le negative testing et le stress testing, « à moins que vous vous attendiez à ce que vos clients trouvent les bugs pour vous ».

La troisième chose à faire c’est les Code Reviews. Le but étant de relire le code pour repérer les erreurs à un stade précoce, ceci permettra de créer une forme de « protection défensive de codage » selon l’auteur du blog. Il a tenu à rappeler que les reviews coûtent quand même cher et qu’il ne faut pas faire perdre le temps des reviewers à chercher des problèmes futiles.
Une autre technique citée par Jim Bird pour assurer la qualité du code est le Pair Programming. « Le pairing n’est pas la même que le reviewing » assure-t-il, « un bon reviewer pourra trouver des problèmes même dans le code développé grâce à la programmation en pair » puisque « le but et les objectifs sont différents ».

La dernière chose à faire avec laquelle l’auteur conclut l’article est de ne pas oublier le ‘refactoring’ qu’il voit comme un investissement à long terme : « Il permet de conserver -et parfois de rétablir- la conception, et de sauvegarder la maintenabilité du code […] Vous payez un peu aujourd'hui pour gagner beaucoup plus dans l'avenir ».

Source : Building Real Software Blog

Et vous ?

Êtes-vous d’accord avec l’avis de Jim Bird ?
Que faut-il faire pour avoir de meilleurs logiciels selon vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Luckyluke34 Luckyluke34 - Membre émérite https://www.developpez.com
le 10/03/2015 à 14:22
Citation Envoyé par Amine Horseman  Voir le message
Que faut-t-il faire pour avoir de meilleurs logiciels selon vous ?

  • Trouver sa propre définition de "meilleur". Meilleur dans l'absolu ne veut rien dire.

    Cela dépend de l'environnement, des utilisateurs, du domaine métier, des objectifs de l'entreprise, du type d'application, etc.

    Fixer cette définition collectivement et en déterminer de grands objectifs à atteindre par l'équipe qui réalise le logiciel en question.


  • Choisir les pratiques, techniques, approches, architectures... adaptées en conséquence.

    Le blog en propose quelques-unes mais il y en a des milliers d'autres. Cela nécessite pas mal d'expérience, de recherche et de remise en question (une pratique valable aujourd'hui peut très bien être rendue obsolète demain par de nouveaux paramètres).
Avatar de Logan Mauzaize Logan Mauzaize - Rédacteur/Modérateur https://www.developpez.com
le 10/03/2015 à 16:56
Citation Envoyé par Amine Horseman  Voir le message
Que faut-t-il faire pour avoir de meilleurs logiciels selon vous ?

Au delà de pratiques particulières, je pense qu'il faut former les intervenants à tenir compte de l'ensemble des domaines de la fabrique d'un logiciel. Qu'il s'agisse d'architecture, conception, analyse, développement, test, intégration, déploiement, maintenance, support, robustesse, etc.
Quand on envisage une tâche, il faut tenir compte de l'impact sur tous ces domaines.

Donc pour avoir de meilleurs logiciels, il faudrait former ce que certains appellent des artisans logiciels.

Enfin un autre point, l'amélioration continue (ou la remise en cause perpétuelle). Qu'il s'agisse de processus, de son propre travail ou de celui des voisins. Ayant cet objectif en tête, l'utilisation des techniques citées deviendra assurément une évidence, et permettra surement la création de nouvelles techniques.
Avatar de zeecrowddev zeecrowddev - Membre du Club https://www.developpez.com
le 10/03/2015 à 17:27
Peux être plus simplement : Écouter ses utilisateurs :-)

Un bon logiciel est un logiciel qui plaît à ses utilisateurs quelque soit l'architecture, le langage, le design ...

Pour cela les méthodes agiles, le "Lean Startup" ....

Le plus souvent les développeurs (et j'en fait parti ) interprètent ce que leurs utilisateurs veulent et se réfugient vers ce qu'ils connaissent : La technique.
Avatar de Sodium Sodium - Membre éclairé https://www.developpez.com
le 10/03/2015 à 17:47
Il faut avoir des gens compétents tout au long de la chaîne, c'est à dire aussi bien les développeurs que les commerciaux et l'utilisateur final.
Un client intelligent qui connait ses besoins, est capable d'apporter des informations précises quant au fonctionnement de son métier et les obstacles menant obligatoirement à des délais supplémentaire, ça augmente significativement la vitesse et la solidité du développement nécessaire tout en diminuant la quantité de développement inutile.
Avatar de Potomac Potomac - Membre habitué https://www.developpez.com
le 10/03/2015 à 17:47
Que faut-t-il faire pour avoir de meilleurs logiciels selon vous ?

- bannir les SSII qui poussent au low-cost et qui méprisent le métier de développeur, réduit à un simple ouvrier qu'on jette une fois le travail terminé

- sensibiliser le développeur sur l’intérêt des tests unitaires, étape souvent bâclée, surtout si on est dans une SSII lamentable

- un calendrier raisonnable et réaliste

- favoriser la licence open-source ( code source en libre accès ) pour une transparence absolue et un meilleur contrôle
Avatar de marc.collin marc.collin - Membre confirmé https://www.developpez.com
le 10/03/2015 à 17:52
de nombreux ouvrages sur le sujet existent... faut juste que les décideurs pressés les lis
Avatar de yahiko yahiko - Rédacteur/Modérateur https://www.developpez.com
le 10/03/2015 à 18:29
Que faut-il faire pour avoir de meilleurs topics ?

Plus sérieusement, sujet beaucoup trop vaste, vague et sans réponse unique et précise car énormément dépendante du contexte.
Selon le domaine, Web, scientifique, ERP, embarqué, jeux vidéo, etc, la signification peut être très variable.

Il y a tout au plus de "bonnes pratiques" qui elles aussi ont leurs limites, mais certainement pas un guide universel pour "bien programmer".
Avatar de mermich mermich - Membre expérimenté https://www.developpez.com
le 10/03/2015 à 19:14
Pourtant c'est si facile:

Pour bien programmer il suffit de ne pas programmer, comme ca aucunes erreur CQFD.
Avatar de captaindidou captaindidou - Membre averti https://www.developpez.com
le 10/03/2015 à 19:58
Vous voulez du logiciel mature plus vite ?

Ce n'est pas compliqué. Misez sur des techno mûres et des développeurs d'expérience.

Faites du neuf avec du vieux.

Le développement logiciel est surtout affaire d'expérience et de méthode au même titre que n'importe quelle activité d'ingénierie.

Cependant, la tendance n'est pas à faire confiance à l'expérience.
Avatar de Excellion Excellion - Membre habitué https://www.developpez.com
le 10/03/2015 à 20:49
Pour un de mes profs de fac, un bon programme devait dans l'ordre être :
Robuste
Optimisé
Rapide
Fonctionner correctement
...

Ce serait bien que les développeurs d'aujourd'hui s'en inspirent.
Trop de branquignols se prenant pour des informaticiens oublient que la règle première d'un programme est de ne pas planter, et la seconde qu'il soit ecrit de la meilleure manière possible.

Ensuite, il ne faut pas oublier que tout part de la conception et donc du papier.
Sans une bonne conception, c'est 90% d'echec assuré.

Beaucoup trop de programmeurs se lancent à l'assaut d'un développement comme ils le feraient de l'Anapurna, avec le même résultat désastreux...
Offres d'emploi IT
Expert application Supply Chain & Achats H/F
Safran - Ile de France - Evry (91)
Expert Technico Fonctionnel Sharepoint H/F
Safran - Ile de France - Corbeil (91)
Architecte systèmes externes TP400 H/F
Safran - Ile de France - Moissy-Cramayel (77550)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil