Is de toekomst van development brown field development?

Brown field development - working with existing codebases

Bart van der Wal, augustus 2025.


De software development wereld verandert snel. Waar we vroeger vooral nieuwe applicaties bouwden (green field development), werken ontwikkelaars tegenwoordig steeds vaker met bestaande codebases (brown field development). Deze trend wordt versterkt door de opkomst van AI-tools en de volwassenheid van de software industrie. In deze blogpost verkennen we waarom brown field development de toekomst is en wat dit betekent voor ontwikkelaars.

Green field vs Brown field development

Green field development betekent het ontwikkelen van een compleet nieuwe applicatie vanaf nul. Dit is wat startups doen in hun beginfase en wat je meestal leert in het onderwijs - "File → New Project". Het is spannend en creatief werk, maar in de praktijk doen ontwikkelaars in grote bedrijven dit maar zelden.

Brown field development daarentegen betekent het toevoegen van features aan een bestaande applicatie. Je werkt met legacy code, bestaande architecturen en moet begrijpen wat er al staat voordat je iets nieuws kunt toevoegen.

Waarom de verschuiving naar brown field?

1. Volwassenheid van de software industrie

De software industrie is volwassen geworden. De meeste bedrijven hebben al jarenlang software draaien en hun applicaties zijn complexe ecosystemen geworden. Nieuwe features worden toegevoegd aan bestaande systemen in plaats van nieuwe applicaties te bouwen.

"In veel grote bedrijven doen veel developers maar heel zelden 'File → New Project'..."

2. Microservices: een kleine tegenbeweging

De adoptie van microservices heeft wel een kleine tegenbeweging veroorzaakt. Hier start een software architect vaker een nieuw project, simpelweg omdat het totale systeem bestaat uit samenwerkende microservices, waar significant nieuwe features en toepassingen in een nieuwe microservice komen. Maar omdat deze wel in het landschap moet passen, en enige vorm van 'consolidated technology' wel handig is (standaard talen en tools gebruiken), start een nieuwe microservice vaak als een kopie van een bestaande service of een variant op een bestaand patroon.

3. Legacy systemen en LTS

Brown field development betekent vaak werken in oude codebases - soms nog in COBOL of Fortran, maar ook in oudere versies van .NET of Java. In het bedrijfsleven is werken met LTS (Long Term Support) versies de standaard, niet de nieuwste technologieën.

AI en de opkomst van "Code Monkeys"

Met AI-tools zoals GitHub Copilot en Cursor neemt AI een deel van het programmeerwerk over. De "code monkey" taken worden geautomatiseerd, en ontwikkelaars komen pas om de hoek kijken als er dingen niet werken. Dit is per definitie brown field development.

Vibe Coding: de nieuwe trend

De trend van "vibe coding" - waarbij niet-programmeurs kunnen programmeren met AI-tools - is door ervaren software engineer Dave Farley (auteur van 'Continuous Delivery' en 'Modern Software Engineering') al afgewezen als "the worst idea of 2025".

Het probleem is dat AI wel code kan genereren, maar de kwaliteit en robuustheid vaak te wensen overlaten. Je kunt wel prompten dat de AI "robuste code" moet schrijven of "unit tests met hoge coverage", maar de realiteit is dat AI net als mensen fouten maakt.

De wet van code lezen vs schrijven

Er is een vaste wet in software development: een ontwikkelaar leest meer code dan dat hij schrijft. Dit wordt alleen maar sterker met brown field development. Je moet bestaande code analyseren, begrijpen en debuggen voordat je nieuwe features kunt toevoegen.

Cognitive Load: het echte probleem

Het echte probleem met brown field development is cognitive load - hoe veel een ontwikkelaar moet denken om een taak te voltooien. Volgens zakirullin's cognitive load theorie is dit een fundamentele menselijke beperking:

"Cognitive load is how much a developer needs to think in order to complete a task."

Wanneer je code leest, houd je variabelen, control flow en call sequences in je hoofd. De gemiddelde persoon kan ongeveer vier van zulke "chunks" in het werkgeheugen houden. Zodra de cognitive load deze drempel bereikt, wordt het veel moeilijker om dingen te begrijpen.

