SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
WRITING QUALITY CODE,AS ATEAM
DrupalCamp Spain 2014
WHAT I DO
• Drupal developer at Lullabot.	

• Drupal contributor.	

• Contrib maintainer.	

• Web enthusiast.	

• Occasional IRC trolling.
THIS IS NOT ABOUT
• Improving your code skills.	

• Cookbook on drupalisms.	

• How to make Drupal good at what it’s bad.
DISAPPOINTED?
There is a talk about responsive theming
right next door!
PROJECTS I AM IN
• Typically BIG sites.	

• Media related.	

• Limited user interaction with Drupal.	

• Advertisements (random).
TEAMS I AM IN
• Usually the client has their own tech team.	

• Drop-in (remote). Drupal expert.	

• There are other consultants.	

• Every team has its own culture.
THETEAM IS WHAT MATTERS
– Jim McCarthy
“You can’t have great software without a great team, and most software
teams behave like dysfunctional families.”
HOWTO KICK ASS INTHETEAM
• Know where your strength is.	

• Make yourself available.	

• Learn from other people’s code.
WASN’TTHIS ABOUT CODE?!
Enough of the self help talk!
SUGGESTIONS FOR WRITING QUALITY
CODE
• Track your tasks in a centralized and dedicated tool (PM).	

• Follow git-flow (make it flexible).	

• Test the code.	

• Deploy often.
W
USEFULTOOLS
• drush: sql-sync, sql-drop, rsync, devify, …	

• You will need to import databases from a system of record: mysqldumpp.sh, mysqlrestorep.sh,
mysqltransform.py.	

• HUB	

• Meme GIFs	

• Google Hangouts.
• Pull request builder!
PULL REQUEST BUILDER
1. Someone sends a PR	

2. Access check to create a dedicated environment: http://
qa32889.project.com	

3. Tear down the environment.	

4. Go count money!
Deployment with
only those
changes.
TESTINGYOUR CODE
• When you write the code and submit the PR.	

• When another dev reviews your code and tests it in their local
environment.*	

• When QA tests the user story.	

• When QA does a regression/smoke test.
Ideally your code will be tested 4 times.
IT’S CHEAPER DOING IT!
By now you probably know that there is no such thing as «Quick
and dirty», there’s only «Dirty, and many times».
– Brian W. Kernighan
“Debugging is twice as hard as writing the code in the
first place.Therefore, if you write the code as cleverly as
possible, you are, by definition, not smart enough to
debug it.”
– ChristopherThompson
“Sometimes it pays to stay in bed on Monday, rather than spending the rest
of the week debugging Monday's code.”
XDEBUG
AVOID ENDLESS FEEDBACK
• Ask for your reviewer to be nit picky.	

• Write lots of meaningful comments.	

• Use long variables with meaningful names.	

• Update the code explanations when making changes.
– Martin Golding
“Always code as if the guy who ends up maintaining your code will be a
violent psychopath who knows where you live.”
SUGGESTIONS FOR WRITING QUALITY
CODE
• Track your tasks in a centralized and dedicated tool (PM).	

• Follow git-flow (make it flexible).	

• Test the code.	

• Deploy often.
AUTOMATEDTESTING
• «Unit» test the key parts of your code.	

• Use Simpletest for important features.	

• Automate feature testing.
THE JOURNEY OFYOUR CODE
• It is born in your local environment.	

• It’s sent to GitHub as a PR so others
can comment on it. 	

• It’s merged in the development
environment.	

• From the development to
acceptance to stage.
• Deployed to PROD!
If you are being agile then you should do
this every sprint.

Weitere ähnliche Inhalte

Andere mochten auch

Notarphpj 120828194837-phpapp02
Notarphpj 120828194837-phpapp02Notarphpj 120828194837-phpapp02
Notarphpj 120828194837-phpapp02dan1172
 
El papel del vídeo en la Web 2.0
El papel del vídeo en la Web 2.0El papel del vídeo en la Web 2.0
El papel del vídeo en la Web 2.0Pablo Olmeda
 
المحسوبية في الإدارة التونسية بقلم عزالدين مبارك
المحسوبية في الإدارة التونسية  بقلم  عزالدين مباركالمحسوبية في الإدارة التونسية  بقلم  عزالدين مبارك
المحسوبية في الإدارة التونسية بقلم عزالدين مباركezzeddine
 
