Techique, Methodology, Culture
-
Upload
benny-bauer -
Category
Software
-
view
249 -
download
0
Transcript of Techique, Methodology, Culture
Technique, Methodology, CultureBenny BauerSoftware Architect, [email protected] @benikbauer
Rock Climbing Pillars
Mental StrengthPhysical StrengthTechnique
Software Development Pillars
CultureMethodologyTechnique
AutoCAD 360 Backend
2008Created
200K
LOC
TechnologyJava, Tomcat,
MySQL
Culture
Methodology
Technique
Phase 1: RPC
AutoCAD 360 API Evolution
RPC
HTTP AdapterServlet
Phase 2: Adapter Servlet
Logical endpoints HTTP methods Versioning Json payload
HTTP
Phase 3: RESTful APIs
Monolithic Architecture - Cons
Hard to keep modular design Full application deployment
even on minor change Scaling is horizontal Large code base is scary Hard to adopt new
technology Hard to scale development
“Microservices are small, autonomous services that work together…”
Introducing Microservices
“… built around business capabilities and independently deployable by fully automated deployment machinery”
(“Building Microservices” by Sam Newman)
Definition – continued
“…There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.”
(“Building Microservices” by Sam Newman)
Definition – continued
Microservices Architecture
HTTP
Phase 4: Microservices
Increased Operational Complexity Build, Testing, Deployment Monitoring Maintenance
Distributed System Complexity Network latency Asynchronicity Fault tolerance Message serialization, versioning
Microservices - Cons
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.
-- Melvyn Conway, 1967
Conway’s Law
Next phase: Serverless Architecture?
CultureTechnique
Methodology
Release to production at any time!
Why? Get feedback soon & often Frequent deployments -> Smaller changes ->
Lower risk Developer happiness
*Etsy: “Optimizing for developer happiness”
Methodology #1 - Continuous Delivery
HOW?First you need Continuous Integration
Continuous Delivery
Commit
Build
Test
Store Artifact
Then you can deploy
Continuous Delivery
and monitor!
Methodology #2 – Data Driven
Production stability
Performance
Exceptions
Builds stability
Usage analytics
Data Driven
Data Driven
Be deliberate Requirements – How the feature will be measured
Design - How performance will be measured
Tools: Statsd & Grafana, New Relic, Splunk
Paint the walls with dashboards
Data Driven
We start with a Walking Skeleton:
Make something work end-to-end
Wrap it with CI
Now, add more meat
Methodology #3 – Walking Skeleton
We strive to have maximal test coverage: New code – mocking & dependency injection
Legacy code – only changes are tested
“Aggressive mocking” when no other choice
Methodology #4 – Testing
Testing
Mocking +
Dependency Injection
Aggressive MockingNo Tests
Methodology #5 – Code Reviews
Better
Correct
Clean
At least 2 reviewers
Done within 24h
Asynchronous & Documented (“code collaborator”)
Frequent & Small
Code Reviews
Start with a walking skeleton
Confirm functionality with testing
Increase quality with code reviews
Get insights and drive actions from data
Wrap it all in Continuous Delivery
Methodology Summary
Methodology
Technique Culture
Autodesk TLV
What is Culture?
If methodology is the how, then culture is the why
Culture evolves naturally,but hacks can give it a boost
“Building a Dream Team”
Culture #1 – Stating our Vision
PYTA (Pick Your TAsk)
PYTA (Pick Your TAsk)
It got us to Apple’s keynote
Bazinga!
Guilds
A group of people that work on the same technical
domain and will love to spread the knowledge
internally and externally
Guilds
Guilds
Master: A guild leader, preferably not a manager
Sponsor: Master’s go-to guy
Activities: Organizing Meetups
Shared projects
“Army reserve”
Sharing knowledge
Brainstorming
Mingling
Open Source
Blogging
Bubbles (Lightning Talks)
CultureMethodologyTechnique
Questions?
Thanks
Autodesk is a registered trademark of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document.© 2015 Autodesk. All rights reserved.