+ All Categories
Home > Software > Techique, Methodology, Culture

Techique, Methodology, Culture

Date post: 13-Apr-2017
Category:
Upload: benny-bauer
View: 248 times
Download: 0 times
Share this document with a friend
54
Technique, Methodology, Culture Benny Bauer Software Architect, Autodesk [email protected] @benikbauer
Transcript
Page 1: Techique, Methodology, Culture

Technique, Methodology, CultureBenny BauerSoftware Architect, [email protected] @benikbauer

Page 2: Techique, Methodology, Culture
Page 3: Techique, Methodology, Culture
Page 4: Techique, Methodology, Culture

Rock Climbing Pillars

Mental StrengthPhysical StrengthTechnique

Page 5: Techique, Methodology, Culture

Software Development Pillars

CultureMethodologyTechnique

Page 6: Techique, Methodology, Culture

AutoCAD 360 Backend

2008Created

200K

LOC

TechnologyJava, Tomcat,

MySQL

Page 7: Techique, Methodology, Culture

Culture

Methodology

Technique

Page 8: Techique, Methodology, Culture

Phase 1: RPC

AutoCAD 360 API Evolution

RPC

Page 9: Techique, Methodology, Culture

HTTP AdapterServlet

Phase 2: Adapter Servlet

Page 10: Techique, Methodology, Culture
Page 11: Techique, Methodology, Culture
Page 12: Techique, Methodology, Culture

Logical endpoints HTTP methods Versioning Json payload

HTTP

Phase 3: RESTful APIs

Page 13: Techique, Methodology, Culture

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

Page 14: Techique, Methodology, Culture

“Microservices are small, autonomous services that work together…”

Introducing Microservices

Page 15: Techique, Methodology, Culture

“… built around business capabilities and independently deployable by fully automated deployment machinery”

(“Building Microservices” by Sam Newman)

Definition – continued

Page 16: Techique, Methodology, Culture

“…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

Page 17: Techique, Methodology, Culture

Microservices Architecture

Page 18: Techique, Methodology, Culture

HTTP

Phase 4: Microservices

Page 19: Techique, Methodology, Culture

Increased Operational Complexity Build, Testing, Deployment Monitoring Maintenance

Distributed System Complexity Network latency Asynchronicity Fault tolerance Message serialization, versioning

Microservices - Cons

Page 20: Techique, Methodology, Culture

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

Page 21: Techique, Methodology, Culture

Next phase: Serverless Architecture?

Page 22: Techique, Methodology, Culture

CultureTechnique

Methodology

Page 23: Techique, Methodology, Culture

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

Page 24: Techique, Methodology, Culture

HOW?First you need Continuous Integration

Continuous Delivery

Commit

Build

Test

Store Artifact

Page 25: Techique, Methodology, Culture

Then you can deploy

Continuous Delivery

and monitor!

Page 26: Techique, Methodology, Culture

Methodology #2 – Data Driven

Page 27: Techique, Methodology, Culture

Production stability

Performance

Exceptions

Builds stability

Usage analytics

Data Driven

Page 28: Techique, Methodology, Culture

Data Driven

Page 29: Techique, Methodology, Culture

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

Page 30: Techique, Methodology, Culture

We start with a Walking Skeleton:

Make something work end-to-end

Wrap it with CI

Now, add more meat

Methodology #3 – Walking Skeleton

Page 31: Techique, Methodology, Culture

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

Page 32: Techique, Methodology, Culture

Testing

Mocking +

Dependency Injection

Aggressive MockingNo Tests

Page 33: Techique, Methodology, Culture

Methodology #5 – Code Reviews

Better

Correct

Clean

Page 34: Techique, Methodology, Culture

At least 2 reviewers

Done within 24h

Asynchronous & Documented (“code collaborator”)

Frequent & Small

Code Reviews

Page 35: Techique, Methodology, Culture

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

Page 36: Techique, Methodology, Culture

Methodology

Technique Culture

Page 37: Techique, Methodology, Culture

Autodesk TLV

Page 38: Techique, Methodology, Culture

What is Culture?

If methodology is the how, then culture is the why

Page 39: Techique, Methodology, Culture

Culture evolves naturally,but hacks can give it a boost

Page 40: Techique, Methodology, Culture

“Building a Dream Team”

Culture #1 – Stating our Vision

Page 41: Techique, Methodology, Culture

PYTA (Pick Your TAsk)

Page 42: Techique, Methodology, Culture

PYTA (Pick Your TAsk)

It got us to Apple’s keynote

Page 43: Techique, Methodology, Culture

Bazinga!

Page 44: Techique, Methodology, Culture

Guilds

Page 45: Techique, Methodology, Culture

A group of people that work on the same technical

domain and will love to spread the knowledge

internally and externally

Guilds

Page 46: Techique, Methodology, Culture

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

Page 47: Techique, Methodology, Culture

Open Source

Page 48: Techique, Methodology, Culture

Blogging

Page 49: Techique, Methodology, Culture

Bubbles (Lightning Talks)

Page 50: Techique, Methodology, Culture
Page 51: Techique, Methodology, Culture

CultureMethodologyTechnique

Page 52: Techique, Methodology, Culture

Questions?

Page 53: Techique, Methodology, Culture

Thanks

Page 54: Techique, Methodology, Culture

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.


Recommended