Top Banner
Good practices to build good software at XXI A personal vision by Javier Martínez Álvarez (@jamaa)
69
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Good practices to build good software

Good practices to build good software at XXI

A personal vision by Javier Martínez Álvarez (@jamaa)

Page 2: Good practices to build good software

2

Page 3: Good practices to build good software

Developer

Manager

University Professor

Researcher

Eternal learner

+20 years of experience in 5 different companies

Page 4: Good practices to build good software

4

I learning, fell in love

and good , enjoy design

,support the best

Crazy about

and fan of almost all stuff.

and .

Page 5: Good practices to build good software

Head of Development of Telefonica I+D

Lead the adoption of technologies, architectures, sw development practices

and tools across all product areas.

Design and build TI+D development service

platform.

Promote that CCDO products are developed with

the best architectures, practices, people and tools.

Report and manage software development status (code metrics, practices, technology

adoptions) across multiple products.

Help company in main strategic technical

decisions.

Page 6: Good practices to build good software

What are the key elements to build good software?

Page 7: Good practices to build good software

Organization

Technology & tools

PeopleProcess

Users

Page 8: Good practices to build good software

0

10

20

30

40

50

60

Organization Users People Technology Process

Project successful keys

Page 9: Good practices to build good software

What does a developer look like more? To an engineer or to a

painter or a writer?

Page 10: Good practices to build good software

software developers are like artists

Page 11: Good practices to build good software

understand what software development is

Page 12: Good practices to build good software

Organizations

Page 13: Good practices to build good software

“Any organization that designs a system (defined more broadly here than just information systems) will inevitably

produce a design whose structure is a copy of the organization’s communication structure.”

Conway’s Law. Melvin Conway Datamation magazine in April 1968

Page 14: Good practices to build good software

“If you have four groups working on a compiler, you’ll get a 4-pass compiler.”

Eric S Raymond in The New Hacker’s Dictionary

Page 15: Good practices to build good software

be small

Page 16: Good practices to build good software

be small, flat

Page 17: Good practices to build good software

be small, flat, and agile

Page 18: Good practices to build good software

get talent

Page 19: Good practices to build good software

get talent, freedom

Page 20: Good practices to build good software

get talent, freedom and hacker-centric culture

Page 21: Good practices to build good software

Do the right things is important…

Page 22: Good practices to build good software

..however there is something even more important

Page 23: Good practices to build good software

Doing the right thing

Page 24: Good practices to build good software

Team

Page 25: Good practices to build good software

Team, code reviews

Page 26: Good practices to build good software

Team, code reviews,

openness

Page 27: Good practices to build good software

Team, code reviews, openness

and mission

Page 28: Good practices to build good software

Users

Page 29: Good practices to build good software

It’s not what the software does. It’s what the user does

Page 30: Good practices to build good software

Eat your own dog food

Page 31: Good practices to build good software

Eat your own dog food,

exploratory test

Page 32: Good practices to build good software

Eat your own dog food,

exploratory test and metrics

Page 33: Good practices to build good software

People

Page 34: Good practices to build good software

self-learning

Page 35: Good practices to build good software

self-learning, passion

Page 36: Good practices to build good software

self-learning, passion and soft skills

Page 37: Good practices to build good software

productivity

Page 38: Good practices to build good software

productivity, gamification

Page 39: Good practices to build good software
Page 40: Good practices to build good software

work, family, body and soul

Page 41: Good practices to build good software

Technology & Tools

Page 42: Good practices to build good software

Better few bad than many good

Page 43: Good practices to build good software

It takes approximately 10,000 hours of deliberate practice to master a skill = 5-6 years of 8h day work

Elite = 10000 hours

Good = 8000 hours

Average=4000 hours

The 10,000 Hour Rule. Malcom Glassgow form an study of K. Anders Ericsson

Page 44: Good practices to build good software
Page 45: Good practices to build good software
Page 46: Good practices to build good software
Page 47: Good practices to build good software
Page 48: Good practices to build good software
Page 49: Good practices to build good software
Page 50: Good practices to build good software
Page 51: Good practices to build good software
Page 52: Good practices to build good software
Page 53: Good practices to build good software

Use XaaS

Page 54: Good practices to build good software

Openstack, “Linux” of the cloud

Page 55: Good practices to build good software

IoT Platform

Page 56: Good practices to build good software

Process

Page 57: Good practices to build good software

What kind of methodologies do you use?

Page 58: Good practices to build good software

Scrum

Page 59: Good practices to build good software

Scrum, scrumban

Page 60: Good practices to build good software

Scrum, scrumban and

Kanban

Page 61: Good practices to build good software

Stakeholders

Development Team

Demos and Releases

Feedbackand Requests

Delivery frequency = Speed of learning

Page 62: Good practices to build good software

Release seldom

Release is big

Release is hard

Release is a drama!!!

Page 63: Good practices to build good software

Release often

Release is small

Release is simple

Release is a routine!!!

Page 64: Good practices to build good software

Code & Commit

Build

Test & Integrate

Deploy to staging

Not functional

tests

Test: is everything

OK?

Deploy to production

Page 65: Good practices to build good software

Maximize Value, not Output

Page 66: Good practices to build good software

Coding Styles, TDD and BDD

Page 67: Good practices to build good software
Page 68: Good practices to build good software

Measure process and applications

Page 69: Good practices to build good software

Q&A