Het probleem met AI gegenereerde code

AI tools kunnen code genereren, maar ze begrijpen vaak niet de cognitive load die ze creëren. Ze kunnen complexe patronen implementeren zonder te beseffen hoe moeilijk dit is voor andere ontwikkelaars om te begrijpen.

De toekomst: specialisten in cognitive complexity

In de toekomst zullen goed opgeleide ontwikkelaars steeds vaker worden ingevlogen om codebases te repareren en uitbreidbaar te maken. Ze zullen experts worden in:

  1. Cognitive complexity reductie - het verlagen van de mentale belasting van code
  2. Refactoring - het herstructureren van code zonder functionaliteit te veranderen
  3. Code review en kwaliteitscontrole - het controleren of AI gegenereerde code daadwerkelijk robuust is

Wat betekent dit voor jou als DevOps student?

In de minor DevOps van de HAN ga je vooral brown field development ervaring opdoen. Dit is bewust gekozen omdat:

Je leert werken met bestaande codebases

  • Week 1: Je werkt met bestaande Java/C# projecten en voegt functionaliteit toe
  • Week 2: Je containerized bestaande applicaties
  • Week 3: Je implementeert CI/CD pipelines voor legacy systemen
  • Week 4: Je orchestreert bestaande microservices

Waarom brown field in plaats van green field?

  1. Realistische werksituatie: 90% van je carrière werk je met bestaande code
  2. Cognitive load management: Je leert omgaan met complexiteit en legacy code
  3. Incrementele verbetering: Je leert systemen stap voor stap te verbeteren
  4. Team collaboration: Je leert samenwerken in bestaande codebases

De vaardigheden die je ontwikkelt

  • Code reading: Begrijpen wat bestaande code doet
  • Refactoring: Code verbeteren zonder functionaliteit te breken
  • Integration: Nieuwe features toevoegen aan bestaande systemen
  • Testing: Unit tests schrijven voor legacy code
  • Documentation: Bestaande documentatie begrijpen en bijwerken

Maar ook: kansen voor green field development

Hoewel je in deze minor brown field ervaring opdoet, zijn er ook belangrijke kansen voor green field development in nieuwe, maatschappelijk relevante domeinen. Waar de knapste koppen voorheen bezig waren met advertentie-optimalisatie en sociale media algoritmes, liggen er nu kansen voor projecten die de mensheid op lange termijn helpen:

Maatschappelijk relevante domeinen voor HAN pijlers Slim Schoon, Sociaal:

Deze domeinen sluiten aan bij de drie zwaartepunten van de HAN: Slim (Smart Region), Schoon (Sustainable Energy & Environment) en Sociaal (Fair Health) (HAN University of Applied Sciences, z.d.). Hier liggen kansen voor projecten die de mensheid op lange termijn helpen:

  • Milieu en duurzaamheid: Plastic soup opruimen, klimaatverandering aanpakken
  • Duurzame energie: Zonne-energie optimalisatie, waterstof technologie
  • AI Alignment: Het "alignment problem" oplossen zodat AI de hele mensheid helpt
  • Gezondheidszorg: Preventieve geneeskunde, personalized medicine
  • Onderwijs: AI-ondersteund leren, toegankelijk onderwijs

Deze domeinen hebben vaak nog geen bestaande ICT infrastructuur. Hier kun je de vaardigheden die je leert in brown field development (cognitive load management, code kwaliteit) toepassen op betekenisvolle nieuwe projecten.

Green field binnen geconsolideerde technologie stack

In het beroepsproduct van de minor DevOps ga je wel degelijk nieuwe projecten opstarten. Echter wel binnen een "consolidated technology stack" die de klant aangeeft. Typisch Java of C# met Angular of React front-end.

