SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Three Developer -abilities they DON’T Teach in College Jacinto A. Limjap, Jr. Microsoft MVP for C# Senior Application Developer for FBM e-Services
It’s not that they don’t teach it
Maintainability A measure of how easy it is to understand, modify, and extend your code
Maintenance?
Facts you only find out at work Writing new code is the first thing you do at school, but the LAST thing you do at work
Facts you only find out at work You WILL spend most of your time trying to understand the code some other person wrote
Facts you only find out at work “Maintenance typically consumes 40 to 80 percent of software costs” – Robert L. Glass
Testability The degree to which a system or component facilitates the establishment of test criteria and the performance of tests to find whether those criteria have been met
Ask yourself When there’s a bug, how easy is it to find out which part of your code to fix?
Want it testable? Make it SOLID!
Single Responsibility Principle Your class should have one, and only one, reason to change
Open Closed Principle You should be able to extend a class’s behavior without modifying it
Liskov Substitution Principle Derived classes must be substitutable for their base classes
Interface Segregation Principle Make fine grained interfaces that are client specific
Dependency Inversion Principle Depend on abstractions, not on concretions
Usability The ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal
Steve Krug’s First Law of Usability
Usable software makes people happy “Good UI sells software, but it also makes people happy, because people are happy when they accomplish the task they want to accomplish” – Joel Spolsky
Your speaker Blog: http://dotnet.kapenilattex.com Twitter: http://twitter.com/LaTtEX Facebook: http://facebook.com/LaTtEX
Learning to Distinguish a Solution from a Problem http://www.computer.org/portal/web/buildyourcareer/fa010 Definition for testability: http://www.aptest.com/glossary.html The Principles of OOD http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod SOLID Development Principles – In Motivational Pictures http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principles-in-motivational-pictures.aspx Simplicity http://stuffthathappens.com/blog/2008/03/05/simplicity/ 2006 Krug, Steve: Don’t Make Me Think: A Common Sense Approach to Web Usability User Interface Design for Programmers http://www.joelonsoftware.com/uibook/fog0000000249.html References

Weitere ähnliche Inhalte

Andere mochten auch

Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Jacinto Limjap
 
Stevens Henager College Online Catalog 2010-2011
Stevens Henager College Online Catalog 2010-2011Stevens Henager College Online Catalog 2010-2011
Stevens Henager College Online Catalog 2010-2011ScottC4
 

Andere mochten auch (6)

Anith teori pembuktian
Anith teori pembuktianAnith teori pembuktian
Anith teori pembuktian
 
Bahan
BahanBahan
Bahan
 
Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7
 
Wadleigh Memorial Library Building Project
Wadleigh Memorial Library Building ProjectWadleigh Memorial Library Building Project
Wadleigh Memorial Library Building Project
 
Stevens Henager College Online Catalog 2010-2011
Stevens Henager College Online Catalog 2010-2011Stevens Henager College Online Catalog 2010-2011
Stevens Henager College Online Catalog 2010-2011
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 

Ähnlich wie Three Developer Abilities They Dont Teach In College

Solid design principles
Solid design principlesSolid design principles
Solid design principlesMahmoud Asadi
 
Object Oriented Design SOLID Principles
Object Oriented Design SOLID PrinciplesObject Oriented Design SOLID Principles
Object Oriented Design SOLID Principlesrainynovember12
 
The Taming Of The Code
The Taming Of The CodeThe Taming Of The Code
The Taming Of The CodeAlan Stevens
 
Are You a SOLID Coder?
Are You a SOLID Coder?Are You a SOLID Coder?
Are You a SOLID Coder?Steve Green
 
Test Driven Development:Unit Testing, Dependency Injection, Mocking
Test Driven Development:Unit Testing, Dependency Injection, MockingTest Driven Development:Unit Testing, Dependency Injection, Mocking
Test Driven Development:Unit Testing, Dependency Injection, Mockingmrjawright
 
Design Simple but Powerful application
Design Simple but Powerful applicationDesign Simple but Powerful application
Design Simple but Powerful applicationJim Liang
 
