Are Software Architects Still Relevant?

Are Software Architects Still Relevant?


John: Hey, John Sonmez from simpleprogrammer.com.
I got this question about software architects. Basically the question is are software architects
still relevant today. I’ve gotten a couple of people that have asked this so I figured
I’d talk about the role of the software architect and where I see it.
A lot of people are talking about how software architects are—why software architects are
employed in this new age of agile development in cloud computing. So a lot of teams, development
teams basically use an Agile process where they don’t necessarily have roles or everyone
wears different hats so where does the software architect play into this so that’s a good
question. I think that it’s kind of weird because this is one of the failings of kind
of Scrum and Agile methodology is that we tend to—I like the iterative development
process, I like the idea of taking something and building on it and really the whole Agile
idea or only building what’s necessary and talking to the customer and getting feedback
and iterating. But a lot of times we need architecture, we need to plan upfront as well.
I think we’re going to get to a point where we eventually can sort of take both these
ideas and find the middle ground. I always talk about this idea and it applies especially
in software development. It’s like this pendulum, right? The pendulum swings one way
and it swings the other way. We have lots of different pendulums where we go from one
direction like for example everything was desktop apps then we went to the web, then
we went to mobile apps, and then now we’re trying to make the web look like mobile apps
or make the web look like desktop apps. Things go back and forth, technology does.
I think the same thing happens with this—is going to happen with this whole idea of kind
of the waterfall methodology where we’re designing everything and planning everything
and engineering everything upfront whereas on the Agile Scum side we’re kind of swung
all the way the other way and we’re like, “No, we don’t need architects. We don’t
need plans. We’re just going to go and build the software.”
There are merits to both of these things but every time that this pendulum swings back
and forth it also swings forward, right? It’s three dimensional so it’s going forward
and closer. We’re actually making process as we go from extreme to extreme. I think
that’s what’s going to happen here. Right now the role of a software architect
is sort of weird in these Agile teams because you can’t really have that authoritative
role. Different peoepl have to assume that. I do think that software architects are relevant
though and that we’re going to see more and more of this. I think what we’re going
to see is probably teams where they have sort of an architecture type of team, especially
in bigger organizations that kind of set the pace for the rest of the company and the software
project being worked on. I think that role is still important because
when you think about it it’s—all developers should know how to do software architecture
to some degree, but it’s a very still specialized and custom role. You have to understand more
than just writing code and writing algorithms to be able to do software architecture and
a lot of that comes from experience. You can’t just take one person on the team
that has not experience and doesn’t know architecture and an experienced architect
who has been doing this for a long time and have them have the same kind of power or rights
or voting rights in the project. You’ve got to be able to somehow take that software
architect’s experience and role and make that be useful to the team. Otherwise you
end up with sloppy architectures that aren’t thought out ahead of time.
I think this is a really good question. I don’t have a perfect answer for this actually
at this point, right? Right now I can’t figure out where to put a software architect
on a Scrum team or an Agile team except to put them over it and kind of violate the rules
of that. Like I said, I don’t think we have a working system right now that actually is
optimal. I think we’re going to get there eventually. For now if you have plans of being
a software architect I think it’s a totally fine way to go. You have to realize though
that what is not going to be acceptable going forward is being the kind of, what do they
call it, the white tower architect where you basically can’t code but you just design
the system. You’re going to be expected to be able to code as well. It’s more now
that you would be specializing in architecture but you can still do the other functions.
We’re becoming more so that software developers have to have a larger baseline of skills.
They have to be able to do some testing and QA and understand that they have to be able
to do some architecture and they have to be able to code.
You could choose—I think what I would envision is seeing that people have different skills
in different areas. Maybe if you’re in QA you have—the testing skills are kind of
higher. If you’re just doing programmer then that skill is higher. If you’re doing
the architecture that skill is higher but you have all 3 of those skills.
Yeah, I think software architects are still relevant but we’ll see what happens in the
future. All I know is that we’re not going to build software without some kind of architecture
so that role is going to be required and I know that the skills required to have good
software architecture are skills that come from experience. They don’t just come by
random chance. They have to be practiced and developed over time and not everyone has those
skills. Yeah, I hope that answers your question. Like
I said, I don’t have an absolute answer for this. I can’t really tell you if you
should specialize in being a software architect or if that even makes sense, but the role
has definitely changed and it will change in the future. Anyway, thanks for that question.
That was a good question for all of you that have asked that question. If you’ve got
a question for me email me at [email protected] Don’t forget to subscribe to the channel.
Take care.


