The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
VW was by far the most unreliable car I've ever had the displeasure of owning, so yes, but not because of diesel gate, monkey killing, insider trading, ruining Brazil farmers, throwing engineers under bus, selling preproduction vehicles illegally and and and...
A Fine is a Tax for doing something wrong
A Tax is a Fine for doing something good.
I've just stumbled upon this new(er) book from Pragmatic Publishers and it really is a book of pragmatism related to Software Architecture. The author keeps it real and this is not absorbed into talking only about Agile. Instead he talks about what it really means to be a true Software Architect -- a very difficult thing to define.
author, Chapter 1
I’m not exactly sure when I became a software architect. I do remember the first time someone else called me one. We were at an important client meeting and someone asked a tough technical question. The project manager chimed in: “Michael is the architect on this project. He’ll dig in and send you an update by the end of the week.”
Architects partition (a fancy word for divide into pieces) the software system so they can develop a strategy for achieving quality attributes and other system requirements. For example, you might assign functional responsibilities by designing one component to register users and another to identify pictures of cats. Or you could assign different teams to develop different modules. Or you might split things that read data from things that write data so the software system will be more reliable, available, and scalable.
Partitioning a system is important not just because it lets you develop a strategy for achieving quality attributes. Smaller things are easier to reason about, easier to test, and easier to design. Of course, since you broke the system into pieces, you’ll also have to make sure everything can come back together again.
Back in the day (70's - 90's), the programmer filled all of the roles associated with software development - architect, engineer, developer, and tester. Programmers were usually good at one or two of the tasks, but may suck at the others (with emphasis on testing).
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
Back in the day (70's - 90's), the programmer filled all of the roles associated with software development - architect, engineer, developer, and tester.
Totally agree. It was Devs(people) who had total ownership of the system.
And that was good sometimes and sometimes not so good. But, it was also more satisfying because it felt like the system was your child. And, don't tell me my baby is ugly. Them's fighting words!
Same with doctors too. Back then, there were very few specialists. Today, we have not just specialists, but super-specialists. It would not be surprising to find the wrist and the palm being two different super-specialisations.
A specialist is someone that knows everyday more about less, until a moment when they know everything about nothing.
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.