SOLID Design Principles for Test Automaion
SOLID Design Principles for Test AutomaionSOLID Design Principles for Test Automaion
SOLID Design Principles for Test AutomaionKnoldus Inc.
 
Basic software engineering principles - Session 1
Basic software engineering principles - Session 1Basic software engineering principles - Session 1
Basic software engineering principles - Session 1LahiruWijewardana1
 
Software development philosophies v1
Software development philosophies v1Software development philosophies v1
Software development philosophies v1Praveen Nair
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)FarjanaAhmed3
 
Accessibility, Usability and User Centred Design (Usabiltiy)
Accessibility, Usability and User Centred Design (Usabiltiy)Accessibility, Usability and User Centred Design (Usabiltiy)
Accessibility, Usability and User Centred Design (Usabiltiy)David Lamas
 
Continuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestContinuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestCory Foy
 
An ultimate guide to SOLID Principles, developers must know.
An ultimate guide to SOLID Principles, developers must know.An ultimate guide to SOLID Principles, developers must know.
An ultimate guide to SOLID Principles, developers must know.ONE BCG
 
Tdd and-design-draft
Tdd and-design-draftTdd and-design-draft
Tdd and-design-draftPrabudhGupta1
 
Cs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportKhushboo Wadhwani
 
Improving developer tester collaboration with microsoft visual studio 2010
Improving developer tester collaboration with microsoft visual studio 2010Improving developer tester collaboration with microsoft visual studio 2010
Improving developer tester collaboration with microsoft visual studio 2010Mohamed Samy
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XPSemen Arslan
 
Growing Object Oriented Software
Growing Object Oriented SoftwareGrowing Object Oriented Software
Growing Object Oriented SoftwareAnnmarie Lanesey
 

Ähnlich wie Three Developer Abilities They Dont Teach In College (20)

Solid design principles
Solid design principlesSolid design principles
Solid design principles
 
Object Oriented Design SOLID Principles
Object Oriented Design SOLID PrinciplesObject Oriented Design SOLID Principles
Object Oriented Design SOLID Principles
 
The Taming Of The Code
The Taming Of The CodeThe Taming Of The Code
The Taming Of The Code
 
Solid principle
Solid principleSolid principle
Solid principle
 
Are You a SOLID Coder?
Are You a SOLID Coder?Are You a SOLID Coder?
Are You a SOLID Coder?
 
Test Driven Development:Unit Testing, Dependency Injection, Mocking
Test Driven Development:Unit Testing, Dependency Injection, MockingTest Driven Development:Unit Testing, Dependency Injection, Mocking
Test Driven Development:Unit Testing, Dependency Injection, Mocking
 
Design Simple but Powerful application
Design Simple but Powerful applicationDesign Simple but Powerful application
Design Simple but Powerful application
 
SOLID Design Principles for Test Automaion
SOLID Design Principles for Test AutomaionSOLID Design Principles for Test Automaion
SOLID Design Principles for Test Automaion
 
Solid principles
Solid principlesSolid principles
Solid principles
 
Basic software engineering principles - Session 1
Basic software engineering principles - Session 1Basic software engineering principles - Session 1
Basic software engineering principles - Session 1
 
Software development philosophies v1
Software development philosophies v1Software development philosophies v1
Software development philosophies v1
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
Accessibility, Usability and User Centred Design (Usabiltiy)
Accessibility, Usability and User Centred Design (Usabiltiy)Accessibility, Usability and User Centred Design (Usabiltiy)
Accessibility, Usability and User Centred Design (Usabiltiy)
 
Continuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestContinuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software West
 
An ultimate guide to SOLID Principles, developers must know.
An ultimate guide to SOLID Principles, developers must know.An ultimate guide to SOLID Principles, developers must know.
An ultimate guide to SOLID Principles, developers must know.
 
Tdd and-design-draft
Tdd and-design-draftTdd and-design-draft
Tdd and-design-draft
 
Cs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ report
 
Improving developer tester collaboration with microsoft visual studio 2010
Improving developer tester collaboration with microsoft visual studio 2010Improving developer tester collaboration with microsoft visual studio 2010
Improving developer tester collaboration with microsoft visual studio 2010
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
 
