+ All Categories
Home > Documents > Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland...

Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland...

Date post: 21-Dec-2015
Category:
View: 213 times
Download: 0 times
Share this document with a friend
Popular Tags:
57
DISCUSSIONS: Developing with Passion Creating High Quality Applications January 13th, 2009 Matt Penner - Inland Empire .Net User Group
Transcript
Page 1: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

DISCUSSIONS:

Developing with Passion

Creating High Quality Applications

January 13th, 2009

Page 2: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

Discussion??? I can’t just sit here?

January 13th, 2009

Page 3: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 4: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

W

January 13th, 2009

hatdoesitmeantobePassionate?

Page 5: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

What does it mean to bePassionate?

January 13th, 2009

Page 6: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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:

Page 7: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

What are you Passionate about?

January 13th, 2009

Page 8: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 9: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

What does it means to be passionate about development?

January 13th, 2009

Page 10: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 11: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

Why is it so important?

January 13th, 2009

Page 12: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 13: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 14: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 15: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 16: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 17: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 18: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

What steals your passion?

January 13th, 2009

Page 19: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 20: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

What steals your passion?

Boring work Boring projects

January 13th, 2009

Self

Page 21: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 22: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

What steals your passion?

Poor environment Distracting environment

January 13th, 2009

Work Environment

Page 23: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 24: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

How to keep (or regain)your passion?

January 13th, 2009

Page 25: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 26: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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?

Page 27: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 28: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 29: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 30: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 31: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 32: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 33: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 34: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

Developing High Quality Software

January 13th, 2009

Page 35: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

What does it means to develop a "good" product?

January 13th, 2009

Page 36: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 37: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

When is it good enough?

January 13th, 2009

Page 38: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 39: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

Who is the customer?

January 13th, 2009

Page 40: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 41: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

How do you determine when the customer is satisfied?

January 13th, 2009

Page 42: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 43: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

What is a bug versus a feature request?

January 13th, 2009

Page 44: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 45: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

The 80/20 rule – User Scope

January 13th, 2009

Page 46: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 47: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 48: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 49: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

The 80/20 rule – Dev Scope

January 13th, 2009

Page 50: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 51: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 52: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 53: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 54: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 55: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

The “hack” versus the solution

January 13th, 2009

Page 56: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

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

Page 57: Developing with Passion Creating High Quality Applications January 13th, 2009Matt Penner - Inland Empire.Net User Group.

Matt Penner - Inland Empire .Net User Group

Thanks! Stay Passionate!!!! Develop with quality!

http://MattPenner.infoMy tech blog

January 13th, 2009


Recommended