When designing a software system, which process will you use? (like the fist step, the second step ect.)
I have been Focusing my work on understanding software systems and especially systems used to understand other software systems.
I work for a growing public company experiencing change in both its size and the size of its customers. Much of my work begins by understanding how this growth changes our available approachs to software.
I look for recognized needs that might seem far enough off that they are unlikely to become a top priority for daily development. Or I look for efforts that once seemed important but have been abandoned to address more pressing problems.
I explore a space by writing what would be called "spike solutions" in extreme programming. I might explore a problem by writing a series of spikes only to find on the third or fourth spike what makes good solutions elusive. This becomes a new problem to be solved.
I work with others, sometimes pairing, so that small discoveries can be shared with little ceremony. With each small success I look for who might own the larger project that could spin out from the work I do.
Our developers might describe our methods a "post agile" meaning that they know many agile practices and are quick to apply what they know will probably work in any given situation. I'm happy that this happens without any coaching from me.