In traditional sense, an architect is one who can visualize the final building (or product) in its form and structure. It is a job that not only seeks to find creative solutions to the requirements (like space etc) but also make the solution relevant to the society, its trends and aspirations. The architect is a celebrated profession, of an innovator who sees things differently, has empathy and the smarts to come up with creative solutions.
A craftsman on the otherhand is one who brings those dreams into reality. The person who details out the drawings or smoothens out the surfaces or scrapes out sharp edges. The crafsman lives in detail, has a lot of patience and perseverence. The craftsman lives a lowly existence compared to the architect. Even though he / she may also have the creative mind to come up with the designs, is quite satisfied in finishing up the job.
So what happens when the tools of the craftsman change dramatically for the better? If the tools were to make it extremely easier for the craftsman to do the job, will the architect become a craftsman and vice-versa? This is what is happening in the field of software development at the moment. The tools are changing very fast and it is no longer possible for anyone who wishes to be on the top, to remain only a craftsman or only an architect.
How do we adopt in an ever changing landscape? In such a landscape, one must keep experimenting. It is no point sticking to a particular solution, when its relevance will soon be in question. Other strategy is to break things down to their minimalist form and start from first-principles. This way the cost of each experiment will also be reduced and the solution will remain true to its function.