Date post: | 21-Dec-2015 |
Category: |
Documents |
View: | 213 times |
Download: | 0 times |
Matt Penner - Inland Empire .Net User Group
DISCUSSIONS:
Developing with Passion
Creating High Quality Applications
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
Discussion??? I can’t just sit here?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
Discussion???I can’t just sit here?
I like to talk but I get self-conscious Audience Involvement Want your input on:
What you love What you hate Everything in between
Hear ideas from everyonebeginner to the experienced
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
W
January 13th, 2009
hatdoesitmeantobePassionate?
Matt Penner - Inland Empire .Net User Group
What does it mean to bePassionate?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
What does it mean to bePassionate?
Burst with Excitement? Talk to your Family or Friends about? Spend every waking moment
Thinking? Learning? Doing?
January 13th, 2009
What gets you to:
Matt Penner - Inland Empire .Net User Group
What are you Passionate about?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
What are you Passionate about?
FamilyFriends
Religion Money
Music ArtTechnology
Cars
BoatsTravel
Partying Learning
Working???
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
What does it means to be passionate about development?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
What does it means to be passionate about development?
Love what you do Craving to code (at work, school, home) Extracurricular (what do you work on
when you're not at work?)
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
Why is it so important?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
Why is it so important?
Life is too short to hate what you do
Miserable at work Miserable at home (with self,
family, friends, etc) Stress
January 13th, 2009
Negatives
Matt Penner - Inland Empire .Net User Group
Why is it so important?
Low chance of actually being any good at what you do
Hard to create a good product when you don’t care about your product
January 13th, 2009
Negatives
Matt Penner - Inland Empire .Net User Group
Why is it so important?
Poor quality work creates a vicious cycle of poor recognition poor customer service poor customer relations which leads to more poor work, etc.
Low chance of promotion in work Low chance of recognitionJanuary 13th, 2009
Negatives
Matt Penner - Inland Empire .Net User Group
Why is it so important?
Actually enjoy life Enjoy talking about your work with
others (wife/family/co-workers/etc) Enjoy going into work each day Enjoy when you need to work late
hours
January 13th, 2009
Positives
Matt Penner - Inland Empire .Net User Group
Why is it so important?
Enjoy creating good product - what you like to do you will do well
Enjoy talking with customers of your products and helping to improve their job
Enjoy seeing your benefit to others over the long term (long projects, several revisions, etc)
January 13th, 2009
Positives
Matt Penner - Inland Empire .Net User Group
Why is it so important?
Self motivating learning new/better techniques increasing your own interest and creativity discussing new ideas and concepts with colleagues
Recognition by: Boss Co-workers Customers Community etc
PromotionJanuary 13th, 2009
Positives
Matt Penner - Inland Empire .Net User Group
What steals your passion?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
What steals your passion?
Simply not interested in what you’re doing
Not growing in your education/skills
January 13th, 2009
Self
Matt Penner - Inland Empire .Net User Group
What steals your passion?
Boring work Boring projects
January 13th, 2009
Self
Matt Penner - Inland Empire .Net User Group
What steals your passion?
Bad relationships with your boss/co-workers Bad relationships with customers Little support from other “players”
IT staff Management DBA Co-workers Other departments Etc
January 13th, 2009
Social
Matt Penner - Inland Empire .Net User Group
What steals your passion?
Poor environment Distracting environment
January 13th, 2009
Work Environment
Matt Penner - Inland Empire .Net User Group
What steals your passion?
Poor quality hardware Poor internet connection Lack of sufficient tools No/poor backup No version control Loss of hours of work
January 13th, 2009
Work Environment
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
Attitude is #1 (don’t laugh!) Especially in this economy
Constant learning Magazines, books, Internet, etc. Certifications Community involvement
User Groups, Open Source projects
January 13th, 2009
Self
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
Change of job? Change of dept? Change of project? None of these may be realistic
January 13th, 2009
Work – Time for a move?
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
Interact with your co-workers Even if they are in a different dept or
location Intelligent co-workers learn from and
challenge each other Chances are there is at least two other
people in your company who know more than you about something
January 13th, 2009
Work - Relationships
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
Cultivate relationships with others Management co-workers IT DBA
January 13th, 2009
Work - Relationships
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
Work from home? New office? New furniture? Barrowed furniture? Noise cancelling head phones Personal items
Music Pictures Etc.
January 13th, 2009
Work – Pleasing Environment
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
High-end equipment Computers Internet Access Software Tools
IDE Re-Sharper Photoshop (really)
January 13th, 2009
Work – Great Tools
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
Selling points Low cost compared to project costs Computers have never been cheaper Internet access has never been cheaper
(FIOS?) Off-lease equip
January 13th, 2009
Work – Great Tools
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
High quality backup system Poor man’s (personal) backup
USB drives Local svn
Version control system May have VSS in your licensing subscription svn is free!
Continuous integration systemJanuary 13th, 2009
Work – Avoiding loss of work
Matt Penner - Inland Empire .Net User Group
How to keep (or regain)your passion?
Agile practices TDD Frequent Deliverables (heartbeat) Customer involvement Flexible design
January 13th, 2009
Work – Techniques
Matt Penner - Inland Empire .Net User Group
Developing High Quality Software
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
What does it means to develop a "good" product?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
What does it means to develop a "good" product?
Delivered in time Within budget Fulfills customer requirements Iron Triangle? How do you define successful?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
When is it good enough?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
When is it good enough?
By the deadline no matter what’s finished
When the requirements are done When it’s high quality What if these don’t all happen at the
same time?And they most likely won’t!
The answer is different with every projectJanuary 13th,
2009
When do you say “Stop and ship it!”
Matt Penner - Inland Empire .Net User Group
Who is the customer?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
Who is the customer? The one asking for the product? The one paying for the product? The users of the product (not
necessarily either of the two roles above)?
The one selling the product?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
How do you determine when the customer is satisfied?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
How do you determine when the customer is satisfied?
They stop calling you for updates/fixes They start calling you for updates/fixes They have signed off on the functional
requirements doc Your competitor’s customers start using
your product Can they really be satisfied? Is it reasonable on every project to
satisfy the customer?January 13th, 2009
Matt Penner - Inland Empire .Net User Group
What is a bug versus a feature request?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
What is a bug versus a feature request?
Bug The system doesn’t work the way the spec
says it should The system doesn’t work the way your
customers want it to The system doesn’t work the way your
customers expect it to Are these Feature Requests?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – User Scope
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – User Scope
Just analyzes and displays data Drag-n-drop components Little attention to UI or backend Simple "click this" functionality Enough to satisfy the requirements
January 13th, 2009
Simple internal app
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – User Scope
Items not directly related to the function are important Scalability UI Help docs etc
January 13th, 2009
Public facing or customer buy-in app
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – User Scope
Dramatically different approaches Often cannot be easily switched back and forth Difficult to know which project is which
Today's home grown report app for accounting may be tomorrow's payroll system serving the entire
enterprise. Always develop the 20%?
Rich OO designs, optimizations, and scalability Assume the 3 people using it today will be the 3
million using it tomorrowJanuary 13th, 2009
The dilemma
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – Dev Scope
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – Dev Scope When do you develop in house? When do you buy off the shelf?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – Dev Scope
Get exactly what you want Full control over the future stability
and functionality Potentially hours saved as complexity
increases
January 13th, 2009
In-house positives
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – Dev Scope
Potentially much higher cost up front Delay in rapid development
January 13th, 2009
In-house negatives
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – Dev Scope
Saves initial dev time Allows rapid development Lower training cost (initially) Open to new functionality rapidly
(AJAX, REST, etc)
January 13th, 2009
Off-the-shelf positives
Matt Penner - Inland Empire .Net User Group
The 80/20 rule – Dev Scope
Quality now directly tied to: Potential of lack of updates Lack of documentation Poor implementation
Provider drops the product May not fit your specific requirement
Off the shelf tends to be built for the general population
(the 80%). Potentially very high cost in “tweaking” outside of
it's intended use (styling, custom events, custom rules, etc)
January 13th, 2009
Off-the-shelf negatives
Matt Penner - Inland Empire .Net User Group
The “hack” versus the solution
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
The “hack” versus the solution Usually want to develop the solution When is a hack OK?
Time Priority Cost Usage Is it ever OK?
January 13th, 2009
Matt Penner - Inland Empire .Net User Group
Thanks! Stay Passionate!!!! Develop with quality!
http://MattPenner.infoMy tech blog
January 13th, 2009