23
Jacinto A. Limjap, Jr. Microsoft MVP for C# Senior Application Developer for FBM e- Services * Three Developer -abilities they DON’T Teach in College

Three Developer Abilities They Dont Teach In College

Embed Size (px)

DESCRIPTION

A presentation for university students studying Computer Science about topics that are crucial at the workplace but not given as much attention at school

Citation preview

Page 1: Three Developer  Abilities They Dont Teach In College

Jacinto A. Limjap, Jr.

Microsoft MVP for C#

Senior Application Developer for FBM e-Services

*Three Developer -abilities they DON’T Teach in College

Page 2: Three Developer  Abilities They Dont Teach In College

*It’s not that they don’t teach it

Page 3: Three Developer  Abilities They Dont Teach In College

*MaintainabilityA measure of how easy it is to

understand, modify, and extend your code

Page 4: Three Developer  Abilities They Dont Teach In College

*Maintenance?

Page 5: Three Developer  Abilities They Dont Teach In College

*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

Page 6: Three Developer  Abilities They Dont Teach In College

*Facts you only find out at work

*You WILL spend most of your time trying to understand the code some other person wrote

Page 7: Three Developer  Abilities They Dont Teach In College

*Facts you only find out at work

*“Maintenance typically consumes 40 to 80 percent of software costs” – Robert L. Glass

Page 8: Three Developer  Abilities They Dont Teach In College

*TestabilityThe 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

Page 9: Three Developer  Abilities They Dont Teach In College

*Ask yourself

*When there’s a bug, how easy is it to find out which part of your code to fix?

Page 10: Three Developer  Abilities They Dont Teach In College

*Want it testable? Make it SOLID!

Page 11: Three Developer  Abilities They Dont Teach In College

*Single Responsibility Principle*Your class should have one, and only one,

reason to change

Page 12: Three Developer  Abilities They Dont Teach In College

*Open Closed Principle*You should be able to extend a class’s

behavior without modifying it

Page 13: Three Developer  Abilities They Dont Teach In College

*Liskov Substitution Principle*Derived classes must be

substitutable for their base classes

Page 14: Three Developer  Abilities They Dont Teach In College

*Interface Segregation Principle*Make fine grained interfaces that

are client specific

Page 15: Three Developer  Abilities They Dont Teach In College

*Dependency Inversion Principle*Depend on abstractions, not on concretions

Page 16: Three Developer  Abilities They Dont Teach In College

*UsabilityThe ease with which people can employ

a particular tool or other human-made object in order to achieve a particular

goal

Page 17: Three Developer  Abilities They Dont Teach In College
Page 18: Three Developer  Abilities They Dont Teach In College
Page 19: Three Developer  Abilities They Dont Teach In College
Page 20: Three Developer  Abilities They Dont Teach In College

*Steve Krug’s First Law of Usability

Page 21: Three Developer  Abilities They Dont Teach In College

*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

Page 22: Three Developer  Abilities They Dont Teach In College

*Your speaker

*Blog: http://dotnet.kapenilattex.com

*Twitter: http://twitter.com/LaTtEX

*Facebook: http://facebook.com/LaTtEX

Page 23: Three Developer  Abilities They Dont Teach In College

*References

*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