Improving Development Flow
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Improving Development Flow

  • 546 views
Uploaded on

Introductory material about development flow and software science. ...

Introductory material about development flow and software science.

TOPICS
- Technical Debt
- DevOps
- Lean Software Development
- Software Quality
- Clean Architecture
- Gamification & Fun
- Team Culture

More in: Business , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
546
On Slideshare
546
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. IMPROVING DEVELOPMENT FLOW INTRODUCTORY MATERIAL
  • 2. LEAN PRINCIPLES ELIMINATE WASTE BUILT-IN QUALITY DELIVER LEARN DEFER DECISIONS 360º PANORAMA
  • 3. LEAN PRINCIPLES ELIMINATE WASTE BUILT-IN QUALITY DEFER DECISIONS 360º PANORAMA CODING MANAGEMENT ARCHITECTURE DEVOPS
  • 4. DEVELOPMENT Key Elements FLOW SMART OPERATIONS CLEAN ARCHITECTURE BEAUTIFUL CODE TEAM CULTURE LEAN MANAGEMENT MEASURABLE UX
  • 5. PRESERVING DEVELOPMENT FLOW GOOD CODE DIRTY CODE COST ($) TIME (⌚)
  • 6. PRESERVING DEVELOPMENT FLOW NO FUTURE DIRTY CODE X COST ($) REWRITE OPPORTUNITY TIME (⌚) BANKRUPTCY
  • 7. PRESERVING DEVELOPMENT FLOW Pressure applied RESULT On time, On budget CLAIM Productivity improved REMAINING WORK TECHNICAL DEBT TIME PLANNED RELEASE FULL QUALITY RELEASE
  • 8. PRESERVING DEVELOPMENT FLOW FLUIDITY BOOST ADAPTABILITY SHRINK VISCOSITY STAGNATION
  • 9. SOFTWARE QUALITY ISO9126 FUNCTIONALITY RELIABILITY PORTABILITY INTERNAL EXTERNAL QUALITY EFFICIENCY MAINTAINABILITY USABILITY
  • 10. SOFTWARE COMPLEXITY DIFFICULTY PROGRAMMER PROGRAM debugging modifying coding testing
  • 11. SOFTWARE METRICS SIZE METHOD CLASS / MODULE Comment Percentage - CP Source Lines of Code - SLOC # Methods, Files, Classes &c. Cyclomatic Complexity - CC Test Code Coverage - TCC Coupling Between Object Classes - CBO Lack of Cohesion in Methods - LCOM
  • 12. SIZE Less is more. Sometimes...
  • 13. SIZE FATTEN SOURCES Feature creep Patchwork Automated tools Heavyweight frameworks Careless packaging ARTIFACTS DEVELOPMENT Packages Memory Network Source code Disk DEPLOYMENT RUNTIME
  • 14. SOURCE CODE SURFACE SLOC # CLASSES # PACKAGES
  • 15. METHODS
  • 16. CYCLOMATIC COMPLEXITY Number of independent execution paths
  • 17. CYCLOMATIC NUMBER M = E - N + 2P entry WHERE E = # Edges N = # Nodes P = # Exit nodes exit for loop
  • 18. CYCLOMATIC NUMBER 1 1 2 M = 5 - 5 + 2 2 4 3 2 4 3 5 5
  • 19. CYCLOMATIC NUMBER 1 2 SAFE 5 DANGEROUS 10 HIGHLY DANGEROUS CATASTROPHIC
  • 20. TEST CODE COVERAGE Statement COMPLIANCE LEVELS Test Effectiveness Ratio - TER TER1 Control-flow branches TER2 Linear Code Sequence and Jump - LCSAJ TER3
  • 21. CLASS / MODULE
  • 22. COUPLING FAN-OUT FAN-IN Depth of inheritance CHILDREN
  • 23. COHESION “ For each module in isolation, how tightly bound or related its internal elements are to one another. The most effectively modular system is the one for which the sum of functional relatedness between pairs of elements not in the same module is minimized; among other things, this tends to minimize the required number of intermodular connections and the amount of intermodular coupling. Edward Yourdon & Larry L. Constantine Structured Design
  • 24. EQUILIBRIUM
  • 25. FOCUS EQUILIBRIUM Multi-level Quality & Planning SEMANTICS Key abstractions Well defined boundaries Clean interactions EMBODIMENT Visualize project state Minimize time-boxing Avoid isolation Forget frameworks
  • 26. GET INTO FLOW State of mind in which awareness and action become one
  • 27. HAVE FUN S.M.A.R.T GOALS SERIOUS FUN Challenge Mastery Accomplishment CELEBRATE Purpose Focus Meaning CONTINUOUS REINFORCEMENT HARD FUN
  • 28. CRITICAL ADVICE PRACTICES ARE JUST MEANS TO ACHIEVE GOALS
  • 29. THANK YOU!