SlideShare a Scribd company logo
Development Guidelines
Evgeny Poberezkin @epoberezkin #fullstackcon
Why guidelines?
Faster
Easier
Better
Which guidelines?
1. Code
2. Tests
3. Process
Code
History of guidelinesIt is good,
as long as it works
There are
bad parts
ESLint:
you decide
good and bad
Tests
Test-first vs
debug-later
Auditing Development Guidelines in GitHub Repositories
Auditing Development Guidelines in GitHub Repositories
Process
Change process
Semantic commits
chore: add Oyster build script
docs: explain hat wobble
feat: add beta sequence
fix: remove broken confirmation message
refactor: share logic between 4d3d3d3 and flarhgunnstow
style: convert tabs to spaces
test: ensure Tayne retains clothing
How do we know
if we follow guidelines?
Existing tools?
• Only validates names of
commits, PRs, issues
• Not extensible
• Not open source
• Great promise
• Doesn't work
Demo
Validate repositories against rules:
https://github.com/MailOnline/gh-lint
Manage issues based on TAP report:
https://github.com/MailOnline/tap-github-issues
Sample gh-lint config:
https://github.com/MailOnline/gh-lint-demo
Questions?
Evgeny.Poberezkin@mailonline.co.uk
@epoberezkin

More Related Content

PDF
TDD, the way to better software | Dan Ursu | CodeWay 2015
PPTX
TDD - Unit testing done right and programmer happiness
PDF
Five steps towards your testing dream
PPTX
TDD er død. Lenge leve TDD!
PDF
Continuous delivery
PDF
apidays LIVE Paris - Agreeing on common standards for trust with APIs by Davi...
PPTX
Common mistakes in tdd can you guess
PPTX
Intro to TDD
TDD, the way to better software | Dan Ursu | CodeWay 2015
TDD - Unit testing done right and programmer happiness
Five steps towards your testing dream
TDD er død. Lenge leve TDD!
Continuous delivery
apidays LIVE Paris - Agreeing on common standards for trust with APIs by Davi...
Common mistakes in tdd can you guess
Intro to TDD

What's hot (20)

PPT
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
PDF
TDD python ne-april-2014
PDF
STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...
 
PPT
Kobi_H_2018_JustEnoughTesting_02_TestIL_handout
PDF
Who let the robot out? - Building high quality software with Continuous Integ...
PDF
TDD — Are you sure you properly test code?
ODP
Buildbot
PDF
ES3-2020-P2 Bowling Game Kata
PDF
Joel Arvidsson, Klarna. What You See is What You Get – a case for visual testing
PDF
Testing in production
PPTX
Google, quality and you
PPTX
2015 msu-code-review
PDF
JDD2014: Continuous delivery: capitalizing high quality automated tests - Szc...
ODP
@LinkingNote annotation in YATSPEC
PDF
Strategie di testing: Spring Boot loves Kotlin
PDF
The Development History of PVS-Studio for Linux
PDF
Java Beginners Meetup February 2017: Testing and TDD
PPTX
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
PDF
Testing 101: Three Rules for Testing at Ombu Labs
PDF
ChefConf2014 - Chef TDD
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
TDD python ne-april-2014
STAMP, or Test Amplification to DevTestOps service, OW2con'18, June 7-8, 2018...
 
Kobi_H_2018_JustEnoughTesting_02_TestIL_handout
Who let the robot out? - Building high quality software with Continuous Integ...
TDD — Are you sure you properly test code?
Buildbot
ES3-2020-P2 Bowling Game Kata
Joel Arvidsson, Klarna. What You See is What You Get – a case for visual testing
Testing in production
Google, quality and you
2015 msu-code-review
JDD2014: Continuous delivery: capitalizing high quality automated tests - Szc...
@LinkingNote annotation in YATSPEC
Strategie di testing: Spring Boot loves Kotlin
The Development History of PVS-Studio for Linux
Java Beginners Meetup February 2017: Testing and TDD
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
Testing 101: Three Rules for Testing at Ombu Labs
ChefConf2014 - Chef TDD
Ad

Similar to Auditing Development Guidelines in GitHub Repositories (20)

PDF
How to write good quality code
PPTX
Testing, a pragmatic approach
PDF
Writing code for people
PDF
Clean Code
PPTX
Linters for frontend code review
PPTX
Integreation
PPTX
Best-Practices-for-Writing-Clean-Code.Presentation
PDF
Managing and evolving JavaScript Code
PPTX
30% faster coder on-boarding when you have a code cookbook
PDF
Writing Custom Lint for Android.pdf
PPTX
“One man” development process model
PDF
Chapter17 of clean code
PDF
How to deliver the right software (Specification by example)
PDF
From hello world to goodbye code
PPTX
Effective Code Review
PDF
10 Big Ideas from Industry
PDF
Reduce Reuse Refactor
PDF
"How do you think when you're coding?", Jon Skeet
ODP
Clean Code - Part 2
PDF
STAQ Development Manual (Redacted)
How to write good quality code
Testing, a pragmatic approach
Writing code for people
Clean Code
Linters for frontend code review
Integreation
Best-Practices-for-Writing-Clean-Code.Presentation
Managing and evolving JavaScript Code
30% faster coder on-boarding when you have a code cookbook
Writing Custom Lint for Android.pdf
“One man” development process model
Chapter17 of clean code
How to deliver the right software (Specification by example)
From hello world to goodbye code
Effective Code Review
10 Big Ideas from Industry
Reduce Reuse Refactor
"How do you think when you're coding?", Jon Skeet
Clean Code - Part 2
STAQ Development Manual (Redacted)
Ad

