Three Developer Abilities They Dont Teach In College

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

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

Transcript of Three Developer Abilities They Dont Teach In College

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