IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

26PARTAGES

5  2 
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 ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de 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.
5  0 
Avatar de captaindidou
Inactif 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.
5  0 
Avatar de Glutinus
Inactif https://www.developpez.com
Le 11/03/2015 à 16:03
J'adore ce genre d'articles bourrés de lieux communs. Je vais ouvrir un blog aussi avec un article.

Comment faire un bon logiciel.

Glutinus, développeur Business Intelligence, nous explique comment faire un bon projet BI.

Alors c'est très simple. Il faut que le sponsor soit chaud bouillant donc on lui fait un POC exprimant le ROI dont il a besoin pour qu'il étale la thune pour faire une bonne équipe.
Les utilisateurs doivent être impliqués et comprendre parfaitement le process. Systématiquement refuser si la spécification de besoin ou le cahier des charges a une incohérence et ne pas lancer les devs.
La MOA et l'AMOA doivent rédiger des spécifications fonctionnelles compréhensibles à 100% par la MOE, et pas du tout vague.
Le chef de projet ne doit rien faire à l'arrache et être à jour dans son fichier excel. Son équipe doit également être composée d'un référent technique, d'un analyste-concepteur, d'un DBA Prod couplé études et des développeurs avec 15 ans d'expérience ainsi que quelques jeunes à la tête bien faites qui se formeront sur des développements.

On ne fait pas de développement sans spec technique validée par tout le monde. Une fois lancé les tests unitaires doivent être détaillés, le code commenté, les specs remises à jour lors des écueils techniques puis un test de performance avec une plate-forme iso DEV / Recette / production.

Les utilisateurs sont impliqués à 100% pour la recette et pas de mise en production le vendredi.

Si tout le projet se passe bien ne pas oublier d'inviter l'équipe MOE et les féliciter au pot de la galette du nouvel an, et pour les prestataires appeler les commerciaux des SSII pour leur dire de verser une prime de 2000€ à chacun d'entre eux.

Vouzenpensezquoi ?
5  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 11/03/2015 à 19:34
Citation Envoyé par theMonz31 Voir le message
Pour avoir de meilleur logiciel, que faut-il faire ?

C'est simple... être meilleur...

alors, certains vont partir dans la direction de l'amélioration des processus (agile, TDD, autres)...

d'autres vont pointer la formation des développeurs, la reconnaissance, etc...

d'autres vont miser sur le temps, l'écoute, le partage...

d'autres vont miser sur la reconnaissance de l'expérience qui permet, normalement (mais pas toujours), d'obtenir de meilleurs choses plus on a l'habitude d'en faire...

-------------

Après, on tape sur les SSII.. mais finalement, la SSII n'est que la réponse a un besoin exprimé par un client...

Les SSSI aimeraient bien vendre des développeurs expérimentés à 500€/jours à leurs clients... sauf que le client (principalement les gros industriels plus que les petites boites) a tendance à croire que développer, c'est simple, facile, rapide et donc, "hurle" dès qu'on lui mets des tarifs élevés.. (d'ailleurs, souvent les entreprises "compensent" le TJM bas par plus de jours de prestations !!!
+1000 Jai déjà mis ce lien il n'y a pas longtemps, mais il illustre tellement bien le débat... Peu importe la méthodologie, tant qu'elle est appliquée par des gnous qui ne comprennent pas ce qu'ils font(un peu moi quand je fais du système, hélas), on va dans le mur. Et, au contraire, n'importe quelle méthodologie peut être détournée par des gens qui savent ce qu'ils font pour obtenir un résultat brillant.

+1 aussi sur la culpabilité des grands comptes sur l'existence des SSII à la Française. J'en ai vu refuser un expert à 600€ sur 30 jours mais accepter 3 gnous à 350€ 60 jours chacun. Et, au final, les gnous n'ont pas fait ce que l'expert aurait fait - en 30 jours. Mais comme le TJM a baissé, les gens des achats ont eu leur prime.
5  0 
Avatar de 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
4  0 
Avatar de theMonz31
Expert confirmé https://www.developpez.com
Le 11/03/2015 à 8:07
Pour avoir de meilleur logiciel, que faut-il faire ?

C'est simple... être meilleur...

alors, certains vont partir dans la direction de l'amélioration des processus (agile, TDD, autres)...

d'autres vont pointer la formation des développeurs, la reconnaissance, etc...

d'autres vont miser sur le temps, l'écoute, le partage...

d'autres vont miser sur la reconnaissance de l'expérience qui permet, normalement (mais pas toujours), d'obtenir de meilleurs choses plus on a l'habitude d'en faire...

-------------

Après, on tape sur les SSII.. mais finalement, la SSII n'est que la réponse a un besoin exprimé par un client...

Les SSSI aimeraient bien vendre des développeurs expérimentés à 500€/jours à leurs clients... sauf que le client (principalement les gros industriels plus que les petites boites) a tendance à croire que développer, c'est simple, facile, rapide et donc, "hurle" dès qu'on lui mets des tarifs élevés.. (d'ailleurs, souvent les entreprises "compensent" le TJM bas par plus de jours de prestations !!!
4  0 
Avatar de Washmid
Membre averti https://www.developpez.com
Le 11/03/2015 à 10:40
Citation Envoyé par Excellion Voir le message
Pour un de mes profs de fac, un bon programme devait dans l'ordre être :
Robuste
Optimisé
Rapide
Fonctionner correctement
...
Personnellement j'aurais mis "maintenable" en haut de la liste (comprenez documenté, sans trop de code spaguetti, etc.)

Un logiciel maintenable mais pas très robuste, ça se renforce, pas de soucis.
Un logiciel robuste mais impossible à maintenir, c'est la poubelle direct à la moindre évolution importante.

Enfin bon c'est un point de vue
4  0 
Avatar de 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).
3  0 
Avatar de 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.
3  0 
Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 11/03/2015 à 10:05
Moui, à mon avis, il manque une donnée essentielle, c'est le temps.

Lorsqu'un projet est estimé à X jours, et que la décision des financiers est de le faire en X/2 ou X/3, c'est forcément au détriment de la qualité, indépendamment de tout ce qu'on peut imaginer comme méthodologie, outils, ou n'importe quoi d'autre.
3  0