1 / 27

The Secrets of the Strong Developer

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

glenna
Download Presentation

The Secrets of the Strong Developer

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. About Dave..

  3. 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

  4. 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

  5. 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 )

  6. What is Dev Strength? The size of problemyou can solve Your value to the organization

  7. 3secretsto being a strong developer Be a superhero Study Logistics Write Less Code

  8. Study Logistics “Amateurs study tactics, professional soldiers study logistics. -- General Omar Bradley, WWII

  9. ‘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

  10. 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

  11. Can you build and deploy your product with one button press? Automate all of the work that is not writing code!

  12. Do you automatically and actively manage dependencies? • Track dependencies, and deps of deps, all the way down the chain • Sometimes there can be conflicts

  13. Do you automate your tests? • Unit tests (testng /junit ) ( part of your CI builds right? ) • Integration tests (Selenium) • Load Tests ( apache ab )

  14. 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

  15. 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:

  16. 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

  17. 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:

  18. 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

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

  20. 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

  21. 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

  22. 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’

  23. 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!

  24. 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

  25. 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!

  26. 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!

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

More Related