Developers! Y U No Open Source Ur Code?

35
DEVELOPERS! Y U No Open Source Ur Code? http://ragecomics.memebase.com/ Tuesday, 1 November 11

description

This is the slide deck from my PHPNW11 Unconference presentation on

Transcript of Developers! Y U No Open Source Ur Code?

Page 1: Developers! Y U No Open Source Ur Code?

DEVELOPERS!Y U No Open Source Ur Code?

http://ragecomics.memebase.com/

Tuesday, 1 November 11

Page 2: Developers! Y U No Open Source Ur Code?

SOMETHING ABOUT ME

http://www.flickr.com/photos/jimmiehomeschoolmom/

http://www.flickr.com/photos/catatronic/

Craig Marvelley

Developer @ Box UK

@craigmarvelley

boxuk.com

Tuesday, 1 November 11

Page 3: Developers! Y U No Open Source Ur Code?

What is open source software?

http://ragecomics.memebase.com/

Tuesday, 1 November 11

Page 4: Developers! Y U No Open Source Ur Code?

Hands up if you use open source software

http://www.flickr.com/photos/cheesy42/

Tuesday, 1 November 11

Page 5: Developers! Y U No Open Source Ur Code?

http://www.flickr.com/photos/cheesy42/

Hands up if your company uses open source software

Tuesday, 1 November 11

Page 6: Developers! Y U No Open Source Ur Code?

http://www.flickr.com/photos/cheesy42/

Hands up if you release open source software

Tuesday, 1 November 11

Page 7: Developers! Y U No Open Source Ur Code?

http://www.flickr.com/photos/cheesy42/

Hands up if your company releases open source software

Tuesday, 1 November 11

Page 8: Developers! Y U No Open Source Ur Code?

A recent survey of 300 companies found:

Source: Accenture (2010): http://newsroom.accenture.com/article_display.cfm?article_id=5045

28%

22%

50%

Using Open Source Software Don’t intend to use it Experimenting with it

Tuesday, 1 November 11

Page 9: Developers! Y U No Open Source Ur Code?

A recent survey of 300 companies found:

Source: Accenture (2010): http://newsroom.accenture.com/article_display.cfm?article_id=5045

71%

29%

Willing to contribute software back to the community Unwilling to contribute

Tuesday, 1 November 11

Page 10: Developers! Y U No Open Source Ur Code?

• Utilised in many of our products

• Particularly the Amaxus ® Content Management System

• Amaxus is mainly written in PHP

• Version 3 (2002): ~1,439,295 lines of PHP, 3% open source

• Version 4 (2008): ~1,474,994 lines of PHP. ~81% open source

OPEN SOURCE AT BOX UK

Tuesday, 1 November 11

Page 11: Developers! Y U No Open Source Ur Code?

Avoid reinventing the wheel

http://www.flickr.com/photos/rvignes/

Tuesday, 1 November 11

Page 12: Developers! Y U No Open Source Ur Code?

Quality is paramount

http://www.flickr.com/photos/zigdon/

Tuesday, 1 November 11

Page 13: Developers! Y U No Open Source Ur Code?

Make sure it’s accessible

http://www.flickr.com/photos/potatojunkie/

Tuesday, 1 November 11

Page 14: Developers! Y U No Open Source Ur Code?

Check the license suits the usage

http://www.flickr.com/photos/ecastro/

Tuesday, 1 November 11

Page 15: Developers! Y U No Open Source Ur Code?

THE TURNING POINT

Tuesday, 1 November 11

Page 16: Developers! Y U No Open Source Ur Code?

http://ragecomics.memebase.com/

Tuesday, 1 November 11

Page 17: Developers! Y U No Open Source Ur Code?

OBSCURA

• PHP component to perform thumbnailing

•Written for PHP 5.3 - namespaces, autoloading, fully unit tested

• Integrated back into Amaxus

• Could we do another one?

Tuesday, 1 November 11

Page 18: Developers! Y U No Open Source Ur Code?

BOXUK-DI

• Amaxus has an annotation-based dependency injection container

