Development PracticesDevelopment Practices
Keynote15min
BEGINNER

From greenfield to minefield: How to avoid traps of creeping complexity

The text contrasts greenfield and legacy projects, noting that every system eventually becomes legacy. It explores why software degrades over time and proposes ways for engineers to slow this decay by distinguishing essential problem complexity from accidental complexity caused by technology, people, and communication, and managing the latter effectively.

Adam Michalik
Adam MichalikRabobank

talkDetail.whenAndWhere

Wednesday, April 1, 10:15-10:30
Zaal 1
talks.roomOccupancytalks.noOccupancyInfo
talks.description
A "greenfield project" is used as a highlight in software engineering job offers. On the contrary, a
"legacy project" is considered a nightmare that nobody would choose for willingly. Yet the
moment our fingers touch the keyboard, we are creating exactly that - our legacy.

Often with a sense of purpose and pride towards our own creation, while at the same time cursing the legacy
left by others. How is it that even with the best intentions, systems tend to turn into a
Frankenstein monstrosity? How can we, software engineers and architects, reduce the rot of our
applications?

We can't build with a fully future-proof design, but we can make it age slower. I will
discuss how to separate essential complexity of a problem from accidental complexity
introduced by technology, people and communication, and show ways to manage the latter.
architecture
technology
complexity
legacy
talks.speakers
Adam Michalik

Adam Michalik

Rabobank

Netherlands

Quality freak, clean code preacher, TDD enthusiast, pair-programming practitioner. In love with Java since the start of my career, excited about devops in the last few years. Developing highly-available core systems at Rabobank.

talkDetail.rateThisTalk

talkDetail.poortalkDetail.excellent

talkDetail.ratingNotYetAvailable

talkDetail.ratingAvailableWhenStarted

talkDetail.signInRequired

talkDetail.signInToRateDescription

occupancy.title

occupancy.votingNotYetAvailable

occupancy.votingAvailableBeforeStart

talkDetail.signInRequired

occupancy.signInToVoteDescription

comments.title

comments.speakerNotEnabledComments