Thursday, March 05, 2015

7 Habits of Highly Effective Software Developers (The Simple Programmer Test)

The Joel Test Updated For Programmers by John Sonmez @ SimpleProgrammer
(The Simple Programmer Test)
  1. "Can you use source control effectively?
  2. Can you solve algorithm-type problems?
  3. Can you program in more than one language or technology?
  4. Do you do something to increase your education or skills every day?
  5. Do you name things appropriately?
  6. Can you communicate your ideas effectively?
  7. Do you understand basic design patterns?
  8. Do you know how to debug effectively?
  9. Do you test your own code?
  10. Do you share your knowledge?
  11. Do you use the best tools for your job?
  12. Can you build an actual application?"
(podcast interview with John Sonmez Soft Skills - MS Dev Show Podcast)

The Joel Test: 12 Steps to Better Code - Joel on Software by by Joel Spolsky
  1. "Do you use source control?
  2. Can you make a build in one step?
  3. Do you make daily builds?
  4. Do you have a bug database?
  5. Do you fix bugs before writing new code?
  6. Do you have an up-to-date schedule?
  7. Do you have a spec?
  8. Do programmers have quiet working conditions?
  9. Do you use the best tools money can buy?
  10. Do you have testers?
  11. Do new candidates write code during their interview?
  12. Do you do hallway usability testing?"

Could those 12 recommendations be mapped to "7 habits of highly effective programmers?"
Here is my attempt...

Independence
  • Be Proactive (anticipatory, responsible, response-able, not just "reactive")
    • use source control, name appropriately, 
  • Begin with the End in Mind (envision future)
    • know algorithms, design patterns, 
  • Put First Things First (urgent / important quadrants)
    • use good tools, testing, debugging,
Interdependence
  • Think Win-Win (mutually beneficial agreements)
    • do teaching, 
  • Seek First to Understand, Then to be Understood
    • communicate effectively,
  • Synergize (combine the strengths)
    • create apps,
Continuous Improvements
  • Sharpen the Saw (learning, physical and mental renewal)
    • keep learning, multiple languages, 

image/svg+xml 1. Be Proactive 3. FirstThings First 4. ThinkWin-Win 5. Seekto Understand 6.Synergize 7. SharpenThe Saw 2. Begin with the Endin Mind Source ControlClean Code Design PatternsAlgorithms Tools, Testing, Debugging Keep Learning,Languages Sharing,Teaching CommunicateEffectively CreateApps

As most of the tings on internet, similar ideas are already presented before, but not this simple and visual :)


No comments: