We want our software to be easy to change later. We want our software to accurately and adequately map to its problem domain. We want to make decisions we won't regret (too much) later. We want to build the right thing now and we want to be able to build the right thing later, with relatively minimal technical debt.Reality is chaotic and unpredictable. Our software is orderly but must bend to accommodate reality.In this talk I'll show you techniques you can use in the planning and design stages to meet current needs while designing systems that gracefully accommodate change. We'll talk about how to thread the needle between "You ain't gonna need it" and "We probably will need this (but maybe not yet)", and how to ward off unpleasant surprises.This talk is useful to engineers, designers, and product managers who are at least responsible for designing features, if not entire systems. It will be most useful for folks who architect systems (whether design or software). This talk will still be useful for folks who are growing into one of the above roles.
Andrew Ek is a principal Engineer for LaunchScout, where he uses Elixir, Javascript, and Ruby to build software. He otherwise spends most of his time helping other developers find more joy and satisfaction. Prior to being a software developer, he taught middle and high school language arts and math, and computer science at the collegiate level, and ran a non-profit where he taught poetry and taught other teachers how to teach poetry.Andrew lives in Lincoln, Nebraska, USA, with his really excellent spouse and kiddo and their remarkably photogenic cats.
https://twitter.com/ektastrophe
https://www.linkedin.com/in/andrew-ek-761aa24a/