• Save
Code Quality   Learn, Measure And Organize Awareness
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Code Quality Learn, Measure And Organize Awareness

on

  • 3,223 views

Code Quality - Learn, Measure and Organize Awareness

Code Quality - Learn, Measure and Organize Awareness

Statistics

Views

Total Views
3,223
Views on SlideShare
3,101
Embed Views
122

Actions

Likes
1
Downloads
0
Comments
0

5 Embeds 122

http://jaibeermalik.wordpress.com 109
http://www.slideshare.net 5
https://duckduckgo.com 4
http://www.linkedin.com 2
https://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Code Quality Learn, Measure And Organize Awareness Presentation Transcript

  • 1.
    • Code Quality :
    • Learn, Measure and Organize Awareness
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 2. JAIBEER MALIK
    • 2004 B.Tech from IIT KGP
    • Total 5 years of IT Experience in software development
    • Former Employers: Sapient, Globallogic
    • Currently working as Senior Consultant with Xebia
    • Certified Scrum Master
    • Experienced in: Java, J2ee, Unix, Flex, Distributed Agile.
    • Thumb rule: Delivering Quality solution to all software problems
    • Hobbies: Swimming, Basketball, Volleyball, Cricket...Sports
    • Web: http://jaibeermalik.wordpress.com
    • Profile: http://www.linkedin.com/in/jaibeermalik
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 3. Agenda
    • Common Questions
    • Code Quality?
    • Part I: Learn
    • Part II: Measure
    • Part III: Organize Awareness
    • References
    • Questions
    • Feedback
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 4. Common Questions (Developer)? Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 5. Common Questions (Manager)? Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 6. Common Questions (Team)? Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 7. Code Quality?
    • #Source_code_quality
      • “ A computer has no concept of "well-written" source code. However, from a human point of view source code can be written in a way that has an effect on the effort needed to comprehend its behavior. Many source code programming style guides, which often stress readability and usually language-specific conventions are aimed at reducing the cost of source code maintenance.”
    • Complaining about Other People's Code
      • “ W hen we first encounter a new software system we are, in Dunning and Kruger’s terminology, incompetent compared to the programmers that wrote it.”
    • Things you should never do
      • “ It’s harder to read code than to write it.”
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 8. Code Quality - WTFs? Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 9. PART I: Learn
    • Focus On Fundamentals
      • Start with Basics
      • Material
      • Games
    • How to write Clean Code
    • Figure out bad smells and improve code
      • WTFs and Refactoring
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 10. Focus On Fundamentals
    • Start with Basics
      • Design Principles (S.O.L.I.D.)
      • OOA/OOD/OOP
      • Design Patterns
      • Enterprise Integration Patterns
      • Anti Patterns
    • Material (e.g. Head First Design Patterns)
    • Games
      • Patterns Poker, Name that Pattern
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 11. Clean Code & Refactoring
    • How to write clean code
      • Clean Code
      • Implementation Patterns
      • Code Complete
    • Figure out bad smells and improve code
      • WTFs?
      • Refactoring: Improving the design of Existing code
      • Refactoring Catalog
      • Refacotring Tools
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 12. PART II: Measure
    • Common Problems
    • Common Measurement Criteria
    • Measurement Tools
    • Static Code Analysis
      • Why SCA?
      • SCA Tools
      • Enforce Quality
      • WARNING!!!
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 13. Common Problems
    • Code Duplication
    • Big Size files
    • Unhandled exception
    • Large cyclomatic complexity
    • Infinite Loops
    • Dead code
    • Unused variables, parameters, method, classes
    • Test coverage
    • Coding standards violations
    • ...
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 14. Common Measurement Criteria
    • Cyclomatic Complexity
    • Coupling
    • Abstractness
    • Stability
    • Cyclic Dependencies
    • Maintainability Index
    • ReUse ratio
    • ...
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 15. Static Code Analysis
    • Why Static Code Analysis (SCA)?
    • Code Coverage Measurement Tools
      • Clover, Cobertura
    • SCA Tools
      • PMD, FindBugs, Sonar, Simian, CheckStyle, Metrics, XRadar
    • How to use SCA tools
      • Integrate with build process (ant/mvn target)
      • Separate quality build
    • Enforce Quality
      • Svn pre-commit handlers
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 16. PART III: Organize Awareness
    • Code Quality as Knowledge/Learning
    • Why to share with-in team?
    • Share and Organize
      • Pair-Programming
      • Share on wiki
      • Coding standards documents
      • Quality watch dog
      • Fix it and let people know
      • Technical Debt
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 17. Organize Awareness: As Team
    • Few points to keep in mind as team
      • Pair-up more
      • On-going process
      • Share in positive way
      • Motivate people to fix it and share
      • Talk more about quality
      • Quality watch dog on rotation basis
      • Continuous watch on technical debt
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 18. References
    • Jai's Weblog:
      • http://jaibeermalik.wordpress.com/2009/04/12/code-quality-learn-measure-and-organize-awareness/
      • http://jaibeermalik.wordpress.com/2009/04/12/code-quality-learn-oops-desing-patterns-clean-code-and-refactoring/
      • http://jaibeermalik.wordpress.com/2009/04/12/code-quality-measurement-static-code-analysis-tools/
      • http://jaibeermalik.wordpress.com/2009/04/12/code-quality-organizing-awareness-with-in-the-team/
    • TSS:
      • http://www.theserverside.com/news/thread.tss?thread_id=54245
    • InfoQ:
      • http://www.infoq.com/news/2009/06/code-quality-for-teams
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 19.
    • ?
    Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com
  • 20. Feedback!!! [email_address] [email_address] Follow me @ http://twitter.com/jaibeermalik http://friendfeed.com/jaibeermalik Jaibeer Malik Code Quality: Learn, Measure and Organize Awareness http://jaibeermalik.wordpress.com