Social Tools: Social search, verification, crowdsourcing and curation
Social Tools: Social search, verification, crowdsourcing and curationSocial Tools: Social search, verification, crowdsourcing and curation
Social Tools: Social search, verification, crowdsourcing and curationMandy Jenkins
 
Raising godly children 19 jun 15
Raising godly children 19 jun 15Raising godly children 19 jun 15
Raising godly children 19 jun 15SSMC
 
ثورة تلد أخرى بقلم عزالدين مبارك
ثورة تلد أخرى  بقلم عزالدين مباركثورة تلد أخرى  بقلم عزالدين مبارك
ثورة تلد أخرى بقلم عزالدين مباركezzeddine
 
Jehovah tsikenu 8 apr12
Jehovah tsikenu  8 apr12Jehovah tsikenu  8 apr12
Jehovah tsikenu 8 apr12SSMC
 
Getting Started with LinkedIn 0714
Getting Started with LinkedIn 0714Getting Started with LinkedIn 0714
Getting Started with LinkedIn 0714KevinSRyan
 
X:\Work\English\Martin Luther King, Jr
X:\Work\English\Martin Luther King, JrX:\Work\English\Martin Luther King, Jr
X:\Work\English\Martin Luther King, Jrguest2fb55c
 
World Usability Day 2014 - Keene State College - Usable Documentation - Kevin...
World Usability Day 2014 - Keene State College - Usable Documentation - Kevin...World Usability Day 2014 - Keene State College - Usable Documentation - Kevin...
World Usability Day 2014 - Keene State College - Usable Documentation - Kevin...Braun Interactive
 

Andere mochten auch (20)

Notarphpj 120828194837-phpapp02
Notarphpj 120828194837-phpapp02Notarphpj 120828194837-phpapp02
Notarphpj 120828194837-phpapp02
 
Full report
Full reportFull report
Full report
 
El papel del vídeo en la Web 2.0
El papel del vídeo en la Web 2.0El papel del vídeo en la Web 2.0
El papel del vídeo en la Web 2.0
 
المحسوبية في الإدارة التونسية بقلم عزالدين مبارك
المحسوبية في الإدارة التونسية  بقلم  عزالدين مباركالمحسوبية في الإدارة التونسية  بقلم  عزالدين مبارك
المحسوبية في الإدارة التونسية بقلم عزالدين مبارك
 
Social Tools: Social search, verification, crowdsourcing and curation
Social Tools: Social search, verification, crowdsourcing and curationSocial Tools: Social search, verification, crowdsourcing and curation
Social Tools: Social search, verification, crowdsourcing and curation
 
Inkilap Tarihi 1
Inkilap Tarihi 1Inkilap Tarihi 1
Inkilap Tarihi 1
 
Anna C Bd 2010
Anna C Bd 2010 Anna C Bd 2010
Anna C Bd 2010
 
Raising godly children 19 jun 15
Raising godly children 19 jun 15Raising godly children 19 jun 15
Raising godly children 19 jun 15
 
ثورة تلد أخرى بقلم عزالدين مبارك
ثورة تلد أخرى  بقلم عزالدين مباركثورة تلد أخرى  بقلم عزالدين مبارك
ثورة تلد أخرى بقلم عزالدين مبارك
 
Easter 2010
Easter 2010Easter 2010
Easter 2010
 
The students
The studentsThe students
The students
 
Rddfs instant insight
Rddfs instant insightRddfs instant insight
Rddfs instant insight
 
Gatos 4
Gatos 4Gatos 4
Gatos 4
 
Jehovah tsikenu 8 apr12
Jehovah tsikenu  8 apr12Jehovah tsikenu  8 apr12
Jehovah tsikenu 8 apr12
 
Getting Started with LinkedIn 0714
Getting Started with LinkedIn 0714Getting Started with LinkedIn 0714
Getting Started with LinkedIn 0714
 
Annual 2
Annual 2Annual 2
Annual 2
 
X:\Work\English\Martin Luther King, Jr
X:\Work\English\Martin Luther King, JrX:\Work\English\Martin Luther King, Jr
X:\Work\English\Martin Luther King, Jr
 
C:\Fakepath\Web2 O
C:\Fakepath\Web2 OC:\Fakepath\Web2 O
C:\Fakepath\Web2 O
 
Pinterest for News
Pinterest for NewsPinterest for News
Pinterest for News
 
