[devnexus 2022] meta-modern software architecture

Speaker: Neal Ford from thoughtworks

@neal4d

Link to table of contents

———————

Were architectures come from

  • Architecture is reactive
  • Someone starts doing something, then others do
  • Once a bunch doing, named (after the fact)
  • Reflection on how doing software development at the time
  • Once in an architecture, can watch how it grows and changes

Eras

  • Victorian – 1801-1900 – science, cassifying natural world
  • Modernism – 1890-1945 – industriial revolution, explosive growth of cities, abstract art, radio.
  • Post-modernism – 1946-1990 – push back about modernism, irony, questioning everything, television, Seinfield’s ”never hug, never learn”
  • Post-post modernism or metamodernism – 1990-present – internet
  • Naming things is hard. Not just in software. Modernism is bad choice of name because what would come next

Metamodern

  • In 1989, to find out Chicago weather would need to watch Weather Channel and wait for it to cycle around or go to library. Now pull it up onlie.
  • In 1989, could read a few books and know pretty much everything about wine. Now too much info and keep generating more.
  • Holism – view various systems as whole
  • Parks and recreating is first meta-modern show
  • Breaking bad – colo driven – yellow is safe and purple is bad
  • Return to sentimentaliitiy. Can’t live on ironism alone

Software architecture

  • microservices – one of most popular pages on Martin Fowler’s website. Say what it is and more importantly, what it isn’t.
  • First law of software architecture: ”Everything in software architecture is a tradeoff”. If you haven’t encountered yet, will be in the future
  • Reuse reduces complexity but comes with high coupling
  • Metamodern software architect needs to do tradeoff analysis. Ex: things that change slowly are good for reuse such as frameworks and OS
  • service mesh and sidecar pattern – orthogonal coupling

Books

  • ”Fundamentals of Software Architecture”
  • ”Software Architecture: the Hard Parts”
  • ”Data Mesh”

Forces

  • Consistency – atoic, eventual
  • Communication – sync, asych
  • Coordination – orchestrated, choreography
  • 8 possiblities by choosing one of each. ex: one is a monolith. All 8 can exist as pattern or antipattern.
  • Named them transactional sagas. epic, fantasy fiction, fairy tale, parallel, phone tag, horror story time travel, anthology

Richard Feinman

  • Computers used to be a room full of people (usually women) calculating things
  • Feyman added specialization and paralleliation. Some people are better at some tasks than others. And recovering from problems
  • 1945 – atomic bomb blast is what shifted eras
  • reonsider why continuing to do thing. revisit when reasons change

Internet

  • Pushed us to net era
  • Volkswagon used software to cheat on emissions test. Some people knew actively working to break the law
  • Facebook keeps getting busted for doing bad thigs – data breaches, illegally tracking users, Cambridge Analytica, using two factor for marketing.
  • Last week, Facebook made up a meme that TikTok that students slapping teachers. Then it became a self fulling prophacy

Finance and ethics

  • Modernism – double enry accounting
  • Post-modern – quants
  • Metamodern humane corporation, ethics. Recognize all connected to each other
  • Don’t want to create something cool and spening rest of career on appology tour
  • Apple, Google employees pushed back

My take

