the secrets of the strong developer life in the commercial trenches dave cowden director of...

27
The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Upload: tiffany-ray

Post on 23-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

The Secrets of the Strong DeveloperLife in the commercial trenches

Dave CowdenDirector of DevelopmentCoLinx, LLC

Page 2: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

About Dave..

Page 3: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Where I work:• Industrial E-commerce and Logistics services provider• A non-profit co-op owned by large industrial companies• Founded in 2001 with 40 employees, 850 today• Annual ‘revenues’ 80M• Mostly Java, some python• Small dev team– 11 developers

Page 4: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Statistics: Ptplace.com• 2.5M transactions/yr and 20M hits per month• About 50,000 users• 750k lines of code • 86 storefronts serving users in nearly time zones• 17 languages

Page 5: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Statistics: Logistics• 1M sqft of warehouse space, plus 500k sqft equivalent storage

in super-sweet automated storage systems• 24x7x364 operation• 1.2 M pounds of freight shipped daily• Shipments to most of the US next day via truck• Releases monthly ( releases must occur during a 20 minute

shift change )

Page 6: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

What is Dev Strength?

The size of problem you can solve

Your value to the organization

Page 7: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

3 secrets to being a strong developer

Be a superhero

Study Logistics

Write Less Code

Page 8: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Study Logistics

“Amateurs study tactics, professional soldiers study logistics.

-- General Omar Bradley, WWII

Page 9: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

‘Logistics’ in the software biz?

• Version control/Release Management• Continuous integration• Testing• Infrastructure• Dependency management• Project Management

Strong developers are experts at the activities that deliver high quality software on a sustainable basis.

Page 10: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Could you set up a VCS system for your team?

• Keep track of all changes, who made them, when, and why.

• Coordinate concurrent changes by different developers

• Develop multiple versions of a product at the same time, while also allowing combining those changes at a later time

• Release different versions of the same product at different times

Page 11: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Can you build and deploy your product with one button press?

Automate all of the work that is not writing code!

Page 12: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Do you automatically and actively manage dependencies?

• Track dependencies, and deps of deps, all the way down the chain

• Sometimes there can be conflicts

Page 13: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Do you automate your tests?

• Unit tests (testng /junit ) ( part of your CI builds right? )

• Integration tests (Selenium)• Load Tests ( apache ab )

Page 14: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Do you know how to deploy to the cloud?

• Deploy a new server with tomcat, java, etc on amazon EC2 in 5 minutes

• Leverage virtualization

Strong developers can:

Page 15: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Are you agile (with a little ‘a’)?• Strong shops use a combination of classical and agile

development to create an efficient delivery process• CoLinx uses Scrum in particular:

Page 16: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

With strong logistics, the bazaar kills the cathedral• Very large corporations and teams historically had the upper hand on tooling,• Small teams had the flexibility, and made do with lesss• Today’s OSS tips the scale decidedly in favor of small, agile teams with

strong logistics

The bazaar, CoLinx• $80M/yr • Monthly releases• 10 developers

The cathedral, CoLinx Owners• $5B/yr • Annual releases• Hundreds of developers

Page 17: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

With strong Logistics, developers can do amazing things!

• Create a source code repository, with continuous integration builds, release management tools, etc.

• Create a bug tracking site, a public blog, a web presence, and email accounts for communication

• Create an internet scale application,• Deploy the application on geo-distributed servers around the world• Create a mobile application that is immediately available in the

market to tens of millions of users• Derive revenue without having any significant invested capital.• Bring an idea to market many times faster than very large

companies could.

With milk money, a developer can single handedly:

Page 18: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Write Less Code

• There are no points for writing code that is:• Not necessary• Already available

• Strong developers are 40% integrator, 20% author, 20% researcher, 20% sysadmin/dba/network

Page 19: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Example: Ptplace.com• 1M CoLinx LOCs represents about 15% of the product• 144 open source libraries are the other 85%• CoLinx delivers new releases to production monthly, about 5x

faster than the IT team of our owners• ( You need strong logistics to pull it off! )

Page 20: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Use Open Source Software (OSS)

• Higher Quality• Lower cost ( both upfront and total ) ( Free as in beer )• Freedom from:• annoying license management and budgeting• incompetent support helpdesks who waste your time• Vendor lock-in

• Enhances agility. Corporate annual budgets do not make annual releases easy

• Encourages an optimistic, can-do attitude

Page 21: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Use a best of breed approach when architecting

• Nothing is good at everything. Do it all products are the dark side.• Do not be afraid to integrate multiple products. • Applies for closed and open source products• The strategy will lead to less code in the long run

Page 22: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Passionately Evangelize code re-use in every way possible

• Assume that someone else has written what you are writing• Learn and teach places to find toolkits and libraries. It often viewed

as ‘non-work’ but nothing could be further from the truth!• Prefer already written, tested code to yours. Replace yourself when

you can• Strive for a mix of young and experienced devs working together• Fight for ability to download and still third party libraries freely.

Learn what licenses work for you/your company.• Install automated copy-paste code detectors• Cultivate a culture of get-r-done, not ‘build-my-fiefdom’

Page 23: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Superheros are all about context

• Superheros apply a superpower in a context of mortals. Superhero developers realize this as well:1. Knowing how to make computers do what you want

is your super-power.2. A non-computer business domain is your context of

mortals.• Programmer @Google => superman on Krypton.• Programmer with business mojo: => superhero!

Page 24: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Part 1: Making computers do what you want.

Strong developers extend their work to include non-software too. ‘Devops’ is a commonly used term

These folks are Generalists– you can build an entire company around them

• Networks• Databases• Unix/Windows System

Admin• Firewalls/Routers• QA/Testing• Security

Page 25: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Part 2: Become an expert in your business.• In a complex business: • there are usually lots of developers• and lots of business people • And sometimes even lots of business analysts• There is lots of competition for superhero status. Those who

generalize and adapt will become superheros.• In a small business:• There is no dev staff or business analysts at all• Superheros are rare ( why is that? More later )

If you can architect tech solutions and get it 80% right 80% of the time, you are a superhero in either environment!

Page 26: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Growing superheros: 3R+C• Future jobs are either:• Telling computers what to do• Being told by a computer what to do

• Programming should be taught in schools at a level of importance as the 3-R’s• Education still views programming as a vocation.• Programming teaches critical thinking• Programming knowledge makes you a superhero

when combined with another discipline.

• Learning to code is not a non-refundable ticket to krypton or geekworld!

Page 27: The Secrets of the Strong Developer Life in the commercial trenches Dave Cowden Director of Development CoLinx, LLC

Questions?• It is the most exciting time ever to be a software developer• Thanks for the opportunity!• Questions?