I have had this conversation with another designer on my team a couple of times. The kind of conversation that goes something like this: "...and then we needed to do x, and you know me, I can design anything, it is all just design, so of course I did y...."
Over the past couple of weeks I have been thinking about how much we mean when we say "anything". And why we would say "anything" at all. Could I design a ship? a spaceship? a car? a sandwich? My basic answer is going to be "yes" but with the caveat that it would take me quite some time to design some of those things. More than it would certain other people.
To some it should seem completely insane that I would even answer yes to some of those challenges, but I think I could because the design process is fundamentally the same. You need to go through the same steps regardless of whether you are designing a building or a piece of software. You do however need a different vocabulary depending on the domain you are designing within. Since I do not have any sort of vocabulary for boats and a very limited one about houses, my designs for those would either be naive or take a long time because I would have to build up the concepts and experience within those domains in order to go beyond layman terms.
A vocabulary is like a language. It is the concepts you can use to talk about a given domain. For software words like 'direct', 'desirable, 'predictable', and 'fluid' are part of our vocabulary. Part of knowing a language is also knowing its grammar which is like knowing which solutions to bring to a problem and how to stitch them together to make a whole. For us this is knowing the "dual listboxes" pattern for creating a subset from a static list and being able to extend that to work for a dynamic list/multiple sources. Or being able to recognize that in a certain situation that is not the right pattern to use.
Becoming a designer is by and large learning the design process and learning the vocabulary of at least one domain. Once you are fluent or at least reasonably 'well spoken' in one domain, acquiring the vocabulary of a second domain becomes much easier. Now you know what it feels like to know a design language, so you will have a tacit understanding of what you need in a new area. The time it takes you to learn the new language depends upon how close it is to the other languages you know and what other knowledge you can draw upon. I have lived in a few houses, been in quite a few, traveled a bit, and seen houses from different ages. I am still a layman when it comes to architecture, but should I decide to pursue that field, I will be able to draw on that knowledge while I learn the language of buildings. Should I choose to try my luck at spaceships, the amount of knowledge I can bring along is significantly smaller.
When my colleague and I say "anything" we usually mean "anything digital". Within that domain we have a rich vocabulary and it does not matter if it is a reporting service, a filter design, or an information site. They are all part of the same set of 'things'. Should you however ask us to design a house, you may end up with something quite ordinary, and you may even have to be lucky for it to work properly. Or else you would have to give us the time to learn the right language.