85 votes

Que sont les applications de type greenfield et brownfield ?

J'ai lu la phrase suivante dans le Fluent NHibernate wiki :

... ; cependant, pour la plupart greenfield (et un certain nombre d'applications friche industrielle ), la cartographie automatique sera plus que compétente.

Que sont les applications de type greenfield et brownfield ?

123voto

Bombe Points 34185

Greenfield

Dans d'autres disciplines comme le génie logiciel, un greenfield est également un projet dépourvu de toute contrainte imposée par des travaux antérieurs. L'analogie est celle de la construction sur un terrain vierge où il n'est pas nécessaire de remodeler ou de démolir une structure existante.

(de http://en.wikipedia.org/wiki/Greenfield_project )

Brownfield

Le développement brownfield est un terme couramment utilisé dans le secteur informatique pour décrire les espaces problématiques nécessitant le développement et le déploiement de nouveaux systèmes logiciels en présence immédiate d'applications/systèmes logiciels (hérités) existants. Cela implique que toute nouvelle architecture logicielle doit tenir compte des logiciels existants et coexister avec eux.

(de http://en.wikipedia.org/wiki/Brownfield_(développement de logiciels) )

12voto

Thomas Owens Points 45042

Je pense que cela peut être lié aux termes de l'urbanisme. "terrain vierge" y "friches industrielles" . Les terrains vierges sont des terrains non développés - agricoles, paysagers ou naturels. Les friches industrielles sont des terrains développés.

Une application "brownfield" est une application existante, tandis qu'une application "greenfield" est une application qui n'a pas encore été faite ou qui est à un stade très précoce de développement.

3voto

tijmenvdk Points 1468

Applications Greenfield : nouveau développement, aucun travail préalable effectué qui pose des contraintes sur votre solution. Je pense que le terme vient d'un champ "non labouré, vert".

Brownfield : application existante, beaucoup de choses existantes à prendre en compte, etc.

Voir cet article .

2voto

Sur la base de ce que je connais de James Gregory (l'homme derrière Fluent NHibernate), je pense que l'entrée Wikipedia pour brownfield est un peu trop théorique. Dans Développement de l'application Brownfield nous le définissons comme suit :

un projet, ou une base de code, qui a été précédemment créé et qui peut être contaminé par de mauvaises pratiques, structure et conception, mais qui a le potentiel de renaissance grâce à un refactoring complet et dirigé

Version courte : Un projet existant qui a besoin d'être retravaillé mais qui est toujours activement développé (contrairement à la plupart des systèmes hérités).

2voto

Volksman Points 1146

Il y a beaucoup de débats autour de la décision d'une entreprise de "greenfield" ou "brownfield" ou de remanier le code existant.

La décision doit être prise en tenant compte de nombreux facteurs, dont le moindre n'est pas les fonds disponibles pour développer une nouvelle application. Dans de nombreux cas, l'application patrimoniale est la vache à lait de l'entreprise et tout remplacement de ce code patrimonial ne rapportera pas un seul dollar tant qu'il n'aura pas été entièrement développé et mis entre les mains du premier client payant.

Bien que la préférence de la plupart des ingénieurs logiciels soit de DÉMARRER UN NOUVEAU PROJET EN VERT parce qu'ils détestent généralement l'OPC (Other People's Code), ce n'est pas toujours dans l'intérêt financier à long terme de l'entreprise.

J'ai écrit un article qui analyse les risques liés aux projets greenfield en me basant sur une expérience très concrète dans une entreprise pour laquelle j'ai travaillé il y a plus de 20 ans (je fais mon âge maintenant ;). Vous pouvez le lire ici :

http://stepaheadsoftware.blogspot.com.au/2012/09/greenfield-or-refactor-legacy-code-base.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X