10 thoughts on “Are Software Architects Still Relevant?

  1. Really a good question and I can help with my own experience. I'm currently working at Software Architect role in my company and we adopt an Agile methodology.
    What I can say is that as a Software Architect the architectural phase happens very early in a project and here we use it even before sell a project. When we are planning how to sell a project is important to consult the Architect in order to have an idea of how this project will be and witch resources will be used.
    After the start of the project the very first sprint is basically architectural phase with some design before start programming. On other sprints the architect starts to work as a Senior Developer, working as developer and mentoring other developers, guiding them to stay focused on the code architecture.
    Sometimes, very few, a project need to change the architecture when it proves that initial one was not ideal, at this time the architect needs to review and do changes to get the project back to track.

  2. I totally agree with you that every project needs some kind of planning. The larger the project, the more planning is needed. But that is not the same as saying that large projects need to be waterfall at all. The agile community is talking more and more about Scaled Agile, SAFe. The SAFe have a concept called the Architectual Runway, where the skeleton of the applications are planned. No matter what, the role of architect, going from enterprise architects, solution architects, application architects, security to infrastructure architects is still very much needed. The difference must lie in the way things are communicated and value is created. In the waterfall world, a bunch of architects often said in the "white tower" and made lots of great ideas, but they rarely talked with the delivery teams about the ideas. And the only way to make value from ideas is to make sure the delivery team understand them.

    When should the architecture happen then? My take is, that there need to be some architecual planning before the project starts – in the Architectural runway "phase". But one of the main parts of agile is that nothing is set in stone, so the architect must evolve from the initial thoughts. Thats also why the documentation of the architecture consist of only what is necessary to communicate the thoughts – and that is typically a few diagrams.

    Another point related to this is the devops work. In order to ensure that products can be deliered after every sprint, the entire devops infrastructure must be up and running – andd thats not an easy task, especially if the team is new to continous delivery. As with the architectual runway, I believe there should be an devOps runway, where the entire work from checkin to delivered code can be planned and tested, so the delivery team can make use of it from day one.

    Thanks for a great podcast. Listening to every episode.

    Cheers,

    Kaj

  3. If you have AN agile team, it's true that you don't need an architect – it can be a shared role on THE team. Architecture is not big design up front, though. It's a matter of design coherence and goes on over time just like implementation and domain model evolution. If you are in an organization with multiple teams needing to build autonomous pieces with an overall coherence to serve the needs of a larger domain, those teams should be focused on their own subdomains. Someone needs to have the big picture in view. The role of the architect becomes that of keeping the bigger picture coherent and aligned, making the decisions that cross team boundaries, creating or planning for cross-cutting concerns, and acting as a consultant or extra coding muscle to teams with immediate needs.

  4. I think this is an important question. In fact, I wrote a post about – http://wp.me/p6WNPk-1z. Different companies and teams may arrive at different answers, but it should be a thoughtful answer regardless of the decision.

  5. Why insist on being called architects? Why can't you call yourselves Computer Scientists, Information Technologists, Information Scientists or Computer Engineers instead of being QUACK architects? Those titles fully fit your degrees and career. You may even fully professionalise your degrees by having licensing examinations just like real architects and real engineers. Are you ashamed of your degrees and are you afraid of licensing exams?

  6. To become relevant, you should change your name to Computer Scientists and be state licensed by having a state sponsored professional licensing exams. Stop being QUACKS and ARCHITECT WANNABES.

Leave a Reply

Your email address will not be published. Required fields are marked *