Growing Object Oriented Software
Growing Object Oriented SoftwareGrowing Object Oriented Software
Growing Object Oriented Software
 

Mehr von Jacinto Limjap

Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#Jacinto Limjap
 
Refactoring to Microservices
Refactoring to MicroservicesRefactoring to Microservices
Refactoring to MicroservicesJacinto Limjap
 
Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Jacinto Limjap
 
C# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageC# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageJacinto Limjap
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Jacinto Limjap
 
N-tier and oop - moving across technologies
N-tier and oop - moving across technologiesN-tier and oop - moving across technologies
N-tier and oop - moving across technologiesJacinto Limjap
 
MSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logicMSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logicJacinto Limjap
 
Developing windows phone 7 applications
Developing windows phone 7 applicationsDeveloping windows phone 7 applications
Developing windows phone 7 applicationsJacinto Limjap
 
Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0Jacinto Limjap
 

Mehr von Jacinto Limjap (9)

Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#
 
Refactoring to Microservices
Refactoring to MicroservicesRefactoring to Microservices
Refactoring to Microservices
 
Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Donetconf2016: The Future of C#
Donetconf2016: The Future of C#
 
C# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageC# and the Evolution of a Programming Language
C# and the Evolution of a Programming Language
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
 
N-tier and oop - moving across technologies
N-tier and oop - moving across technologiesN-tier and oop - moving across technologies
N-tier and oop - moving across technologies
 
MSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logicMSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logic
 
Developing windows phone 7 applications
Developing windows phone 7 applicationsDeveloping windows phone 7 applications
Developing windows phone 7 applications
 
Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0
 

Three Developer Abilities They Dont Teach In College

  • 1. Three Developer -abilities they DON’T Teach in College Jacinto A. Limjap, Jr. Microsoft MVP for C# Senior Application Developer for FBM e-Services
  • 2. It’s not that they don’t teach it
  • 3. Maintainability A measure of how easy it is to understand, modify, and extend your code
  • 5. Facts you only find out at work Writing new code is the first thing you do at school, but the LAST thing you do at work
  • 6. Facts you only find out at work You WILL spend most of your time trying to understand the code some other person wrote
  • 7. Facts you only find out at work “Maintenance typically consumes 40 to 80 percent of software costs” – Robert L. Glass
  • 8. Testability The degree to which a system or component facilitates the establishment of test criteria and the performance of tests to find whether those criteria have been met
  • 9. Ask yourself When there’s a bug, how easy is it to find out which part of your code to fix?
  • 10. Want it testable? Make it SOLID!
  • 11. Single Responsibility Principle Your class should have one, and only one, reason to change
  • 12. Open Closed Principle You should be able to extend a class’s behavior without modifying it
  • 13. Liskov Substitution Principle Derived classes must be substitutable for their base classes
  • 14. Interface Segregation Principle Make fine grained interfaces that are client specific
  • 15. Dependency Inversion Principle Depend on abstractions, not on concretions
  • 16. Usability The ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal
  • 17.
  • 18.
  • 19.
  • 20. Steve Krug’s First Law of Usability
  • 21. Usable software makes people happy “Good UI sells software, but it also makes people happy, because people are happy when they accomplish the task they want to accomplish” – Joel Spolsky
  • 22. Your speaker Blog: http://dotnet.kapenilattex.com Twitter: http://twitter.com/LaTtEX Facebook: http://facebook.com/LaTtEX
  • 23. Learning to Distinguish a Solution from a Problem http://www.computer.org/portal/web/buildyourcareer/fa010 Definition for testability: http://www.aptest.com/glossary.html The Principles of OOD http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod SOLID Development Principles – In Motivational Pictures http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principles-in-motivational-pictures.aspx Simplicity http://stuffthathappens.com/blog/2008/03/05/simplicity/ 2006 Krug, Steve: Don’t Make Me Think: A Common Sense Approach to Web Usability User Interface Design for Programmers http://www.joelonsoftware.com/uibook/fog0000000249.html References