1 / 57

Discussions:

Developing with Passion Creating High Quality Applications. Discussions:. Discussion??? I can’t just sit here?. 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

jereni
Download Presentation

Discussions:

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. Developing with Passion Creating High Quality Applications Discussions: Matt Penner - Inland Empire .Net User Group

  2. Discussion??? I can’t just sit here? Matt Penner - Inland Empire .Net User Group

  3. 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 everyone beginner to the experienced Matt Penner - Inland Empire .Net User Group

  4. W h a t d o e s i t m e a n t o b e P a s s i o n a t e ? Matt Penner - Inland Empire .Net User Group

  5. What does it mean to bePassionate? Matt Penner - Inland Empire .Net User Group

  6. What does it mean to bePassionate? What gets you to: • Burst with Excitement? • Talk to your Family or Friends about? • Spend every waking moment • Thinking? • Learning? • Doing? Matt Penner - Inland Empire .Net User Group

  7. What are you Passionate about? Matt Penner - Inland Empire .Net User Group

  8. What are you Passionate about? Family Friends Religion Money Music Art Technology Cars Boats Travel Partying Learning Working ??? Matt Penner - Inland Empire .Net User Group

  9. What does it means to be passionate about development? Matt Penner - Inland Empire .Net User Group

  10. 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?) Matt Penner - Inland Empire .Net User Group

  11. Why is it so important? Matt Penner - Inland Empire .Net User Group

  12. Why is it so important? Negatives • Life is too short to hate what you do • Miserable at work • Miserable at home (with self, family, friends, etc) • Stress Matt Penner - Inland Empire .Net User Group

  13. Why is it so important? Negatives • 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 Matt Penner - Inland Empire .Net User Group

  14. Why is it so important? Negatives • 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 recognition Matt Penner - Inland Empire .Net User Group

  15. Why is it so important? Positives • 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 Matt Penner - Inland Empire .Net User Group

  16. Why is it so important? Positives • 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) Matt Penner - Inland Empire .Net User Group

  17. Why is it so important? Positives • Self motivating • learning new/better techniques • increasing your own interest and creativity • discussing new ideas and concepts with colleagues • Recognitionby: • Boss • Co-workers • Customers • Community • etc • Promotion Matt Penner - Inland Empire .Net User Group

  18. What steals your passion? Matt Penner - Inland Empire .Net User Group

  19. What steals your passion? Self • Simply not interested in what you’re doing • Not growing in your education/skills Matt Penner - Inland Empire .Net User Group

  20. What steals your passion? Self • Boring work • Boring projects Matt Penner - Inland Empire .Net User Group

  21. What steals your passion? Social • 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 Matt Penner - Inland Empire .Net User Group

  22. What steals your passion? Work Environment • Poorenvironment • Distracting environment Matt Penner - Inland Empire .Net User Group

  23. What steals your passion? Work Environment • Poor quality hardware • Poor internet connection • Lack of sufficient tools • No/poor backup • No version control • Loss of hours of work Matt Penner - Inland Empire .Net User Group

  24. How to keep (or regain)your passion? Matt Penner - Inland Empire .Net User Group

  25. How to keep (or regain)your passion? Self • Attitude is #1 (don’t laugh!) • Especially in this economy • Constant learning • Magazines, books, Internet, etc. • Certifications • Community involvement • User Groups, Open Source projects Matt Penner - Inland Empire .Net User Group

  26. How to keep (or regain)your passion? Work – Time for a move? • Change of job? • Change of dept? • Change of project? • None of these may be realistic Matt Penner - Inland Empire .Net User Group

  27. How to keep (or regain)your passion? Work - Relationships • 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 Matt Penner - Inland Empire .Net User Group

  28. How to keep (or regain)your passion? Work - Relationships • Cultivate relationships with others • Management • co-workers • IT • DBA Matt Penner - Inland Empire .Net User Group

  29. How to keep (or regain)your passion? Work – PleasingEnvironment • Work from home? • New office? • New furniture? • Barrowed furniture? • Noise cancelling head phones • Personal items • Music • Pictures • Etc. Matt Penner - Inland Empire .Net User Group

  30. How to keep (or regain)your passion? Work – GreatTools • High-end equipment • Computers • Internet Access • Software Tools • IDE • Re-Sharper • Photoshop (really) Matt Penner - Inland Empire .Net User Group

  31. How to keep (or regain)your passion? Work – Great Tools • Selling points • Low cost compared to project costs • Computers have never been cheaper • Internet access has never been cheaper (FIOS?) • Off-lease equip Matt Penner - Inland Empire .Net User Group

  32. How to keep (or regain)your passion? Work – Avoiding loss of work • 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 system Matt Penner - Inland Empire .Net User Group

  33. How to keep (or regain)your passion? Work – Techniques • Agile practices • TDD • Frequent Deliverables (heartbeat) • Customer involvement • Flexible design Matt Penner - Inland Empire .Net User Group

  34. Developing High Quality Software Matt Penner - Inland Empire .Net User Group

  35. What does it means to develop a "good" product? Matt Penner - Inland Empire .Net User Group

  36. What does it means to develop a "good" product? • Delivered in time • Within budget • Fulfills customer requirements • Iron Triangle? • How do you define successful? Matt Penner - Inland Empire .Net User Group

  37. When is it good enough? Matt Penner - Inland Empire .Net User Group

  38. When is it good enough? When do you say “Stop and ship it!” • 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 project Matt Penner - Inland Empire .Net User Group

  39. Who is the customer? Matt Penner - Inland Empire .Net User Group

  40. 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? Matt Penner - Inland Empire .Net User Group

  41. How do you determine when the customer is satisfied? Matt Penner - Inland Empire .Net User Group

  42. 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? Matt Penner - Inland Empire .Net User Group

  43. What is a bug versus a feature request? Matt Penner - Inland Empire .Net User Group

  44. 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? Matt Penner - Inland Empire .Net User Group

  45. The 80/20 rule – User Scope Matt Penner - Inland Empire .Net User Group

  46. The 80/20 rule – User Scope Simple internal app • Just analyzes and displays data • Drag-n-drop components • Little attention to UI or backend • Simple "click this" functionality • Enough to satisfy the requirements Matt Penner - Inland Empire .Net User Group

  47. The 80/20 rule – User Scope Public facing or customer buy-in app • Items not directly related to the function are important • Scalability • UI • Help docs • etc Matt Penner - Inland Empire .Net User Group

  48. The 80/20 rule – User Scope The dilemma • 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 tomorrow Matt Penner - Inland Empire .Net User Group

  49. The 80/20 rule – Dev Scope Matt Penner - Inland Empire .Net User Group

  50. The 80/20 rule – Dev Scope • When do you develop in house? • When do you buy off the shelf? Matt Penner - Inland Empire .Net User Group

More Related