
Ask HN: Who is a software architect? - kamaal
One of the ways I look at career growth is to look at the skills, duties and responsibilities at the next level and try to do that right now.<p>Given that, I wanted to know what a good software architect actually is? What they actually do?<p>Internet searches give me Jargon&#x27;ish definitions.
======
Aqueous
That's technically my title, although my company is so small (8 people) that
it is not exactly clearly defined. However, a lot of what I do is
"architect-y" in that it involves the exact planning or blueprinting of the
software that we are about to create.

I spend a lot of time leading the planning of new features for implementation.
This includes, in many cases, going through the requirements/specifications
documents and, as precisely as possible, laying out what needs to be done to
implement each feature. Since most of our applications are MVC-patterned
database-backed web applications, I start off by defining the SQL schema, down
to writing the SQL evolutions. Since the primary data structures in any given
application mimic the schema, the data structures usually follow directly from
the schema and are pretty easy to clearly define. Then, having created the
schema/model structures, it becomes a matter of defining exactly what
functions/methods need to be written, defining the function signature of each
function (we work primarily in Scala). I leave the function signatures as
stubs to be implemented by our developers. Then I create cards for our Kanban
board. Usually I create one card per unit of functionality (along with
complete unit tests) for this functionality. I also create separate sprints
for integration test of each piece of functionality. I put them in the Backlog
and assign them to each of our programmers. I then code along with my team to
rip through the cards as quickly and correctly as we can, hoping to honor my
design as much as possible while making any necessary changes when it turns
out the implementation we had planned is either too difficult or complex, or
will not solve the problem adequately.

The planning process really serves to pre-answer as many questions as possible
that would otherwise come up during the course of implementing a user story or
feature. I go down as fine-grained into the detail of what needs to be done as
possible without actually writing the implementation, so that developers have
as few questions as possible when they actually sit down to write the code.
The more questions we have pre-answered, the more clearly defined our follow-
up questions will be, the ones we encounter on the way to implementing our
design.

I hope this helps.

------
contingencies
My self-assigned title is financial systems architect ... as distinct from
pure software architecture, I see systems architecture as focusing more on the
intersection of business process, interconnections between individual software
services, hardware to run it all on, and of course individual software
services including the entire lifecycle of _conceive
/research/spec/build/test/deploy/(rebuild/retest/redeploy/)retire_. It's
basically software development with a whole bunch more levels of abstract,
where perhaps software development winds up getting less attention due to
[https://xkcd.com/1319/](https://xkcd.com/1319/)

------
padseeker
Neal Ford of Thoughtworks gave a presentation at Windy City Rails that I
really liked. While the name of the presentation does not contain
architecture, one of the opening lines of the presentation is "Who needs an
architect". I would highly recommend watching the video, I found it very
informative, and I think it would go a long way to help you figure out what a
software architect's role is;

[http://vimeo.com/75256535](http://vimeo.com/75256535)

------
alien3d
Some said company main developer which build framework by himself.but new bies
should use market framework rather then reinvent the wheel.i had to build code
from scratch and it takes lot of time.

------
sprobertson
It's a pretentious, usually self-assigned title that implies some greater
grasp of system design than your average developer. That's why I use it at
least.

------
jagawhowho
Random opinions on titles that have no definition in the software world. Good
read.

