Slide 1

Slide 1 text

1 Clean Code and Being A Clean Coder Petra Novandi Barus Tech In Asia Jakarta 2017

Slide 2

Slide 2 text

2 2 HI THERE! Chief Technology Officer UrbanIndo.com (Nov 2011 - now) I am Petra Novandi Barus petrabarus

Slide 3

Slide 3 text

3 WHAT IS BAD CODE?

Slide 4

Slide 4 text

4 4 COMMON MISTAKES MEANINGLESS NAMES UNUSED CODE LONG METHOD / CLASS BAD / INCONSISTENT FORMATTING CODE DUPLICATIONS MEANINGLESS COMMENTS NOT TESTED

Slide 5

Slide 5 text

5 5 COST OF MAINTAINING BAD CODE Productivity Time

Slide 6

Slide 6 text

6 WHAT IS CLEAN CODE?

Slide 7

Slide 7 text

7 7 CLEAN CODE ELEGANT EFFICIENT SIMPLE STRAIGHTFORWARD READABLE CLEAR AUTOMATICALLY TESTED WRITTEN BY SOMEONE WHO REALLY CARED

Slide 8

Slide 8 text

8 WHY SHOULD PROGRAMMERS WRITE CLEAN CODE?

Slide 9

Slide 9 text

9 9 WHY SHOULD PROGRAMMERS WRITE CLEAN CODE? EASY TO READ EASY TO CHANGE EASY FOR NEW TEAM MEMBER TO ONBOARD BROKEN WINDOW PRINCIPLE

Slide 10

Slide 10 text

10 10 COST OF MAINTAINING BAD CODE VS CLEAN CODE Productivity Time

Slide 11

Slide 11 text

11 WHY DON’T PROGRAMMERS WRITE CLEAN CODE?

Slide 12

Slide 12 text

12 12 REASON #1 WE DON’T HAVE F*** TIME!

Slide 13

Slide 13 text

13 13 OTHER REASONS I DON’T WRITE THAT CODE I AM ROCKSTAR PROGRAMMER, ALWAYS RIGHT I DON’T KNOW HOW TO DO IT IT’S NOT MY JOB, IT’S OTHER PEOPLE’S JOB

Slide 14

Slide 14 text

14 TOOLS & BEST PRACTICES

Slide 15

Slide 15 text

15 15 TOOLS & BEST PRACTICES TEST DRIVEN DEVELOPMENT CODE REVIEWING STATIC CODE ANALYSIS PAIR PROGRAMMING CONTINUOUS INTEGRATION / CONTINUOUS DELIVERY

Slide 16

Slide 16 text

16 BEING A CLEAN CODER (SOFTWARE CRAFTSMAN)

Slide 17

Slide 17 text

17 SOFTWARE CRAFTSMANSHIP ATTITUDE PASSION CAREER OWNERSHIP PRACTICE AND PRACTICE BOY SCOUT RULE

Slide 18

Slide 18 text

18 18 ETHICS TIME MANAGEMENT NEGOTIATION COLLABORATION SAYING YES, SAYING NO

Slide 19

Slide 19 text

19 GROWING SOFTWARE CRAFTSMANS

Slide 20

Slide 20 text

20 20 GROWING A CULTURE OF SOFTWARE CRAFTSMANSHIP COMMUNICATE TEAM GOAL INTRODUCE TEAM TO THE STAKEHOLDERS GIVE ROOM TO LEARN FROM MISTAKES HELP THE TEAM TO IMPROVE UNDERSTAND TEAM WANT TO DELIVER QUALITY GIVE THE TEAM RESPONSIBILITY APPRENTICESHIP

Slide 21

Slide 21 text

21 SOFTWARE CRAFTSMANSHIP & AGILE MOVEMENT (Just A Quick Review)

Slide 22

Slide 22 text

22 22 The Agile Manifesto INDIVIDUALS AND INTERACTIONS WORKING SOFTWARE CUSTOMER COLLABORATION RESPONDING TO CHANGE OVER PROCESSES AND TOOLS OVER COMPREHENSIVE DOCUMENTATIONS OVER CONTRACT NEGOTIATION OVER FOLLOWING PLANS

Slide 23

Slide 23 text

23 23 Software Craftsmanship Manifesto NOT ONLY WORKING SOFTWARE NOT ONLY RESPONDING TO CHANGE NOT ONLY INDIVIDUALS AND INTERACTIONS NOT ONLY CUSTOMER COLLABORATION BUT ALSO WELL-CRAFTED SOFTWARE BUT ALSO STEADILY ADDING VALUE BUT ALSO A COMMUNITY OF PROFESSIONALS BUT ALSO PRODUCTIVE PARTNERSHIPS RAISING THE BAR

Slide 24

Slide 24 text

24 24 REFERENCES

Slide 25

Slide 25 text

25 THANK YOU!!