Clean and Green Code


Published on

Published in: Technology
  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • This is an era of social activism[Web2.0] and everyone is challenged to feel, think and act wrt their contributions towards society, environment and the future.
    We need to inform and reassure software professionals that the reach and impact of the code that they write is immense. Its time to acknowledge the power and own up the responsibility and accountability.

  • We do have an agenda. We have objectives.
    Power comes from attitude, skill and wisdom.
    We need to inculcate a sportive nature in coders. Sports teaches us that although we lose sometimes, we are not losers.
    Sports teaches us discipline, hard work and honest attempts at winning. Sports teaches us working in teams.
    Coding is a creative process. Followed well, it can be made re-creative.
    Life meets us with difficult choices. We can opt to be right now and right always.
  • CABU Framework: Code, Application, Business, Users
  • Our machines/systems will have fancy names and/or addresses, will use different technology [stacks], have setups and configurations, maybe less or more capable/intelligent but they will always listen to us.
  • Our predecessors left their experiences as legacies/learnings so that we do not reinvent the wheel but carry forward from where they ended. We should be mindful of their efforts and value and learn from their suggested processes/tools.
  • Code is inevitable and will remain so. DSLs (Domain Specific Languages), XSDs will emerge and so will auto code generation tools
    but all will still end up in code.
    Housekeep indicates a sense of responsibility and accountability.
  • Clean Code is simple. According to laws of simplicity by John Maeda, applicable to technology, business, life and learning, simplicity is achieved via thoughtful reduction and organization of details. Savings in time feels like simplicity. Knowledge makes everything simpler. So, clean code is actually achieving this simplicity.
    According to most, clean code is about good formatted code. For very few, its both well indented as well as well intended.
    Names reveal intentions. Comments clarify intentions. Functions do what is intended.
    Brevity is wit but clarity is care.
  • Test Results Pass. Color is Green.
    All is Well Status. Color is Green.
    Clean code is maintainable. Coders code for no more than 40 hours. Switching off workstations reduces the carbon footprint.

    Let me extend this discussion a little bit by saying that BPM,RIA and SOA [SaaS] technologies are green.
    BPM=>paperless forms/firms.
    RIA=>unwanted trips avoided.
    SOA[SaaS]=>Fewer servers running.
  • We do not write clean code more often. Lets be honest and find out why.
  • The code and commerce association has been unfortunately misinterpreted. We need to drive awareness of the CABU framework.
    Coding is creative and followed well, it can be recreative.
    Make it work is not the challenge. Making IT work is.
    Instant success should motivate us to make it better.
    We do not have evil intentions. We sometimes do not know how. We do not know and We do not ask for help.
    We are only made aware of the Cost/Price of Ownership. We do not value ownership anymore.
  • We Want to Write Clean Code. But How?
  • Code Walkthrough and Code Review skills to identify code smells, good and bad. [Design Patterns and AntiPatterns]
    Refactoring skills along with IDE tips and techniques.
    Test Driven Development and Automated Test Toolkits.
    Agile Processes [documentation]
  • Let us take the coders pledge
  • Clean and Green Code

    1. 1. • Learning is a continuum. • We Learn. Unlearn. Relearn. Life=Learning
    2. 2. Clean And Green Code Lalatendu Rath
    3. 3. The Facts of this Presentation
    4. 4. • Inspired by some green grass outside the clean glass. • As software professionals [coders and henceforth], how do we and how can we contribute? • Clean and Green Code Initiative Inspiration
    5. 5. Objectives • Rebuild the lost will and power to write beautiful code • Inculcate a “sports culture” discipline in coders • Make “Code Creation” a Recreation again • Opt to be right always.
    6. 6. Our Users
    7. 7. Our Users • Our Users need us. • Our Users entrust on us, their data, their operations, their systems and their lives. • Our Users believe that we understand machines and machines languages better than them. • Our Users are our co-developers. They help us develop better solutions, better products and better ourselves. • We need Our Users more.
    8. 8. Our Machines
    9. 9. Our Machines • Our Machines/Systems Always listen to Us. • They don’t fail Us. We fail them. • We fail them by our inability to express ourselves, to command them and put them into proper use. • Its time to feel, think and act [code/configure] for them.
    10. 10. Our Processes/Tools
    11. 11. Our Processes/Tools • Our Processes and Tools do NOT slow us. • They enable Us.
    12. 12. Our Code
    13. 13. Our Code • Code is inevitable. • We need to “housekeep” and “reuse”. • We would need to read code to write new code. • Code is the only credible documentation we would have. • Code will be written once and will be run anywhere, anytime and any N of times. • Our Code is Our Power [Our Pride].
    14. 14. Clean Code. What is Clean Code?
    15. 15. Clean Code is • Simple[Brevity is wit but clarity is care] • Well-indented and Well-intended • Robust; Easy to Use And Hard to Misuse • Runs Efficiently • Clears all Tests • Makes comments redundant
    16. 16. Clean Code=Green HOW?
    17. 17. Green Code • Essentially always, clean code ends being green. • Test results Pass. Color is Green. • “Alls Well” Status for PMs. Color is Green. • Clean code is maintainable; Coders 40 hours a week; Workstation Carbon Footprint; Green. • Clean code executes elegantly. Overall Carbon footprint; Green. • BPM;RIA;SOA[SaaS]. Green Technologies.
    18. 18. We do not Write Clean Code. Why?
    19. 19. Reasons • Code + Commerce • “Make it work”=“Make IT Work” • “Not Informed/Skilled Enough” • “Fear to Ask/Inform” • “Cost/Price of Ownership”
    20. 20. We Want to Write Clean Code. HOW?
    21. 21. Few Ways • Code Smells • Refactoring Skills And IDE Tips • TDD and Automated Tests • Agile Processes
    22. 22. We ,The Coders Pledge
    23. 23. We, The Coders Pledge “We, software professionals, [coders and henceforth], know that our users need us, invest on us and co-develop us. Our machines listen to us and never fail us. Our code will reach, impact, serve and outlive us. Our processes and Our tools enable us. We acknowledge this power and own up the responsibility and the accountability too. We, the coders, take the pledge that we would assure clean and green code. ” (C) Lalatendu Rath, “We, The Coders”2008
    24. 24. Thanks For Listening Lalatendu Rath