“There was a certain wisdom in doing little, when one was obliged to act in ignorance.” - C.J. Cherryh I ran across this quote a few days ago and was struck by how apropos it was to our field. Early in a project, especially, we're surrounded by unknowns. We're often working for a new business, sometimes in an entirely new business domain. The client's technical ecology is typically unknown to a large extent. We generally have an idea of our goal architecture, but the language that we use (often that initial idea is called a “Notional Architecture”) highlights the fact that we don't know what the system will really look like in the end. Yet, we must act – the client needs the new system and some of what we are ignorant of we will only learn through the experience of implementing what we do know. So we act. Over the last decade or so, we've increasingly used Agile methods that support, that demand, small rather than large actions on our part. We start with what we know and show the customer, who then points out our faulty assumptions. We interpolate from what we've learned and implement that, leading to more knowledge of the exceptions to those rules we interpolated from. We extrapolate what the system should do when presented with situations outside of those rules, and do our best to vet and test that behavior. After a few act-learn cycles we usually find that we have a system that's doing the right thing and, better yet, is taking on a coherent shape behind the scenes. Our architecture is becoming clearer as our knowledge grows. We've hit our rhythm, found our stride, and confidence grows. It's a beautiful time in a project.