|
A software architect is a good programmer and thinks ahead how the parts interoperate, whether or not the system is extensible and has good judgement to predict performance.
A "software architect" which is not a good programmer is a disaster. One cannot have guts feeling about interoperability, extensability and performance without the skill to actually build the pieces. The grounding would be missing. While a manager can compensate not being a top-notch expert by using people skills, listening skills and listing to the best engineers, an architect cannot. Without the skills one makes a fool out of oneself when trying to tell professionals how to do their work. Well, the syntax details of a language might be the one thing which does not matter.
A good software developer can do or is in the process of learning to do software architecture. But mediocre software developers can still code an algorithm without understanding the bigger picture.
|
|
|
|
|
Thanks for your input. I totally agree with you on:
Chris Jacobi wrote: A "software architect" which is not a good programmer is a disaster.
Many of us have suffered under "Architects" who could not code their way out of a wet paper bag.
They create grand visions of Rainbow Unicorns which cannot be created in code and then we devs have to build code that creates the program anyway.
|
|
|
|
|
Mmmmmmm!
Are there any Software Architects here?
Software Architect?
Well, architects design things. We in the software industry are often compared to those in the building industry, but I think that the software industry is closer to the movie making industry, and the software architect more like the director (who might some times take a role and act!)
But what makes a Software Architect?
Firstly, a Software Architect must understand the full Software Development Life Cycle(SDLC) AND where in that cycle they operate.
Like a movie, each software application has a life cycle.
Like a movie, a software application can be used over and over by the end user.
Unlike a movie, a software application can be changed in it life cycle and continued to be used by an end user. (although there can be a Director's Cut)
To make that happen, players in the SLDC must understand their role as well as the SDLC.
So who are these players?
There are 5 major players and under each of them are teams of other players.
These are:
Project Manager:
Team of Sub-Project Managers
Scrum Master or some other project methodology champion.
Business Process Manager:
Team of Business Process technicians
Team of Business Analysts
Software Architects:
Software Team Leads
Teams of Senior Developers and Developers
Quality Assurance Manager:
Team of Testers
Team of Technical Writers
Enterprise Architect:
Change Control Team
Team of DBAs
Team of System Engineers
Support Manager
Team of software Support staff
So now the 5 major players are going have a virtual conversation for the life of the software application.
The initial build of the software application will be done in a project, then later it will be Supported and enhanced in patches.
The idea for the project will come from a customer, either internal to the organisation or external to the organisation.
The Business Process Manager( or members of she/his team) will determine if the idea is feasible for the organisation.
If it is, the Project Manager will form a project team.
The Project Manager will be interested in three things:
How long will it take?
How many resources(both human and non-human) will it take?
How much will it cost?
The Software Architect will need the other players to help answer these questions.
Although, the Software Architect won't be able to give a complete picture, she/he will be central to the decisions been made.
The Software Architect will need to ask the Business Process Manager questions like:
What processes and how many are needed (broad strokes first then more finer detail later)?
Will this application be for internal organisation users or an application used by external users?
How many transactions per minute(TPM)?
More than 50,000 TPM may require a separation of Web farm from Application farm.
This would mean an increase in hardware usage and a different Architecture for the application.
How many features are to be available as Services to external "users" or internal "users"?
Such questions will lead to the type of developers required and how many.
The Software Architect will need to ask the Enterprise Architect questions like:
Do we need a perimeter network(for secure external user activity) and if so, do we have one already built?
Do we have enough servers/desktops for Development Environment, System Test Environment, User Acceptance Test Environment, Stress Testing Environments?
Can we use internal servers or can we use a Cloud infrastructure?
Which database can be use and do we have DBAs to provision databases for the environments and support those databases?
Which Internet Web Server(IIS or Apache/Tomcat) can be used?
What security standards need to be adhered to?
What is the Change Control procedure?
Do we have support staff for the released product and to assist in testing?
Such questions will lead to the type of application that will be built.
The Quality Assurance Manager will want to ask the Software Architect questions such as:
How often will we get builds, daily, weekly etc?
How can we communicate the feature functionality between Dev and TEST teams?
How do we report issues?
How do we perform Stress Tests, Performance testing, regression testing after version updates etc?
Such questions will lead to the amount of time and effort the development team will need to spend on testing: QA
After answering all the above, Developers will want to ask the Software Architect questions such as:
What are the application's tiers/layers?
If this is a web application, which browsers( and base versions) are targeted and what tools are to be used e.g. AngularJS, requireJS, KnockoutJS
If not a web application, which client front-end framework is to be used?
What Server language will be used?
Is it a Server pages or Web API or services (WCF) or RestFUL or MVC or other combinations?
Are we to use a IoC/DI framework, if so which one?
Do we use Aspect Oriented Programming(AOP) for cost cutting concerns.
Are we using Test Driven Development, if so which Unit testing tools are to be used?
Are we using Model Driven or Behaviour Driven development, if so what do the models look like and how are the behaviours managed?
Are we going to use a database/code object-relational mapper(ORM), if so, which one and is it to be database first, model first or code first?
What is the standard for user security and what tools are to be used?
What Caching mechanism is to be used?
How is the solution to be laid out?, ie:
Different projects for web projects, Interfaces, Data Models, Services, Application Logic, DALs
Which source control framework is to be used?
What is the deployment tool?
Are we to use Continuous Integration and Continuous Deployment.
Now these are just some of the questions a Software Architect needs to address on a day to day basis.
The Software Architect must also be able to explain the architecture and convince others of the soundness of the decisions that have been taken.
The Software Architect must also be able to converse with the CEO, CIO and end users in terms that these stakeholders can understand.
Through this whole post I have not mention once that the Software Architect should code.
But I have a firm believe that good Software Architects used to be very good Senior Developers with decades of programming experience in a wide variety of industries in numerous organisations.
Good Software Architects will WANT to code, because they love it!
So to the question: Are there any Software Architects here?
If you answer all the above questions on a day to day basis and also do some coding that is used by programming teams, you can call yourself a software architect.
If your resume looks like this post, then chances are you are a software architect.
Although Oracle and Microsoft have certifications that have architect in their title and others that cover the coding techniques required to answer some of these questions, neither has a certification that directly covers the tasks of a software architect.
The universities in my country don't have a Diploma or Degree that covers the breath of what a software architect does, although they do have Masters Degrees that covers Project Management and Business Process Management.
This is strange really, since Software is at the heart of what I.T. does (else those computers would just use electricity), and is at the heart of an organisation's procedures.
So you won't find a qualified Software Architect with a certification in Software Architecture or a degree on Software Architecture.
Software Architects are made from their own application to building successful software applications and continuous self-learning (ie reading books, blogs and threads like this one).
As I said, they( and I ) just love it!
Kindest Regards
frazGJF
frazGJF
modified 27-Jan-15 21:00pm.
|
|
|
|
|
Thanks for your great input. You are right about the Architect needing to know a little (and a lot) about everything. That's why -- as you indicated -- the Architect must really enjoy tearing the business apart and re-assembling it from every angle.
Because all of the pieces are connected and the software solutions we create are really just automating the business, every piece is entwined with every other piece. It creates a lot of complexity.
That's probably a big part of why companies get so overwhelmed by the whole thing, often lose their focus and then fail on projects.
|
|
|
|
|
Companies get overwhelmed by the complexity, rather than lose focus.
They seem to lose focus when what is really happening is that they are searching for the next "guru" that will give them the "silver bullet" solution.
Managers need to be more educated as to what the SDLC is and what the impact is on building software in-house. Normally when companies build software in-house they have moved away from their core business activity into a realm that they really do not understand.
(I am not advocating outsourcing, but I am advocating educating senior managers)
|
|
|
|
|
frazGJF wrote: Managers need to be more educated as to what the SDLC is and what the impact is on building software in-house.
frazGJF wrote: Normally when companies build software in-house they have moved away from their core business activity
Those are both very good and valid points.
|
|
|
|
|
Good analyse with consistent arguments. I agree with you... up to "Good Software Architects will WANT have NOT to code, because they love it must find the best coders and must recognize their best solutions for the project which he defines with its best experiment!" So I agree for its huge culture! But it doesn't have to be a good Mason but just know what a Mason can do best and how to do it."
entia non sunt multiplicanda praeter necessitatem
|
|
|
|
|
I still believe that "Good Software Architects will WANT to code", whether they actually get the time to do that is another story.
You seem to be arguing that an Software Architect does not need to know how to "code up an enterprise level solution".
That I would total disagree with!
Enterprise level software applications are too complex to only theorise about their design, without practical long term hands on experience in actually building solution experience.
Therein lies the issue and the problem senior non-technical managers face today: having to listen to "software architects" that have never "coded up an enterprise level solution".
The lack of University level master degrees (unlike Building Architects)
AND an industry that is still more craft than science ( at enterprise business solutions)
(not even a software apprenticeship like Masons have)
AND the technical complexity that are in enterprise software solutions
can only really be counted by the Software Architect having decades of hands on, wide ranging (different business, different industries), in-depth experience.
Without that experience, the Software Architect will be relying upon Senior Developers to perform tasks he/she should do or to know answers to issues that he/she should know or lead non-software stakeholders to the correct solution when he/she should convince and lead.
I think that a great deal of thought needs to go into this.
Also, don't confuse the "Solution Architect" with the Software Architect as they are completely different. The "Solution Architect" deals with the Business Solution, not the Software, Hardware, Networking Solutions.
Regards
frazGJF
|
|
|
|
|
No not the stupid elections, this -
Greek singer Demis Roussos, who sold more than 60 million albums worldwide, has died aged 68 the Hygeia Hospital in Athens has confirmed to the BBC.
And on a totally unrelated note, the page also has these two worrying facts -
Aunty: To make you feel old, Britney Spears scored her first number one on the US Billboard chart 16 years ago this week, with the ellipsis-assisted ...Baby One More Time.
To make you feel even older, Blondie's The Tide Is High was number one 34 years ago this week!
veni bibi saltavi
|
|
|
|
|
and, that song was first released in 1967[^].
|
|
|
|
|
reaching for my Geritol....
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Success. I feel old now.
|
|
|
|
|
The first African born solo artist to get to No 1 in the UK
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
Aunty: To make you feel even older, Blondie's The Tide Is High was number one 34 years ago this week! Ah, at least I don't know this one I feel younger already
--
"My software never has bugs. It just develops random features."
|
|
|
|
|
Obligatory XKCD[^].
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Caveman[^] invented music millions of years ago.
|
|
|
|
|
|
I have to be honest, I run Java software and develop using Java, and I don't recall the Ask? problem for many moons.
veni bibi saltavi
|
|
|
|
|
It's blighted every update I've seen at home (on the infrequent cases where I connect a screen to the normally headless box I have a java bot running on) and work for years (on the even rarer cases when Corporate IT decides the last version they bothered to push is exploity enough to be worth updating).
If you know where to find an updater that will install a version that doesn't prompt to install malware every time, please let me know where it's available from.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
Dan Neely wrote: If you know where to find an updater that will install a version that doesn't prompt to install malware every time, Steady on; it's not malware.
Cr@p-that-nobody-in-their-right-mind-would-want-ware, but not malware.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Control Panel -> Programs -> Java -> Advanced -> Miscellaneous -> Suppress sponsor offers when installing or updating Java
veni bibi saltavi
|
|
|
|
|
TY. I've sent a suggestion that IT should see if they can use their management tools to make that the company default setting.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
Thank you! That looks incredibly useful. I just hope it works.
According to my calculations, I should be able to retire about 5 years after I die.
|
|
|
|
|
i do not have that option !!!
I'd rather be phishing!
|
|
|
|
|
You're a bluddy star!
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|