Thursday, March 17, 2005

Developer Professionalism

Developer Professionalism

To be paid, is not enough to make one a professional

What is a developers job?
  • To THINK. Coding is a puzzle, puzzles are worked out best by thinking

  • To deliver. On time, on function and on quality

  • To be responsible. Taking personal responsibility

  • To never stop learning. Constant and Never-ending Improvement (CANI)

  • A developer is
  • Punctual. To be on time is to show respect

  • Prepared. To add value to a meeting is to be ready

  • Proactive. Having in mind the consequence and advising on the risk are part of the job, you must drive asking about the requirements, drilling down to the details, raising the risks, getting help!

  • Persistent. No problem is insoluble, balance asking for help with research

  • Precise. In speech and in code exactitude is a hallmark

  • Positive. Decide to be positive but act with caution

  • Prevention Minded. What could happen if this is wrong?

  • A developer is not
  • Overconfident, humility with confidence is the balance

  • Arrogant, confidence is not arrogance

  • Sloppy, neatness is important, clean code is maintainable, safe and correct

  • Hurried, acting with tempo is not hurry, the more important the task the more you should think about the consequences (be like an air traffic controller, become more calm the more the crisis escalates).

  • Late, on-time delivery, on quality, on spec build confidence

  • A cowboy. Process exists to protect the developer and the customer.

  • 7 habits of successful developers
  • Understand that understanding is incremental, requirements are nearly impossible to articulate, so doing a little then showing it to the customer insures that what is delivered is what is needed.

  • Develop incrementally

  • Test continuously with well thought out unit tests peer reviewed by others

  • Have your peers validate your code and design

  • Care about doing the same for others

  • Obey and evangelize standards

  • Leverage tools and go with the tool not against them

  • 7 deadly sins
  • Coding too quickly, time spend in design equals quality in code

  • No or bad unit tests

  • Failing to keep source control in sync

  • Pushing code to production, no developer should ever do this

  • Deployment w/o a rollback

  • Skipping standards you dont like

  • Not honoring peer review e.g. skipping it or ignoring the results

  • The XP Process in a nutshell
  • Get a problem to solve, make it small enough to solve in a day or so

  • Think about what should be tested to determine what done means in terms of functionality and block out the required tests

  • Write a little code and test it, refractor

  • As you develop comment and check for standards

  • When all the tests pass, do a final standards check and then initiate peer review

  • Work with the PM to show and tell it to the customer if not done already

  • When the issues relating to peer review have been dealt with (either fixed or queued up for next time) check in and inform the build team the code is ready for build and QA

  • Repeat until there are no more tasks for the release

  • Start on the next release


  • In XP what does QA do?
  • QA does not exist to test developers code or to find functionality bugs

  • QA role is to assure that the integrated products perform as specified

  • QA Advises on what the required unit tests should be

  • QA judges if the deployment instructions/process is sufficient
  • 0 Comments:

    Post a Comment

    << Home