Que sont les applications greenfield et brownfield?


89

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

...; Cependant, pour la plupart des installations nouvelles applications (et assez peu de sites contaminés ceux aussi) la cartographie automatique sera plus capable.

Que sont les applications greenfield et brownfield?

Réponses:


130

Greenfield

dans d'autres disciplines comme le génie logiciel, un greenfield est aussi un projet qui n'a aucune contrainte imposée par des travaux antérieurs. L'analogie est celle de la construction sur des terrains vierges où il n'est pas nécessaire de remodeler ou de démolir une structure existante.

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

Brownfield

Le développement de friches industrielles est un terme couramment utilisé dans l'industrie informatique pour décrire les espaces à problèmes nécessitant le développement et le déploiement de nouveaux systèmes logiciels en présence immédiate d'applications / systèmes logiciels existants (hérités). Cela implique que toute nouvelle architecture logicielle doit prendre en compte et coexister avec des logiciels live déjà in situ.

(à partir de http://en.wikipedia.org/wiki/Brownfield_(software_development) )


29
"Heureusement que Google n'était pas en panne pour moi, j'ai donc pu trouver les définitions suivantes en quelques secondes." - Pourquoi exactement cette déclaration est-elle nécessaire? Je peux en quelque sorte comprendre que vous soyez ennuyé par une question `` simple '' et que vous l'ajoutez par frustration ou quelque chose du genre, mais pourquoi rajouter la déclaration après qu'elle a été supprimée?
AgentConundrum

8
Je suis d'accord avec @AgentConundrum. C'est maintenant le deuxième résultat que Google renvoie. Perdez la remarque.
Rob Bell

5
C'est parce que je suis toujours d'avis que les gens doivent apprendre à utiliser Google avant d'essayer d'autres choses. Vous savez, donner un poisson à un homme plutôt que lui apprendre à pêcher.
Bombe

17
@Bombe ne savez-vous pas que c'est du contenu qui alimente Google? Par conséquent, vous avez besoin des réponses quelque part pour qu'elles soient trouvées sur google ... Vous avez trouvé l'article wiki sur google, mais si google avait la réponse alors pourquoi l'article wiki aurait-il besoin d'être écrit?
Robin Day

29
La chose drôle est. J'ai trouvé ça maintenant, via Google. Premier lien. ;)
Ibsonic

13

Je pense que cela pourrait être lié aux termes d'urbanisme «terrains nouveaux» et «terrains contaminés» . Les terres Greenfield sont des terres non développées - agricoles, paysagères ou naturelles. Les friches industrielles sont des terres développées.

Une application brownfield est une application existante, tandis qu'une application greenfield est une application qui n'a pas encore été faite ou qui en est aux tout premiers stades de développement.


Cela a au moins beaucoup de sens. Mais comment obtiendriez-vous une application brownfield? Les applications ne sont-elles pas créées à partir de zéro à l'origine? Quand devient-il une friche industrielle?
Svish

2
Une application brownfield fait généralement référence à une mise à niveau majeure, ou à un redéveloppement d'une application existante où il y a des problèmes de rétrocompatibilité avec les formats de fichiers, interfaces, modules existants, etc. compatibilité et repartir à zéro.
Jeremy Bourque

1
Brownfield serait une amélioration majeure ou une réécriture loin d'être complète d'une application en direct existante. En d'autres termes, le code hérité.
APC

4

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 à considérer, etc.

Voir ce post .


2

Je suppose que c'est une analogie avec la construction

  • un greenfield site est terrain vierge - à savoir un nouveau projet, à partir d' un nouveau projet de logiciel à partir de zéro
  • une friche industrielle est celle où les structures existantes doivent d'abord être démantelées, c'est-à-dire construire dans le cadre d'un projet logiciel existant

2

Sur la base de ce que je sais de James Gregory (le gars derrière Fluent NHibernate), je pense que l'entrée de Wikipédia pour brownfield est un peu théorique. Dans le développement d'applications Brownfield , nous le définissons comme:

un projet, ou une base de code, qui a été précédemment créé et peut être contaminé par de mauvaises pratiques, une structure et une conception médiocres, mais qui a le potentiel d'être relancé grâce à une refactorisation complète et dirigée

Version courte: un projet existant qui nécessite du travail mais qui est toujours activement développé (contrairement à la plupart des systèmes hérités).


2

Il y a beaucoup de débats autour de la décision d'une entreprise de «greenfield» ou «brownfield» ou de refactoriser le code hérité.

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

Alors que la préférence de la plupart des ingénieurs en logiciel est de DÉMARRER UN NOUVEAU PROJET GREENFIELD parce qu'ils détestent généralement OPC (Other People's Code), cela peut ne pas toujours être dans la situation financière à 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 réelle dans une entreprise que j'ai travaillé il y a plus de 20 ans (montrant mon âge maintenant;). Vous pouvez le lire ici:

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.