I guess, we all know 42 is the answer to all questions
We wanna look at the right question regarding javascript and architecture
This talk does not contain code, nor does it contain technical details about architecture styles or patterns
<number>
My name is Torsten Helmich
Í work as a Freelancer, Architect, Scrum Master from time to time
Focused on Microsoft Technologies, but always kept an eye on Javascript and frontend development
<number>
Thats how it looked in 1989.
Me sitting in front of my Commodore 128 and coding some machine code (we gotta go back to that in a minute or so ..)
Who remebers the good old c64?
I came a long way from this that ugly desk to this beautiful stage
<number>
- And so did Javascript, it came a long way, too ..
- 1998 – HTML 4 / CSS 2 (Netscape 3 / IE 4)
- 1999 – Ajax Request (Google Mail 2004)
- 2006 – jQuery
- And we had: Drag‘n Drop, HTML5, CSS3, Web Fonts, Audio / Video / Client Db
- 2009 / 2010 - Angular 1, Knockout, Backbone
- It evolved to an mature language and thats kind of a problem
<number>
Frameworks seem to „pop out?“ like nothing may stop them.
I have a .net background and we have just one framework there ;-)
Decisions nowadays are very stressful, you got so many choices!
So how to decide, which framework is best?
Pick the one, that everyone uses!
<number>
- As a result, Javascript has a fanaticism problem
- „Forget about Angular 1, this is shit.“
- Or is Angular 2 the newest shit and therefore the real shit?
<number>
When you talk about frameworks, you talk about architecture!
Is it MVC, or V or Isomorphic JavaScript, any other kind of server side framework (rabbitmq on node)
We have to consider this stuff when we pick a framework
<number>
What is architecture by the way and why is it so important?
„All architecture is design, but not all design is architecture“
Architectureral decisions are hard to change!
Creating microservices from monolithic application?? BETTER EXAMPLE!
<number>
This is key!
The functional requirements do not have influence on technologie
<number>
Remember the old commodore? I can do the same coding on that machine, most probably.
<number>
Quality attributes aka non-functional requirements are the foundation for an architectural decision
But what are quality attributes?
<number>
ISO 9126 / quality model is the answer
[point some]
Some are contradictory (performance / maintainability OR Functionality / usability)
<number>
Go into an interview and give them a chance to prioritize
Ask a product owner or other responsible person to pick some of it
[what do you think will happen?]
He might pick‘em all!
<number>
The golden circle by Simon Sinek
All know WHAT to do
Fewer people know HOW we do something
A little know WHY we do something [refer to title] and that is the important thing!!
WHY is emotional, not rational – the questions is not the result, but what drives you!
<number>
- „Who knows WHY the underlying framework aka archtictures has been choosen“?
Usually nobody really knows
<number>
So ask why to figure what really drives people!
Name of the talk: why is the question to all answers
Try to find out what is your customers purpose, his cause, his believe?
Think from the inside out:
Why: „We want to build the first aplication in the world that can be easily used by people of age 8 to 99 at the same time!“
How: „We pick a bunch of experienced A developers from different technological background and a strong ux orientation“
What: „We gonna create a brand new ui framework, as a basis for our new application.“
<number>
10% of our decisions are made conciously, 90% unconcisously, this is due to energy management in our brain, works well
We have most probably been influencend by other people (boss, co-workers)
We are driven by fear (boss is in room)
We act like others expect us to be
And there is many more things that let us act as we‘re not ourselves
That means: The decision about quality attributes might be influenced as well
<number>
Create a stress- and fearless Atmosphere
Should go to a yoga class or join a zen meditation
We can‘t – but we need to get as close as we can and give room to feel relaxed and fear free
Cantina, ...
<number>
- There is more .. Not to forget:
Limited budget
Limited time
Existing systems / platforms
Licensing, maturity of technology (open source?)
Size of the team
Knowledge and Willingness of the team
Scalability of the team (remote)
Management method (Waterfall, agile)
<number>
What did we learn?
Javascript is an enterprise language, behave like so.
Do not pick a framework or architecture by coolness factor
Find the neccessary Quality Attributes of the product to be build
To do so, look for what drives the customer, what is his WHY, his vision?
Choose the right Architecture and Framework and make you and your customer happy!!
<number>
I hope this talk was a bit interesting for you folks
Maybe some of you decided to go with a simple architecture and satisfy their customers, while others may learn Angular and rock their project! Who knows ...
If you want to discuss this with me, you might find me at the conference until 2 pm or on twitter
<number>