Dit sluit aan bij het Polyglot X concept uit web-scale architectuur, waarbij microservices verschillende talen en frameworks kunnen gebruiken, maar wel binnen een geconsolideerde technologie keuze (CorporatieMedia, 2016). De nieuwe services sluiten aan via dezelfde Service Bus of andere communicatie standaard/netwerk zoals RabbitMQ en draaien als Docker containers in Kubernetes.

Voordelen van deze aanpak:

  • Flexibiliteit: Verschillende teams kunnen verschillende talen/frameworks gebruiken
  • Consolidatie: Beperkte set van goedgekeurde technologieën
  • Interoperabiliteit: Alle services communiceren via gestandaardiseerde interfaces
  • Deployability: Uniforme containerization en orchestration

Qua taal en framework kun je variëren, maar de infrastructuur en communicatiepatronen blijven consistent. Dit is een praktische toepassing van brown field principes in een green field context.

Tools en technieken

Moderne ontwikkelaars moeten vertrouwd zijn met:

  • Refactoring tools waar AI nog niet goed mee samenwerkt
  • Code analysis tools die cognitive complexity meten
  • Architecture patterns die cognitive load verminderen

Green field browser: een nieuwe trend

Een interessante ontwikkeling is de "green field browser" - een browser die zichzelf automatisch update naar de nieuwste frameworks en libraries. Dit is een op zichzelf staande definitie die verschilt van traditionele brown/green field development.

Hoewel dit concept nog in ontwikkeling is, toont het een belangrijke trend: applicaties in een AI-gedreven setting kunnen zichzelf updaten naar de laatste frameworks, zolang de kern functionaliteit maar Clean Code is met bijvoorbeeld een Hexagonal Architecture en onafhankelijk is van frameworks.

Belangrijke principes:

  • Plain Old Java Objects (POJO) of Plain Old C# Objects (POCO): Domeinmodellen die onafhankelijk zijn van frameworks
  • Hexagonal Architecture: De business logic is gescheiden van externe dependencies
  • Dependency Inversion: De applicatie hangt niet af van concrete implementaties
  • Framework Independence: De kern functionaliteit kan gemigreerd worden naar nieuwe frameworks

Dit betekent dat je applicatie "green field" kan blijven, zelfs als de onderliggende technologieën veranderen. De AI kan dan automatisch nieuwe adapters genereren voor nieuwe frameworks, terwijl de business logic intact blijft.

Conclusie

Brown field development is niet alleen de toekomst - het is al de realiteit voor de meeste ontwikkelaars. De uitdaging ligt niet in het schrijven van nieuwe code, maar in het begrijpen, onderhouden en uitbreiden van bestaande systemen.

Met de opkomst van AI-tools wordt de rol van de ontwikkelaar verschoven van "code schrijver" naar "code analist en architect". De vaardigheid om cognitive load te verminderen en complexe systemen begrijpelijk te maken wordt steeds waardevoller.

Voor studenten betekent dit dat ze niet alleen moeten leren programmeren, maar ook moeten leren hoe ze bestaande code kunnen analyseren, begrijpen en verbeteren. Brown field development skills worden essentieel in de moderne software industrie.


Bronnen:

  • Zakirullin (2025). Cognitive Load is what matters. Geraadpleegd op 28 augustus 2025 op https://github.com/zakirullin/cognitive-load
  • Farley, D. (2025). The Worst Idea of 2025: Vibe Coding. Geraadpleegd op 28 augustus 2025 op https://www.youtube.com/watch?v=1A6uPztchXk
  • Humble, J., & Farley, D. (2010). Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley Professional.
  • Farley, D. (2021). Modern Software Engineering: Doing What Works to Build Better Software Faster. Addison-Wesley Professional.
  • CorporatieMedia (6 december 2016). Info Support publiceert roman over web-scale architectuur. Geraadpleegd op 28 augustus 2025 op https://corporatiegids.nl/nl/nieuws/info_support_publiceert_roman_over_web-scale_architectuur-2541
  • HAN University of Applied Sciences (z.d.). Onze focus. Geraadpleegd op 28 augustus 2025 op https://www.han.nl/over-de-han/waar-staan-we-voor/onze-focus/
Last change: 2025-09-11