[email protected] 02/08/2008 slide 1 industry forum industry forum sean landis overstock.com
Post on 21-Dec-2015
223 views
TRANSCRIPT
02/08/2008 Slide 2
About the PresenterAbout the Presenter
Director of Software Development Previously Architect 20 years of experience Product development, IT, and Research Bachelors, Computer Science, U of Utah Masters of Engineering, CS, Cornell
02/08/2008 Slide 3
AgendaAgenda
About Overstock.com False Expectations? Basic Skills of Software Development Pursuing Excellence Traps and Pitfalls Q & A
02/08/2008 Slide 6
Interesting Overstock.com Interesting Overstock.com FactsFacts
One of the top 7 US e-tailers 4th best customer service in US 2 years running,
according to the National Retail Federation Best performing mass market web site
according to Gomez About $800 Million in annual sales 22 Million registered customers Actual peak load of ~2000 requests/second Web site comprised of about 500 systems Catalog: 25% Overstock, 75% partners (~1000)
02/08/2008 Slide 8
Web Site TechnologiesWeb Site Technologies Java 5/6 – No Java EE Jamon templating language Hibernate ORM Oracle 10g 10 node Real Application
Cluster RESTful Web Services Oracle Coherence Distributed Cache Mercado Search Engine cluster Many others…
02/08/2008 Slide 9
Other TechnologiesOther Technologies
JavaEE, JBoss, JSF, SEAM Java Message Service (JMS) SQL, JDBC Ant, Maven 2, SVN, Eclipse All sorts of 3rd party integrations
02/08/2008 Slide 11
Cool Technologies?Cool Technologies?
Dreams of working with the cool stuff Graphics, gaming, grid computing, etc.
Good luck! There’s always a catch Few “cool” jobs Low pay thanks to high demand Required experience and qualifications Not always as cool as advertised
Be flexible – fun jobs are everywhere
02/08/2008 Slide 12
Ready to Develop?Ready to Develop?
Many companies don’t think so You may start in support, QA, or
operations If developing, expect a short leash Earning credibility takes time Internships and employment pay
dividends
02/08/2008 Slide 13
Will Advanced Degrees Will Advanced Degrees Help?Help?
Bachelors No big deal unless from a top university
Masters Valued by industry Sufficient to differentiate
PhD is great for academia & research…
…but only if it is relevant Diminishing returns for industry
02/08/2008 Slide 14
School vs. BusinessSchool vs. Business
School is competition: win/lose Business is collaboration: win/win
Requires you to shift perspective
Senior project is great, but artificial The ‘team’ controls everything In business, you control much less Many more constraints in business
02/08/2008 Slide 15
Basic Skills of Software Basic Skills of Software DevelopmentDevelopment
What you need to succeed
02/08/2008 Slide 16
ProfessionalismProfessionalism
The business comes first Understand the business &
processes Don't be afraid to ask
questions, pair program, etc. Have the courage to take the
time to do things right, and the judgment to know when to stop
02/08/2008 Slide 17
Key BehaviorsKey Behaviors
• Honesty• Integrity• Pride• Communicatio
n• Collaboration• Curiosity• Adaptability
• Energy• Judgment• Learnership• Leadership• Empathy• Objectiveness
02/08/2008 Slide 18
DesignDesign Design is about balancing forces
Meeting current needs vs. future needs Generality, esthetics, flexibility vs. deadlines Performance, scalability, etc. vs. complexity
Learn how to find the ‘sweet spot’ Learn to use refactoring tools KISS – Keep It Simple, Stupid DRY – Don’t Repeat Yourself YAGNI – You Aren’t Gonna Need It
02/08/2008 Slide 19
CodingCoding
Commit early and often Avoid loss of work Allow others to be up to date
Unit testing & Test Driven Development Finds problems early (thus cheaply) Helps you craft usable and reliable
solutions
02/08/2008 Slide 20
Projects and TeamsProjects and Teams
Communication is most important Collaboration next important
Not us and them, but It’s all us Must be willing to help and ask for
help Understanding and fulfilling roles Shared responsibility and
accountability
02/08/2008 Slide 22
The Mythical 5%The Mythical 5%
Bruce Eckel claimed in his commencement address at Neumont University:
“5% of programmers are 20x more productive than the other 95%”
The reality behind this claim is:
A small number of programmers are much more productive than the rest
How do you get into the “5%?”
02/08/2008 Slide 23
Foster Key BehaviorsFoster Key Behaviors
Be passionate about your profession Develop strong communication skills Foster a realistic “Can Do” attitude Become a great collaborator Learn to see the “Big Picture”
Identify the stakeholders Understand the business impact of
decisions
02/08/2008 Slide 24
Continuous LearningContinuous Learning
Read, read, read Keep up to date with the latest trends Follow language evolution Use a variety of operating systems Attend relevant conferences Identify and study the leaders in your
field Develop journeyman technical skills
02/08/2008 Slide 25
Technical LeadershipTechnical Leadership
Experiment with new technologies Learn a new technology and teach it Continually challenge yourself, do not
be complacent Mentor others once you’ve got
something to share Take on responsibility and be
accountable
02/08/2008 Slide 27
The Job Hunt TrapThe Job Hunt Trap
A common theme in 1000s of resumes The first few jobs don’t work out
The wrong evaluation criteria Too much emphasis on:
The money The technology The hardware
02/08/2008 Slide 28
Job Hunt: Use a Holistic Job Hunt: Use a Holistic ApproachApproach
Who will you work with? Are they smarter than you? Are the employees happy or tired, committed or
ambivalent, stressed or relaxed, etc? How are you cared for during the interview? Will you enjoy the work environment? Does the development process make sense? How are decisions made? What are the work hour expectations? Are the verbal commitments written into your offer?
02/08/2008 Slide 29
The Ownership TrapThe Ownership Trap
Don’t take too much ownership in your work
Excessive ownership can lead to: Defensiveness Inability to accept criticism Resentment Fear Destructive team dynamics Low productivity for you and your team
02/08/2008 Slide 30
Ownership: Let It GoOwnership: Let It Go
Your work belongs to your employer This attitude allows you to:
Take pride in your work Be more objective, thus making better
decisions Be detached enough to accept criticism Do what is right for the company Foster better teamwork Be more productive
02/08/2008 Slide 31
Working Harder, Not Smarter Working Harder, Not Smarter TrapTrap
Easy to find yourself doing 50 – 60 hr. weeks
Some companies, especially startups, foster this behavior
Leads to: High stress, unhappy employees Destructive behaviors Burn out, poor retention Poor quality and low productivity
02/08/2008 Slide 32
Work Smart: 40 hour Work Smart: 40 hour WeeksWeeks
Studies have revealed: Higher productivity and quality Happier, more loyal employees Stronger, more sustainable teams
But expect: Occasional pushes To catch yourself working more than you
should
02/08/2008 Slide 33
Snake Oil TrapSnake Oil Trap Misinformation is rampant in our industry
Marketeers sell hard to you and your managers Marketing disguised as information
Examples: TheServerSide.com and TechTarget.com Marketing disguised as technical conferences
Developers generate hype (those 95%-ers) Think the ‘next big thing’ will solve their
problems Most bloggers and ‘experts’ aren’t experts Important technology issues aren’t discussed
02/08/2008 Slide 34
Technological Due Technological Due DiligenceDiligence
Read – but don’t just believe Perform the needful amount of effort to
determine the capacity for producing a desired result within your context Even hyped technologies have strengths Find them and be sure they match your
needs
02/08/2008 Slide 35
SummarySummary
Set realistic expectations Develop the basic skills Continuously pursue excellence Understand and avoid the traps and
pitfalls