Au démarrage d'un projet, une expression de besoins détaillée permet d'orienter les choix techniques dès le départ : une solution à façon ou une application existante.
Au démarrage d'un projet, une expression de besoins détaillée permet d'orienter les choix techniques dès le départ : une solution à façon ou une application existante.
Les choix techniques se font dès le début d'un projet de développement en fonction de l'expression de besoins détaillée et du cahier des charges qui en découle. Le choix entre mettre en place des outils existants et réaliser un développement spécifique va définir la façon dont le projet va être mené mais aussi la suite de celui-ci (maintenance).
Utiliser un développement spécifique peut s'avérer être nécessaire dans le cadre d'un besoin métier. Cette solution permet de personnaliser et d'adapter au maximum l'outil aux besoins détectés. Cependant ce type d'intervention a un certain coût, et peut s'avérer non bénéfique dans le cadre de petit projet où des outils existants (Libre si possible) peuvent répondre à l'ensemble des contraintes et besoins.
Dans les deux cas, développement spécifique ou outils existants, il est important de ne pas négliger la maintenance à mettre en place en ayant une vision sur le long terme du programme. Ne pas prendre en compte la maintenance d'un outil peut s'avérer coûteux lorsque les solutions techniques utilisées sont devenues obsolètes et qu'il n'est plus possible de les migrer en l'état. Ce qui implique souvent de repartir de zéro. La maintenance de l'outil doit être pensée dès la conception de celui-ci.
Dans certains cas, il est possible de mixer les deux solutions : c'est à dire utiliser comme base un outil existant qui réponde à un certain nombre de critères et imbriquer un module spécifique avec les fonctionnalités manquantes. Cette manière de procéder est grandement facilité par l'utilisation d'un logiciel libre comme point de départ. Cependant, ce choix technique doit être fait dans les règles de l'art à savoir éviter de modifier le code source de l'existant pour faciliter les mises à jour et respecter la documentation qui permet l'intégration de modules spécifiques.