World Usability Day 2014 - Keene State College - Usable Documentation - Kevin...
World Usability Day 2014 - Keene State College - Usable Documentation - Kevin...World Usability Day 2014 - Keene State College - Usable Documentation - Kevin...
World Usability Day 2014 - Keene State College - Usable Documentation - Kevin...
 

Ähnlich wie Writing quality code, as a team.

Software Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesMike Clement
 
12 Things Every Programmer Should Know
12 Things Every Programmer Should Know12 Things Every Programmer Should Know
12 Things Every Programmer Should KnowSamnang Chhun
 
11 rules for programmer should live by
11 rules for programmer should live by11 rules for programmer should live by
11 rules for programmer should live byYe Win
 
What I have learned by dealing with a dungeon master
What I have learned by dealing with a dungeon masterWhat I have learned by dealing with a dungeon master
What I have learned by dealing with a dungeon masterRaúl Araya Tauler
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014michaelag1971
 
How to get the most out of code reviews
How to get the most out of code reviewsHow to get the most out of code reviews
How to get the most out of code reviewsJavaDayUA
 
Networking Campaign Workshop
Networking Campaign WorkshopNetworking Campaign Workshop
Networking Campaign WorkshopPaul Maynard
 
Mob Programming for Continuous Learning
Mob Programming for Continuous LearningMob Programming for Continuous Learning
Mob Programming for Continuous LearningMike Clement
 
Quality rails coding
Quality rails codingQuality rails coding
Quality rails codingCalum Halcrow
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair ProgrammingSteven Smith
 
Turning Passion Into Words
Turning Passion Into WordsTurning Passion Into Words
Turning Passion Into WordsBrian Hogan
 
Developers Best Practices
Developers Best PracticesDevelopers Best Practices
Developers Best Practicesaqib javaid
 
Writing Workshop 2
Writing Workshop 2Writing Workshop 2
Writing Workshop 2cs404ta
 
Code smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsCode smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsClint Edmonson
 
Effective entrepreneurship for developers
Effective entrepreneurship for developersEffective entrepreneurship for developers
Effective entrepreneurship for developersCarlos Ble
 
Write A Better FM - Ohio Linux 2011
Write A Better FM - Ohio Linux 2011Write A Better FM - Ohio Linux 2011
Write A Better FM - Ohio Linux 2011Rich Bowen
 
How to improve your skills and how to apply for a job
How to improve your skills and how to apply for a jobHow to improve your skills and how to apply for a job
How to improve your skills and how to apply for a jobChristian Hujer
 
Master Technical Recruiting Workshop: How to Recruit Top Tech Talent
Master Technical Recruiting Workshop:  How to Recruit Top Tech TalentMaster Technical Recruiting Workshop:  How to Recruit Top Tech Talent
Master Technical Recruiting Workshop: How to Recruit Top Tech TalentRecruitingDaily.com LLC
 
Write a better FM
Write a better FMWrite a better FM
Write a better FMRich Bowen
 

Ähnlich wie Writing quality code, as a team. (20)

Software Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code Games
 
12 Things Every Programmer Should Know
12 Things Every Programmer Should Know12 Things Every Programmer Should Know
12 Things Every Programmer Should Know
 
11 rules for programmer should live by
11 rules for programmer should live by11 rules for programmer should live by
11 rules for programmer should live by
 
What I have learned by dealing with a dungeon master
What I have learned by dealing with a dungeon masterWhat I have learned by dealing with a dungeon master
What I have learned by dealing with a dungeon master
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
 
How to get the most out of code reviews
How to get the most out of code reviewsHow to get the most out of code reviews
How to get the most out of code reviews
 
Networking Campaign Workshop
Networking Campaign WorkshopNetworking Campaign Workshop
Networking Campaign Workshop
 
Mob Programming for Continuous Learning
Mob Programming for Continuous LearningMob Programming for Continuous Learning
Mob Programming for Continuous Learning
 
Quality rails coding
Quality rails codingQuality rails coding
Quality rails coding
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
 
Turning Passion Into Words
Turning Passion Into WordsTurning Passion Into Words
Turning Passion Into Words
 
Developers Best Practices
Developers Best PracticesDevelopers Best Practices
Developers Best Practices
 
Writing Workshop 2
Writing Workshop 2Writing Workshop 2
Writing Workshop 2
 
Secrets of Scrum
Secrets of ScrumSecrets of Scrum
Secrets of Scrum
 
Code smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software OdorsCode smells and Other Malodorous Software Odors
Code smells and Other Malodorous Software Odors
 
