Development PracticesKeynote15min
From greenfield to minefield: How to avoid traps of creeping complexity
The abstract explores why all software eventually becomes legacy, despite good intentions. It proposes strategies to slow system decay by distinguishing essential from accidental complexity and managing the latter through better design, technology choices, and communication practices.
Adam MichalikRabobank
talkDetail.whenAndWhere
Wednesday, April 1, 09:35-09:50
Zaal 2
talks.roomOccupancytalks.noOccupancyInfo
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.
"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.
talkDetail.shareFeedback
talkDetail.feedbackNotYetAvailable
talkDetail.feedbackAvailableAfterStart
talkDetail.signInRequired
talkDetail.signInToFeedbackDescription
occupancy.title
occupancy.votingNotYetAvailable
occupancy.votingAvailableBeforeStart
talkDetail.signInRequired
occupancy.signInToVoteDescription
comments.speakerNotEnabledComments