Recently uploaded (20)

PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
Download FL Studio Crack Latest version 2025 ?
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Complete Guide to Website Development in Malaysia for SMEs
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PDF
AutoCAD Professional Crack 2025 With License Key
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Cost to Outsource Software Development in 2025
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Nekopoi APK 2025 free lastest update
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
Why Generative AI is the Future of Content, Code & Creativity?
Download FL Studio Crack Latest version 2025 ?
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Wondershare Filmora 15 Crack With Activation Key [2025
Complete Guide to Website Development in Malaysia for SMEs
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
AutoCAD Professional Crack 2025 With License Key
Navsoft: AI-Powered Business Solutions & Custom Software Development
CHAPTER 2 - PM Management and IT Context
Reimagine Home Health with the Power of Agentic AI​
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Cost to Outsource Software Development in 2025
Design an Analysis of Algorithms II-SECS-1021-03
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Nekopoi APK 2025 free lastest update
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
Monitoring Stack: Grafana, Loki & Promtail
Weekly report ppt - harsh dattuprasad patel.pptx

Auditing Development Guidelines in GitHub Repositories

Editor's Notes

  • #2: I am Evgeny Poberezkin. I work as the Head of Development at MailOnline – one of the largest news websites better known as Daily Mail. I work with 25 excellent software developers and we do very cool stuff there.   Previously I’ve been extremely lucky to have the opportunity to build the second generation of MailOnline content management system. We’re now about to kick off another exciting JavaScript project and we’d be very happy to hire several experienced developers.
  • #3: So, let's see, who here uses any guidelines? For example, can you raise a hand if you do static code analysis with eslint or some other tool? Now, do you measure code coverage? Do you follow git flow making all changes via PRs that are reviewed by your colleagues? Do you have requirements for commit names (semantic commits)? Why do we need guidelines? There are many reasons for them. We may believe that they increase productivity. We work faster as we don't have to make decisions about many things. Or we may believe that they make code more maintainable. As one of our engineers said, "everybody's code becomes my code". Or we may believe that they increase stability and quality – the code is more likely to work all the time, every time. The bottom line is: they make us feel better about the work we do and they help us communicate
  • #4: So, what groups of guidelines we are talking about? Firstly, the guidelines on how we write code. Tabs or spaces? If spaces, 2 or 4 spaces? Space or no space after function name? Etc. etc. – a million of other equally important things Secondly, the guidelines on how we write tests and measure code coverage. Thirdly, the guidelines covering our development process: PR or not PR? Commit names? etc. Having all these rules is very important – if nothing else they make us feel very professional.
  • #6: I believe that in the good old days there was one success criteria applied to code: it is good, as long as it works and it is fast, as computer usage was very expensive. There were no other guidelines. I hope.
  • #7: But then this man came and split our hearts and minds irreversibly, taking away our freedom. He said: "there are bad parts in your code, I will tell you what they are. You should remove them, even if your code works." And he gave us a tool – jslint to guide us towards a better code, as he defined it.
  • #8: But then Nicholas Zakas brought us a bit of our freedom back. He said: "there are bad parts in your code indeed, but only you can decide what is good and what is bad" And he gave us a tool – eslint to guide us towards a better code, as we defined it. Now we have tons of fun creating rules for all possible cases and making decisions about how we write code and which set of rules we use. But at least within the project we are consistent. Remember, "everybody's code is my code"?
  • #9: Secondly, the tests. That is a big and controversial question. TD or not TD?
  • #10: There are some strong and famous advocates of "test-first" ideology. On the left here we have Kent Beck, who created TDD. Or "rediscovered", as he says himself. On the right here we have Uncle Bob, who preaches and teaches TDD at any opportunity.
  • #11: But quite a few leading open source developers rejected TDD. The creator of RoR and the founder of Basecamp David Hansson wrote the article "TDD is dead. Long live testing". He wrote: "Test-first fundamentalism is like abstinence-only sex ed[ucation]: An unrealistic, ineffective morality campaign for self-loathing and shaming."
  • #12: I wrote a blog post summarising my thoughts about TDD and how test coverage can be used to drive the development instead. "Right or wrong, this is closer to how I actually work most of the time." "I don't fully agree with this, but this looks very much like my preferred approach"
  • #13: Thirdly, the development process
  • #14: Do we use PRs and mandatory reviews or do we commit directly to master branch? I've heard equally strong arguments for both approaches and practised both. These days, it's PRs. Mostly.
  • #15: Do we allow anything in commit names or we have some requirements for them? E.g. lots of people use "semantic commits" but I am yet to see any hard evidence whether they increase productivity or help in any other way. Some teams require that Github or Jira tickets are included in the commit message.
  • #16: If we agree to follow some guidelines, how do we know if we follow them? At MailOnline we have nearly 900 repositories, 200 of them are changed in a month so trying to answer this question without some kind of tool is impossible.
  • #17: I've found only two things