If your career depended on the success of your next project, would you change the way you architect the product? In a world where accountability is beginning to emerge for software initiatives, the role of architecture is evolving. If architecture is "the important stuff", how does accountability begin to shift our thinking about what's important? In his talk, Mike will present several heuristics teams can use to drive decision making in a more accountable direction.
4. feature23.com
Heuristics
Anything that provides a plausible aid or direction in the solution of a
problem but is in the final analysis unjustified, incapable of
justification, and potentially fallible.
6. • Increase, or protect, business value
• Reduce, or limit, risk
• Improve, or protect, operational definitions
• A HEALTHY, HAPPY AND FIDUCIALLY RESPONSIBLE ORGANIZATION!
feature23.com
Professional Responsibility
16. What if your career actually depended
on the success of your next project?
feature23.com
Editor's Notes
Decision Making and Patterns.
Specific to Architectural Decisions.
Why am I talking about this?
Bad Decision Making is costing companies millions. Billions? Also creating brand issues.
A growing culture of accountability in the technology industry.
As professionals, and as a profession, will require you to think a little differently about how you architect software.
Patterns!
Setup a discussion on Decision Making and Patterns related to Architecture.
Lay a foundation for accountability.
Tie that off with a bit about right and wrong.
Share three heuristics that not only help you deliver more successful project, but happen to facilitate processional responsibility and achieve greater accountability.
Let’s get your heads right.
Where does accountability come from?
Two primary sources. Professions and Regulators.
The stakes.
The implications.
How did other professions evolve into what they are?
As I go through this presentation, please be honest with yourselves about how you and your team ACTUALLY make decisions around architecture.
Martin Fowler – “Who Needs an Architect” (https://www.youtube.com/watch?v=DngAZyWMGR0)
“The important stuff. Whatever that is.”
Expert developer’s “shared understanding” of the system design.
A “collection of decisions”. Who gets to make decisions on the important stuff?
HOW DO WE MAKE THESE DECISIONS??
Martin Fowler’s First Rule of Distribution
Brook’s Law
SOLID
OOP
Defined - Strategies derived from previous experience with similar problems.
How do we acquire new heuristics?
Trial and error.
Mentoring.
Who you are
Who your team, collectively, are
Who your company, as a broader collective, are
Where does the INDUSTRTY stand on this one?
A process for growing your sota. When is the right time to grow your SOTA?
1999 – Javascript vs. Today
Web today vs. yesterday. Example? – Webpack!
LAST, the Industry SOTA is not always right!!!! Brings this back to heuristics, judgement and experience.
In order to help more engineers understand this, I think more should be required to learn about business.
Maybe start a lemonade stand. Understand value, operations and all other basic aspects of business.
Then, their role in the ‘organism’ that’s business would make sense.
Writing code is how we DO WHAT WE’RE HIRED TO DO.
There is a right way and a wrong way to meet professional responsibility.
F23’s definition for ‘unethical’:
Working outside your collective SOTA in an UNSAFE manner (this includes the client SOTA).
Knowingly adding tech/solutions/approaches/frameworks that DO NOT DELIVER BUSINESS VALUE (in essence, allowing Engineering Value to EXCEED Business Value)
Self-explanatory
Jon Bosworth – Dark Side of UX also addressed this at Code on the Beach.
Society is becoming more dependent on software.
The implications for unethical behavior is ridiculously high.
Sarbanes-Oxley
CEO’s terminated for ethical lapses have risen by 68% in recent years.
Combined with continued violation of society’s privacy and safety will bring us into the age of accountability for software.
The world is simply too dependent on our craft.
Come from real world analysis.
95% of the challenges faced by teams we’ve worked with were notably impacted (as were their employers) by ignoring the following three heuristics.
This cost MILLIONS in damages and lost opportunity.
React Native
Microservices
Client Side Frameworks
Domain Driven Design
Eventing
Old MVC re-write to Angular. Never worked with it. Failed to deliver. Developer leaves the organization, or changes team. Organization now without business value for several years, and must start over.
WORKING ANDROID/iOS native app. STRONG Code Analysis scores. Re-write to JavaScript Native????
“Old code” > ASP.NET MVC > Angular
Is the team using tools IN their SOTA? Or chasing tech that’s desirous.
Kubernetes
Microservices (Service Fabric)
Angular/React/Ember
Startups with large platforms and no customers???
Perfect code that delivers no business value vs. horrible code that delivers high business value – about economics and responsibility, not developer hubris/ego.
James H. Moor’s paper on Ethics (1985) – Logical malleability (https://web.cs.ucdavis.edu/~rogaway/classes/188/spring06/papers/moor.html)
Accountability. Who should be held accountable in your organization when you make mistakes?
Economics – Gio Weiderhold (http://infolab.stanford.edu/pub/gio/2006/worth40.pdf)