Effective entrepreneurship for developers
Effective entrepreneurship for developersEffective entrepreneurship for developers
Effective entrepreneurship for developers
 
Write A Better FM - Ohio Linux 2011
Write A Better FM - Ohio Linux 2011Write A Better FM - Ohio Linux 2011
Write A Better FM - Ohio Linux 2011
 
How to improve your skills and how to apply for a job
How to improve your skills and how to apply for a jobHow to improve your skills and how to apply for a job
How to improve your skills and how to apply for a job
 
Master Technical Recruiting Workshop: How to Recruit Top Tech Talent
Master Technical Recruiting Workshop:  How to Recruit Top Tech TalentMaster Technical Recruiting Workshop:  How to Recruit Top Tech Talent
Master Technical Recruiting Workshop: How to Recruit Top Tech Talent
 
Write a better FM
Write a better FMWrite a better FM
Write a better FM
 

Kürzlich hochgeladen

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 

Kürzlich hochgeladen (20)

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 

Writing quality code, as a team.

  • 1. WRITING QUALITY CODE,AS ATEAM DrupalCamp Spain 2014
  • 2. WHAT I DO • Drupal developer at Lullabot. • Drupal contributor. • Contrib maintainer. • Web enthusiast. • Occasional IRC trolling.
  • 3. THIS IS NOT ABOUT • Improving your code skills. • Cookbook on drupalisms. • How to make Drupal good at what it’s bad.
  • 4. DISAPPOINTED? There is a talk about responsive theming right next door!
  • 5. PROJECTS I AM IN • Typically BIG sites. • Media related. • Limited user interaction with Drupal. • Advertisements (random).
  • 6. TEAMS I AM IN • Usually the client has their own tech team. • Drop-in (remote). Drupal expert. • There are other consultants. • Every team has its own culture.
  • 7. THETEAM IS WHAT MATTERS
  • 8. – Jim McCarthy “You can’t have great software without a great team, and most software teams behave like dysfunctional families.”
  • 9. HOWTO KICK ASS INTHETEAM • Know where your strength is. • Make yourself available. • Learn from other people’s code.
  • 10. WASN’TTHIS ABOUT CODE?! Enough of the self help talk!
  • 11. SUGGESTIONS FOR WRITING QUALITY CODE • Track your tasks in a centralized and dedicated tool (PM). • Follow git-flow (make it flexible). • Test the code. • Deploy often.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. W
  • 20. USEFULTOOLS • drush: sql-sync, sql-drop, rsync, devify, … • You will need to import databases from a system of record: mysqldumpp.sh, mysqlrestorep.sh, mysqltransform.py. • HUB • Meme GIFs • Google Hangouts. • Pull request builder!
  • 21. PULL REQUEST BUILDER 1. Someone sends a PR 2. Access check to create a dedicated environment: http:// qa32889.project.com 3. Tear down the environment. 4. Go count money! Deployment with only those changes.
  • 22. TESTINGYOUR CODE • When you write the code and submit the PR. • When another dev reviews your code and tests it in their local environment.* • When QA tests the user story. • When QA does a regression/smoke test. Ideally your code will be tested 4 times.
  • 23. IT’S CHEAPER DOING IT! By now you probably know that there is no such thing as «Quick and dirty», there’s only «Dirty, and many times».
  • 24. – Brian W. Kernighan “Debugging is twice as hard as writing the code in the first place.Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” – ChristopherThompson “Sometimes it pays to stay in bed on Monday, rather than spending the rest of the week debugging Monday's code.”
  • 26. AVOID ENDLESS FEEDBACK • Ask for your reviewer to be nit picky. • Write lots of meaningful comments. • Use long variables with meaningful names. • Update the code explanations when making changes.
  • 27.
  • 28. – Martin Golding “Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.”
  • 29.
  • 30. SUGGESTIONS FOR WRITING QUALITY CODE • Track your tasks in a centralized and dedicated tool (PM). • Follow git-flow (make it flexible). • Test the code. • Deploy often.
  • 31. AUTOMATEDTESTING • «Unit» test the key parts of your code. • Use Simpletest for important features. • Automate feature testing.
  • 32. THE JOURNEY OFYOUR CODE • It is born in your local environment. • It’s sent to GitHub as a PR so others can comment on it. • It’s merged in the development environment. • From the development to acceptance to stage. • Deployed to PROD! If you are being agile then you should do this every sprint.