Is it actually possible to develop software without also architecting it?
|
Yes, and either:
or
|
|||||||
|
|
Software Architects who become too disconnected from the actual coding process become ineffective. They must be developers themselves. As Uncle Bob Martin once put it:
http://s3.amazonaws.com/hanselminutes/hanselminutes_0171.pdf |
|||||||
|
|
No, developer and architect are not completely separate roles in a healthy development organization. Having either architects who never lower themselves to the code, or developers who never think about the architectural impact of the changes they make is a recipe for misunderstanding, "othering", and inefficiency. They're usefully separate conceptual glasses through which to view the world but you can't usefully do one and never the other. |
|||
|
|
It can be seen that the term "development" is a general word for the entire process. If broken apart it consists of:
In that regard I'd say it is rather unlikely that you will develop software without "architecting" it in one way or another. Anyway, the terminology about programming process is notoriously imprecise. Developing, implementing, coding, designing, architecting, it all is used and misused on a daily basis. Don't think much of it. And yes, the meaning is also subjective. Whatever a word means, often depends on a person who's saying it. |
|||
|
|
|
To answer the headline question: Yes At least in so far as they don't have to be done by the same person - a team might have one architect and several developers who work at a lower level. Pragmatically an architect has to have reasonably current development skills and I suspect in most cases contributes to the development at a design and code level. Frequently for smaller projects you do everything. But for a big project? It can be enough to do on its own. But... when I had a dev team - I was doing architecture (or at least making architectural decisions) but doing very little dev work - company of 8, dev team of 4 including me... not a lot of opportunity for me to concentrate on coding whilst ensuring that the other 3 devs had requirements and specs and were able to work on stuff without interruptions whilst having their questions answered promptly. |
||||
|
|
|
In my understanding, some, but not all, developers are also architects. An architect who is not a developer (i.e. doesn't code anymore) is possible, but IMO likely to create more problems than he actually helps solving. |
|||
|
|
|
Architect is a reference to the real architecture science and the meaning of that is that you have to think and PLAN for what you are doing before doing it. In architecture those principles are (since the Babylonians):
I guess that in IT if you apply the same principles before developing your software you may be called as well an architect. |
|||
|
|
