Apa itu aplikasi Greenfield dan Brownfield?

90

Saya membaca kalimat berikut di wiki Fluent NHibernate :

...; namun, untuk sebagian besar aplikasi greenfield (dan beberapa aplikasi brownfield juga) pemetaan otomatis akan lebih dari mampu.

Apa itu aplikasi Greenfield dan Brownfield?

Svish
sumber

Jawaban:

133

Greenfield

dalam disiplin ilmu lain seperti rekayasa perangkat lunak, lapangan hijau juga merupakan proyek yang tidak memiliki kendala yang disebabkan oleh pekerjaan sebelumnya. Analoginya adalah konstruksi di lahan greenfield di mana tidak perlu merombak atau menghancurkan struktur yang ada.

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

Brownfield

Pengembangan Brownfield adalah istilah yang umum digunakan dalam industri TI untuk menggambarkan ruang masalah yang membutuhkan pengembangan dan penerapan sistem perangkat lunak baru di hadapan segera aplikasi / sistem perangkat lunak (warisan) yang ada. Ini menyiratkan bahwa setiap arsitektur perangkat lunak baru harus memperhitungkan dan hidup berdampingan dengan perangkat lunak langsung yang sudah ada.

(dari http://en.wikipedia.org/wiki/Brownfield_(software_development) )

Bombe
sumber
30
"Untungnya Google tidak down untuk saya, jadi saya dapat menemukan definisi berikut hanya dalam beberapa detik." - Persisnya mengapa pernyataan ini dibutuhkan? Saya dapat memahami bahwa Anda merasa terganggu oleh pertanyaan 'sederhana' dan menambahkan ini karena frustrasi atau sesuatu, tetapi mengapa menambahkan pernyataan itu kembali setelah dihapus?
AgentConundrum
8
Saya setuju dengan @AgentConundrum. Ini sekarang adalah hasil kedua yang dikembalikan Google. Kurangi komentar itu.
Rob Bell
6
Itu karena saya masih berpendapat bahwa orang perlu belajar menggunakan Google sebelum mencoba hal lain. Anda tahu, memberi seseorang ikan vs. mengajari seseorang memancing.
Bombe
17
@Bombe, apakah Anda tidak menyadari bahwa itu adalah konten yang mengisi google? Oleh karena itu Anda membutuhkan jawaban di suatu tempat agar dapat ditemukan di google ... Anda menemukan artikel wiki di google, tetapi jika google memiliki jawabannya, mengapa artikel wiki perlu ditulis?
Hari Robin
31
Lucunya. Saya menemukan ini sekarang, melalui Google. Tautan pertama. ;)
Ibsonic
13

Saya pikir ini mungkin terkait dengan istilah perencanaan kota "lahan greenfield" dan "lahan brownfield" . Lahan Greenfield adalah lahan yang belum dikembangkan - pertanian, lansekap, atau alami. Lahan Brownfield adalah lahan yang dikembangkan.

Aplikasi brownfield adalah aplikasi yang sudah ada, sedangkan aplikasi greenfield adalah aplikasi yang belum dibuat atau sedang dalam tahap pengembangan yang sangat awal.

Thomas Owens
sumber
Setidaknya masuk akal. Tapi bagaimana Anda bisa mendapatkan aplikasi brownfield? Bukankah aplikasi dibangun dari awal? Kapan itu menjadi brownfield?
Svish
2
Aplikasi brownfield biasanya mengacu pada peningkatan besar, atau pengembangan kembali aplikasi yang ada di mana ada masalah kompatibilitas mundur ke format file yang ada, antarmuka, modul, dll. Terkadang aplikasi brownfield akan dijadikan greenfield dengan memutuskan untuk mengabaikan semua pertimbangan mundur kompatibilitas dan mulai segar.
Jeremy Bourque
1
Brownfield akan menjadi peningkatan besar atau penulisan ulang yang kurang lengkap dari aplikasi langsung yang ada. Dengan kata lain, kode warisan.
APC
4

Aplikasi Greenfield: pengembangan baru, tidak ada pekerjaan sebelumnya yang dilakukan yang menimbulkan kendala pada solusi Anda. Saya pikir istilah itu berasal dari bidang yang tidak "dibajak, hijau".

Brownfield: aplikasi yang sudah ada, banyak hal yang perlu dipertimbangkan, dll.

Lihat posting ini .

tijmenvdk.dll
sumber
2

Saya rasa ini analogi dengan membangun

  • sebuah situs greenfield masih perawan - yaitu proyek baru, memulai proyek perangkat lunak baru dari awal
  • sebuah brownfield situs adalah salah satu di mana struktur yang ada perlu dibongkar pertama, yaitu bangunan dalam proyek perangkat lunak yang ada
Paul Dixon
sumber
2

Berdasarkan apa yang saya ketahui tentang James Gregory (orang di belakang Fluent NHibernate), menurut saya entri Wikipedia untuk brownfield sedikit di sisi teoretis. Dalam Pengembangan Aplikasi Brownfield , kami mendefinisikannya sebagai:

proyek, atau basis kode, yang sebelumnya dibuat dan mungkin terkontaminasi oleh praktik, struktur, dan desain yang buruk tetapi berpotensi untuk dihidupkan kembali melalui pemfaktoran ulang yang komprehensif dan terarah

Versi singkat: Proyek yang sudah ada yang membutuhkan pekerjaan tetapi masih dikembangkan secara aktif (tidak seperti kebanyakan sistem lama).


sumber
2

Ada banyak perdebatan seputar keputusan perusahaan untuk 'greenfield' atau 'brownfield' atau kode warisan refactor.

Keputusan perlu dibuat dengan mempertimbangkan banyak faktor - tidak terkecuali dana yang tersedia untuk mengembangkan aplikasi greenfield. Dalam banyak kasus, aplikasi lama adalah uang tunai perusahaan saat ini dan setiap penggantian greenfield dari kode warisan itu tidak akan menghasilkan satu dolar merah pun sampai dikembangkan sepenuhnya dan berada di tangan pelanggan yang membayar pertama.

Meskipun preferensi bagi sebagian besar insinyur perangkat lunak adalah MULAI PROYEK FIELD HIJAU BARU karena mereka biasanya membenci OPC (Kode Orang Lain), hal itu mungkin tidak selalu dalam keuangan jangka panjang perusahaan.

Saya menulis artikel yang menganalisis risiko yang terlibat dengan proyek greenfield berdasarkan pengalaman nyata di perusahaan tempat saya bekerja selama 20+ tahun yang lalu (menunjukkan usia saya sekarang;). Anda bisa membacanya di sini:

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

Volksman
sumber