The secrets of the strong developer
1 / 27

The Secrets of the Strong Developer - PowerPoint PPT Presentation

  • Uploaded on

The Secrets of the Strong Developer. Life in the commercial trenches. Dave Cowden Director of Development CoLinx , LLC. About Dave.. . Where I work:. Industrial E-commerce and Logistics services provider A non-profit co-op owned by large industrial companies

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'The Secrets of the Strong Developer' - glenna

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
The secrets of the strong developer

The Secrets of the Strong Developer

Life in the commercial trenches

Dave Cowden

Director of Development

CoLinx, LLC

Where i work
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

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

Statistics logistics
Statistics: Logistics

  • 1M sqftof warehouse space, plus 500k sqftequivalent 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 )

What is dev strength
What is Dev Strength?

The size of problemyou can solve

Your value to the organization

3 secrets to being a strong developer
3secretsto being a strong developer

Be a superhero

Study Logistics

Write Less Code

Study logistics
Study Logistics

“Amateurs study tactics, professional soldiers study logistics.

-- General Omar Bradley, WWII

Logistics in the software biz
‘Logistics’ in the software biz?

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

  • Version control/Release Management

  • Continuous integration

  • Testing

  • Infrastructure

  • Dependency management

  • Project Management

Could you set up a vcs system for your team
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

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

Automate all of the work that is not writing code!

Do you automatically and actively manage dependencies
Do you automatically and actively manage dependencies?

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

  • Sometimes there can be conflicts

Do you automate your tests
Do you automate your tests?

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

  • Integration tests (Selenium)

  • Load Tests ( apache ab )

Do you know how to deploy to the cloud
Do you know how to deploy to the cloud?

Strong developers can:

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

  • Leverage virtualization

Are you agile with a little a
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:

With strong logistics the bazaar kills the cathedral
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 cathedral, CoLinx Owners

  • $5B/yr

  • Annual releases

  • Hundreds of developers

  • The bazaar, CoLinx

  • $80M/yr

  • Monthly releases

  • 10 developers

With strong logistics developers can do amazing things
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:

Write less code
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

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! )

Use open source software oss
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

Use a best of breed approach when architecting
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

Passionately evangelize code re use in every way possible
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’

Superheros are all about context
Superheros are all about context

  • Superheros apply a superpower in a context of mortals. Superhero developers realize this as well:

    • Knowing how to make computers do what you want is your super-power.

    • A non-computer business domain is your context of mortals.

  • Programmer @Google => superman on Krypton.

  • Programmer with business mojo: => superhero!

Part 1 making computers do what you want
Part 1: Making computers do what you want.

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

  • Networks

  • Databases

  • Unix/Windows System Admin

  • Firewalls/Routers

  • QA/Testing

  • Security

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

Part 2 become an expert in your business
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!

Growing superheros 3r c
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!


  • It is the most exciting time ever to be a software developer

  • Thanks for the opportunity!

  • Questions?