|
After 25 years in the industry, I've finally attained the title software architect. I'm one of two in the organization of 35 developers (single product).
In this organization, it is my job as architect to look at the big picture of software design; what is good for the application five years from now. We are an agile shop and, at least in our flavor of agile, while it has a lot of good going for it, it also encourages tunnel vision. The average developer is focused on delivering today's story without too much attention to how that implementation fits into the overall software product or the future of the software product. That's where a software architect comes in.
I'm guiding the future implementation (the "how", not the "what") to a common set of design goals. I wish every developer had some architecture chops (not all developers are created equal though). But, even if they did, someone has to make the design decisions that effect the entire application. In my designs, I usually always give a sample implementation though. I do some UML if appropriate, but more important is the design documents, presentations, and samples I provide.
|
|
|
|
|
The book sounds pretty dubious, but recently I've been exposed to architects and builders in the context of a real building.
Architects deal with such matters as how space is used, or how to make a space so that it can support various kinds of uses. They're aware of dimensions, of materials, of light, of acoustics, of cost, of functions, of aesthetic, of legal boundaries, of stakeholders, of how people interact with spaces, and all that sort of thing. Ultimately they are great at devising trade-offs and their knowledge is extensive.
Builders however, when told to build a wall right there, are thinking about quantities of materials, where to get them from, of how things will joined, of angles and frames and cladding and hinges, the order of operations, whether the stuff will fit through the door on the way in, and who's going to hold that while another person fastens it.
It's actually quite amazing watching how they are so complementary yet also quite ignorant of the domain of the other specialist. Yet somehow the building gets done.
That co-operation is partly facilitated by a drawing, and partly through them each each talking to the same stakeholders. But wait, there is another specialist too! The draftsman makes a drawing, and he/she is actually very selective in what each drawing is 'about' and 'for' and therefore what it includes or excludes. A set of drawings is typically needed to establish context, indicate dimensions/boundaries/locations, label space usage. These drawings will each focus on different features/aspects of the building.
One of the most marvellous books I ever read that I felt got close to this 'plan' is now out of print (last time I looked): "Problem Frames" by Michael Jackson (no, not that Michael Jackson). It conceives of domains and machines connected by phenomena, and explicitly describes the software task as "configured this machine to ...". So when writing a browser app, it would very specifically call out the user browser (or the mobile device, if warranted) as a machine in which the programmer needed to produce some effect, in order to satisfy some requirement.
Anyhow, if we're going look to architecture/building as a model for getting complex projects done, we need something like this is needed to fulfil the role of the 'plan', and the Problem Frames book is a good start.
|
|
|
|
|
The book sounds pretty dubious, but recently I've been exposed to architects and builders in the context of a real building.
Architects deal with such matters as how space is used, or how to make a space so that it can support various kinds of uses. They're aware of dimensions, of materials, of light, of acoustics, of cost, of functions, of aesthetic, of legal boundaries, of stakeholders, of how people interact with spaces, and all that sort of thing. Ultimately they are great at devising trade-offs and their knowledge is extensive.
Builders however, when told to build a wall right there, are thinking about quantities of materials, where to get them from, of how things will joined, of angles and frames and cladding and hinges, the order of operations, whether the stuff will fit through the door on the way in, and who's going to hold that while another person fastens it.
It's actually quite amazing watching how they are so complementary yet also quite ignorant of the domain of the other specialist. Yet somehow the building gets done.
That co-operation is partly facilitated by a drawing, and partly through them each each talking to the same stakeholders. But wait, there is another specialist too! The draftsman makes a drawing, and he/she is actually very selective in what each drawing is 'about' and 'for' and therefore what it includes or excludes. A set of drawings is typically needed to establish context, indicate dimensions/boundaries/locations, label space usage. These drawings will each focus on different features/aspects of the building.
One of the most marvellous books I ever read that I felt got close to this 'plan' is now out of print (last time I looked): "Problem Frames" by Michael Jackson (no, not that Michael Jackson). It conceives of domains and machines connected by phenomena, and explicitly describes the software task as "configured this machine to ...". So when writing a browser app, it would very specifically call out the user browser (or the mobile device, if warranted) as a machine in which the programmer needed to produce some effect, in order to satisfy some requirement.
Anyhow, if we're going look to architecture/building as a model for getting complex projects done, we need something like this is needed to fulfil the role of the 'plan', and the Problem Frames book is a good start.
|
|
|
|
|
Titles, in general, are meaningless crap. Either a person is skilled in some area(s) of development or they're not.
Often, those people who have titles like 'architect' or 'senior' are also the most skilled. But, it's not infrequent that it's someone who's just been around the organization for a long time, regardless of level of skill.
|
|
|
|
|
Software as an Engineering discipline is dubious.
Unlike many physical engineering projects, like building a road or house, software is very very fragile.
That includes if you do error handling. If 1 part of a process is unable to work, the whole process in unable to finish.
But in a house, the whole house standing up does not rely on all the bricks. A well engineered house can still stand up if a number of bricks fail.
Also the person interacting in with said house is able to self mitigate issues. If 1 stair failed, you can step over it.
Then you have many oversight and defined government requirements which software does not have (in most countries, I hear Canada you need an actual certificate to call yourself Software Engineer.)
Contrast most software with how HTML is so very forgiving. Missing one end tag, it will still figure something out to show the user.
Javascript - missing bracket, nope its wrong.
python script forgiving
java/c# compilers - nope, you need semi-colon despite that it could figure out that new line and variable declare was started.
Bridges - redundancy of support is not equal to duplicating a website so if one server down the other picks up. That would be having multiple bridges.
Software Architect is least of the job titles of issue.
|
|
|
|
|
Quote: the author likens Software Development & Design to the realm of Artistic Endeavour.
Sounds like baloney meant to appear to make some new idea to sell the book that contains it.
"Architect" and "engineer" come from the construction industry. Architecture is a science that also involves art. Art can design a building on the outside, but without the science, the building won't stand. Architects work with engineers to make sure the building as a whole works and is safe.
That analogy works perfect for building software - "virtual" buildings. The mistake is in thinking that these are separate jobs requiring separate people, as it is in construction. There are rare occasions when the workload justifies separate people, but for the most part, they are roles in which a senior-level person should be proficient. Use the architecture role to manage requirements, design the application, often without regard for the particular tech stack to be used. Use the UI/UX engineer role to improve the architectural UI design. Use the QA engineer role to define the core of the testing. Use the software engineer role to design the workflow, interfaces, and objects across the n-tiers that are needed. Use the agile manager role to manage how agile is implemented. Use the PM role in your coordination with the non-technical "stakeholders". And take on the programmer role to help out with the coding since hands-on experience benefits every other role.
All those roles should be expected in a senior-level professional in the software industry.
|
|
|
|
|
|
I was thinking about:
Quote: When Black Friday comes
I'll stand down by the door
And catch the gray men when they
Dive from the fourteenth floor
|
|
|
|
|
|
|
You mean a reboot of the planet earth?
Sorry for the 'laugh' ....
|
|
|
|
|
Humans: "Hey! Let's keep partying until we suck every last drop out of this planet."
Mother Nature: "Last orders gentlemen."
|
|
|
|
|
Mother nature will win sooner or later I think. With or without us
|
|
|
|
|
0x01AA wrote: Mother nature will win sooner or later I think. With or without us Specially without us.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Makes sense
|
|
|
|
|
The weird thing is that it's not "persistence" or "cunning" at all: the sheer number of new hosts - us - means it breeds like crazy, and that means it mutates like crazy.
To knock it down to the level of flu or even a cold, all we have to do is reduce the number of hosts to an absolute minimum - that's what vaccines, lockdowns, masks, handwashing is all about ... get it down to that and it mutates more slowly because it breeds more slowly and the impression of cunning vanishes.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Only to emphasize again (for everybody who feels to be save because of vac): If you are vaccinated you can still be the host. Vaccination is only an -important- part of many measures that you mentioned.
|
|
|
|
|
And being unvaccinated is just prolonging the disruption ... somewhat antisocial I feel.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
But let's not forget that many parts of the world don't have sufficient vaccines yet. Like South Africa for instance. We are in a very privileged position - where we actually get to choose. It's quite generous to use the word "antisocial" when describing those who have a choice and decline.
|
|
|
|
|
South Africa does not have a shortage of vaccines. Only a shortage of people willing to get vaccinated.
A Fine is a Tax for doing something wrong
A Tax is a Fine for doing something good.
|
|
|
|
|
"Somewhat antisocial" were not the words going through my mind when I wrote that ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
OriginalGriff wrote: "Somewhat antisocial" were not the words going through my mind when I wrote that ... That's why I translated it mentally to many other more appropiated nouns and adjectives.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
|
It's quite antisocial of you to not respect people's choices not to get vaccinated.
People have many reasons not to get vaccinated, and while they may not sound so good to you, they are very valid for the people who make the decision.
Some people are as afraid of the vaccin as you are of the disease.
I recently got my second one, but only because I'm not feeling much for being completely shut out without a vaccination because I'm at risk of vaccinated people spreading this disease.
For some reason, me being able to say "look, I have a test and it came out negative" means less (and soon even nothing) than "I'm vaccinated, but there's a good chance I have it anyway"
What's more is that I'm young and healthy, not in any risk group, and almost my entire family had it without much issues.
There's, what, less than 1% chance I'll end up in the hospital, maybe even something like 0.1%?
I've felt bad for two days during this entire pandemic and both came from the vaccination.
It's mostly old people that get sick so they tell younger people to go in lockdown, wear masks, not visit their friends and then to get vaccinated, and call them names if they're not really up for all of that.
And meanwhile, most of us young people just go with it because we care about our elderly and our medical staff.
If there's one thing I've learned (or verified, really) from this pandemic is that people, vaccinated or not, are a bunch of antisocial assholes.
Unfortunately, there's no vaccination for that
So next time you meet an unvaccinated person, instead of calling them antisocial you could ask them about their motives and/or just shut the hell up about their decision that involves injecting chemicals into their body.
|
|
|
|
|
Please look at my original post. Do I say anything about refusing to get a jab being "anti-social"? Nope. In fact, do I say anything about vaccines? Nope. In a later post, I actually point out, that in some countries, (because of the lack of supply), people don't even have a choice. And I completely understand that the the vaccine is not viable for everyone.
Whilst I may agree with the sentiments expressed about people not getting vaccinated, I am not the "anti-social" author. You need to go back up the thread a bit.
I think the strongest argument for getting as many as possible vaccinated, is it reduces the 'opportunity' for mutations. We are obviously still in the dark about the threat from Omicron - and it could be it's a big panic about nothing. But in the worst case scenario, it could take us back to square one - with a virus that is highly infectious and not defeated by the current vaccines. That "what if" is both frightening and depressing and I can understand why terms like "anti-social" might be used. But, just to re-iterate: it wasn't me what did it - officer!
|
|
|
|
|