Three Developer Abilities They Dont Teach In College

Post on 25-May-2015

1029 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

Jacinto A. Limjap, Jr.

Microsoft MVP for C#

Senior Application Developer for FBM e-Services

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

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

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

*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

*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

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

*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

top related