• Uses the Addendum library to parse doc-blocks

•We refactored Amaxus to extract the DI code

• Existing unit tests made sure we didn’t break anything

•We now had two libraries on our hands

Tuesday, 1 November 11

Page 19: Developers! Y U No Open Source Ur Code?

“What if we open sourced them?”

http://ragecomics.memebase.com/

Tuesday, 1 November 11

Page 20: Developers! Y U No Open Source Ur Code?

PRECEDENT

• Zend

• Sensio Labs

• Liip AG

• Gradwell

• openSky

• knpLabs

Tuesday, 1 November 11

Page 21: Developers! Y U No Open Source Ur Code?

GOING OPEN-SOURCE

• Hosted the libraries on a company github account

• Redesigned our ‘labs’ page on boxuk.com

• Authored content for the website to announce and document the libraries

• Tweeted about it from the company account

Tuesday, 1 November 11

Page 22: Developers! Y U No Open Source Ur Code?

Tuesday, 1 November 11

Page 23: Developers! Y U No Open Source Ur Code?

Feedback for Obscura

Tuesday, 1 November 11

Page 24: Developers! Y U No Open Source Ur Code?

Feedback for boxuk-di

Tuesday, 1 November 11

Page 25: Developers! Y U No Open Source Ur Code?

“Lets do some more!”

http://ragecomics.memebase.com/

Tuesday, 1 November 11

Page 26: Developers! Y U No Open Source Ur Code?

BOXUK-ROUTING

• Refactored and extracted the routing system from Amaxus

• Slightly different to other routing components

•Decreased coupling

• Improved code quality

• Improved test coverage

Tuesday, 1 November 11

Page 27: Developers! Y U No Open Source Ur Code?

DESCRIBR

• Component to extract metadata from any file

•Wraps php-reader, adding a plugin architecture

• Encourages others to contribute plugins and functionality

• First library to be used outside Amaxus

Tuesday, 1 November 11

Page 28: Developers! Y U No Open Source Ur Code?

Bringing it all together

http://www.flickr.com/photos/pinksherbet/

Tuesday, 1 November 11

Page 29: Developers! Y U No Open Source Ur Code?

CODING STANDARDS

•We had a defined coding standard

• It was only written down; no way to enforce it

• Enter PHPCodesniffer

•We wrote a set of sniffs to check code conformed to our standard

• Integrated it into our Continuous Integration process

•Open sourced the sniffs on Github

Tuesday, 1 November 11

Page 30: Developers! Y U No Open Source Ur Code?

DEPLOYMENT

•We started using the libraries in live projects

• Git isn’t ideal at dependency management

• Looked into using PEAR as a deployment mechanism

•Wasn’t straightforward to begin with - documentation lacking

• Eventually successful - and it was worth it

Tuesday, 1 November 11

Page 31: Developers! Y U No Open Source Ur Code?

The Future

http://www.flickr.com/photos/alejandroamador/

Tuesday, 1 November 11

Page 32: Developers! Y U No Open Source Ur Code?

MORE OPEN SOURCE SOFTWARE

• Continue to release PHP components

• Perhaps contribute to the Symfony CMF project

• Release code for other languages?

Tuesday, 1 November 11

Page 33: Developers! Y U No Open Source Ur Code?

SUMMING UP

• We have improved our code quality

• We have an enforced coding standard

• We have a PEAR channel

• We have experience using Git and Github

• Our website has more content

• The company has increased visibility

• Our developers can work on diverse, contained projects that make a difference

Thanks to our open source experiment:

Tuesday, 1 November 11

Page 34: Developers! Y U No Open Source Ur Code?

LESSONS LEARNED

• Remember YAGNI - You Ain’t Gonna Need It

• If refactoring existing code for release, choose wisely

• Use the right tools for the job

Tuesday, 1 November 11

Page 35: Developers! Y U No Open Source Ur Code?

THANKS FOR LISTENING!

@craigmarvelley

http://github.com/boxuk

http://joind.in/talk/view/3810

Tuesday, 1 November 11