Fun start to the day. I hadn’t heard of the ”saga” approach before. Googling, at least some of them see to be a real thing. (and all are from ”the hard parts” book I also increased my book reading list. The end felt rushed. Maybe because started late?

[2018 oracle code one] evolutionary architecture in agile environment

Evolutionary architecture in agile environment

Speaker: Xavier Rene-Corail

For more blog posts, see The Oracle Code One table of contents


“Conflicts”

  • Not that we don’t have a plan. We have a plan. But it can change
  • Emerging design – do have a high level design. Not chaos
  • Things change. There’s nothing that will not change. Make easy to change the things that will/might.
  • Prototype architecture. Working software over comprehensive documentation. Architects shouldn’t deliver paper docs

Software architecture is

  • “the important stuff (whatever that is)” – Ralph Johnson
  • finding internal *abiities
  • managing conflicting *abilities and determining which is most important

Agility is

  • ability to move quickly and easily – Oxford dictionary

Evolution of architectural styles

  • Monolith – not scalable, single point of failure
  • Layered – defacto standard for JEE apps
  • SOA – natively scalable, but cn turn into monolith
  • Microservices – now need orchestration
  • Severless – abstract more

Beware of

  • Dependency hell/service dependencies
  • Distributed transactions

General

  • Minimize coupling
  • Couple fro highly changing to infrequently changing
  • Ask users for feedback. Don’t overarchitect
  • Feature flags. Make safe to fail
  • Eat an elephant one bite at a time. Design that way too

Decide up front – programming languages and frameworks. These are difficult to change.

My take: Good session. My notes are “less good” because I was eating lunch during the design principles. So listening, but not blogging! 

jeanne togaf certification part 2

I passed part 2 with 90% today.  Despite having taken part 1 a month ago and not touched studied since, I retained a lot. This is good. As I skimmed/read the part 2 study guide, I also realized I retained a lot from class.  I spent less than a week studying for part 2.  But most of the learning went on during the class and when studying for part 1.

Registering for the test

Registering at Prometric went smoothly.  I wish they’d let you search by zip code.  New York State is large.  My local testing site didn’t have any seats the day I wanted to take the exam.  And I would never go back to the second closest one (read why Horizon Technical Consultants of Flushing is no good.)  I then looked for centers in Manhattan and found NetComLearning.  (I think I might have taken the Core Spring cert there.  It’s a good center.  They even let you keep your wallet/house keys with you in your pocket.)

Resources I used to study

I’m sharing my scores in addition to commentary on the practice exams.  This helps with the “am I ready to take the exam” question.  The gist is that your score on your first attempt of the official practice test is a good predictor of your score on the real test.

Resource Comments
The official part 2 study guide. Since part 2 is open book, my study approach was to have both the official part 2 study guide and 700 page pdf open.  I mapped the text/paragraphs between the two as I skimmed/read.  The goal was to become familiar with how to find information quickly in the 700 page book.  Which is a useful skill for when I later need this information to apply TOGAF.While much of the text is the same as the 700 page book, it is easier to read and more concise.  It costs $30 but we were provided a copy as part of the course.  It also contains the official practice test, but more on that later.
Open Arch practice test – #1 I got 75% on this one.  I had only read a couple chapters of the study guide at this point.  I used a mix of memory and the 700 page pdf.  Note that this practice test is better than practice test #2.  I wish I had waited to try it.  It’s still not as hard/interesting as the official practice test though.
Open Arch practice test – #2 I got 100% on this one.  On this one, I looked up every single answer and used it as a sanity check that I could find information in the PDF quickly.  Which I could as I answered all 8 questions in 35 minutes.  Both practice tests seemed way too easy as they were a very straightforward mapping to the PDF.  It was also possible to identify some answers as wrong by comparing the verbiage in questions to each other.  The official practice test is much harder/more interesting.  They were still worth doing though.  If you can’t recall or look up this information very quickly, you aren’t ready for the official practice test.
9 multiple questions on viewpoints Viewpoints aren’t covered in the study guide, but are apparently important.  I went through the 9 multiple questions with the study guide open as a review from class.  I only got 5/9.  Wish there was some detail with the answers.
Official practice test This is included in the study guide.  Alternatively, you can buy it for 99 cents.  The reason I keep saying hard/interesting, is that they don’t give away the phase by stating it; you get to think.  That’s the interesting part.  The hard part is that the questions are LONG and there is a lot to keep track of when comparing answer choices.I like that the answer key tells you what they were testing along with a chapter/section reference in the book. My score was 95%.  I got the second best answer on the viewpoints question.   I’m shocked that I did this well as my brain felt like it was turning to mush while reading the choices. Other interesting scoring statistics: I identified the distractor correctly on 7-8 of the questions.  (on question 7, I wrote two choices as being distractors because I couldn’t tell which was the distractor and which was merely wrong.)  On 5 of the questions, I identified the 1st/2nd/3rd/distractor order completely correct.I spent 50 minutes on it.  I didn’t spend the remaining 40 because I read the 700 page book in the exam is hard to use.  Which means I’d waste a lot of time on that on the real exam.
My instructor’s 4 practice questions I got 40% on this.  I found the distractor on three of the four questions.  I wasn’t able to use the book to help me with any of this question set.  And I only spent 15 minutes.  Maybe I was tired? The spirit felt very different in that I used the book a lot for the official practice test and not at all for these four questions.  I did it again the morning of test day and got 80%.  Granted this was because I knew not to go with my gut choices.  I also used the book a tiny bit (to double check artifact names in one question.)  This was meant to be a confidence building activity and not a test of how I was doing.  I still find these questions to be A LOT harder than the official practice test.
Chris Eaton’s 2 practice questions I got 50% of this.  I found the distractor on one of the two questions.  I was able to use the book to help.  On this one, I KNOW I was tired as I missed the phase one question was asking about and it was explicitly stated in the question.

Tips

  • As you do practice questions, try to rank them in terms of “best answer”, “2nd answer”, “3rd answer” and “distractor.”  All the practice exams give you all four of these in the answer key so you can check your understanding AND test taking skills extra.
  • On both practice tests and the real exam, try to identify the distractor before you start ranking the others.  The distractor may not use TOGAF words.  Or it may pertain to a different part of TOGAF.  If you can identify the distractor on every question, your expected value is now 60% on the exam.  (Because you can now get 1, 3 or 5 points out of 5).  Conveniently, this is the pass score.
  • Read the description of the Prometric PDF usability issues.  I didn’t have this problem as you’ll see below, but it is still good advice.
  • There are two possible approaches on using the PDF.  One is to take the whole test without it and then check answers at the end.  The other is the use the PDF for each question but timebox it.  I chose the later. I determined I wouldn’t spend more than 10 minutes per question on the first pass.  Then I’d use the extra time at the end on any I “ran out of time on.”  In the official practice test, that was just the viewpoint question.

Test day strategy

  • I made sure that the laminated board was two sided.  You are entitled two two boards (or a two sided one.)  When I went to Horizonthey only gave me a one sided one.  For that test, I wasn’t writing much so it didn’t matter.  For TOGAF, I used the two sides.
  • The engine:
    • Don’t bother taking the practice/training test.  I said yes to taking it thinking I’d get to see where the reference button was for the PDF.  And maybe the navigation.  Nope.  It was just the standard Prometric engine in the practice.  Which you’ve seen in part 1 so should be familiar with by now.
    • The screen displays two frames.  The left one is the scenario part.  The right one is the one-two sentence question and all the answers.  I didn’t have to scroll as much as I was worried about.
    • The bottom left corner as a “reference” button that launches the PDF.  It was a little laggy; taking 1-2 seconds each time to open the PDF.  The PDF displays in a new “window”, but not the type you can alt-tab to.  So a lot of clicking.  The PDF was fine though.  I had read it was clunky, but it wasn’t.  You could navigate using the table of contents or searching or scrolling.  Just like when I practiced.  The only odd thing is that I seem to have hit a shortcut to keep scrolling down at some point.  I clicked around and it stopped after 15 seconds of poking.
  • Before clicking the start button, I took a moment to write each question #, “a”, b”, “c”, “d”.  I was only able to fit three of them going down the page so I put the fourth on the right quarter of the page.  I did the same on the back so I was all set for the eight questions.
  • The actual test was the first time I didn’t feel my brain turning to mush from reading the questions.  I guess I FINALLY learned to discern what is important.
  • I went through the questions in three passes.
    1. The first pass (50 minutes) was for questions I could answer in less than 10 minutes each.  I did use the PDF for six of the eight questions on pass one because I felt I could do so efficiently. During this pass, I wrote down the area I felt the question was testing and whether I felt each choice was the distractor, 1st, 2nd or 3rd answer along with my thoughts on why.  This helped me avoid having to re-read the answers.  It also let me recover my thoughts when revisiting.  I also logged the amount of time I spent on each question (to keep me moving) and my confidence level of my answers on a scale from 1 to 10.  This let me know which ones to go back to.
    2. The second pass (15 minutes) was for doing a mini “research project” on the two areas I was less familiar with.  I could have answered each of these in less than 10 minutes.  I choose not to on pass 1 so I could figure out where my time would be well spent.  Obviously, the “research project” approach wouldn’t help if you weren’t familiar with the PDF.
    3. The third pass (2 minutes) was to click through each question and make sure the radio button for my first choice was still selected.

Overall impressions of the TOGAF cert

  • Studying for part 1 was tedious to me.  I hate memorizing.  It is necessary to know the terms/phases though so it was worth spending time on.  Just unpleasant.
  • Studying for part 2 was more interesting.  It became an exercise in how to use the book efficiently for me in addition to becoming more familiar with TOGAF.  This is a good skill.  And most of the questions are about understanding/application which is more fun.
  • And nothing to do with the cert, but I have used a little TOGAF at work since I took the class.  Which shows the use!

Good luck on your cert and feel free to ask questions in the CodeRanch TOGAF forum.

Note: As usual, don’t bother asking me to share materials.  Everything mentioned here is either free online (which you can get) or paid content (which I will not share.)