Blog

May 02

Code Reviews 101 

Code reviews are a great way to improve code quality and increase the maintainability of a code base. By increasing the general code quality of a project through code reviews you will decrease the number of bugs that are visible to the customer as well as decrease amount of time spent later debugging and fixing code (it has been noted that effective code reviews can remove over 80% of all defects before testing even begins).

The code review process consists of three main activities a personal review, peer review and rework.

Personal review

Personal code reviews involve the developer inspecting their own code before it is released for further inspection by a peer. There are several tools available to aid a developer in this personal review process, Checkstyle and PMD are great tools that help cover basic code quality issues.

PMD is a Java source code analyser. PMD is used to identify common bad coding practices like, unused variables, empty catch blocks, unnecessary object creation etc.

http://pmd.sourceforge.net/

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. These coding standards help enforce a standardised approach to the way the syntax of your code is laid out. Checkstyle is highly configurable and the rules it governs can be changed from project to project.

http://checkstyle.sourceforge.net/

If the above tools are in place a developer should write code that is of quite good quality by default, however before any code is released for further scrutiny the following check list should be completed by the author of a unit of code.

Personal review check-list

Peer review

A designated reviewer examines the code on their own, at their own pace, and at their own convenience but before the code to be reviewed is delivered within a release to the customer. The goal of the peer review is to have a fellow developer confirm that a unit of code conforms to the customers requirement, software architecture and has been written to the acceptable coding standards that are laid out for the project.

Peer review check-list

Requirements review

Design review


Coding standards review

Test review

Maintainability

Rework

After a peer review has taken place any issues that have been found are raised to the author of the reviewed unit of code. It is then the authors responsibility to address the raised issues and once completed repeat the personal and peer review processes. If no issues where found the code is ready to be included in the next release.

Jupiter, a code review aid
Jupiter is the team collaboration review tool to help aid the code review process. This tool helps aid the code review process by introducing a “Review” prospective to the eclipse IDE. From this prospective developers can create and manage individual code reviews in a collaborative team focused way.

The Jupiter user guide is available at http://csdl.ics.hawaii.edu/Tools/Jupiter/Core/doc/UsersGuide.html.

Also the DevX site has a good practical walk through of using the Jupiter plug-in in a code review process http://www.devx.com/enterprise/Article/31658.

(Source: seantindale.com)

Feb 03

“Are you leaving behind an easily found trail of accomplishment? Few people are interested in your resume any more. Plenty are interested in what you’ve done.” — Seth Godin

5 actions to diversify your professional development and be a rock star in your field. -

(Source: leadershape)

Jan 13

“Keep presentations simple, it should make sense to a five year old, without treating your audience like a five year old.”

56 Leader Skills - Be An Extraordinary Leader -

(Source: sharonwhyte)

Jan 09

9 Signs of a Losing Organization

  1. Fuzzy Vision: corporate vision and mission don’t inspire people; lack of strategic alignment ; people don’t know where the organization is going and what it is trying to achieve in the future.
  2. Lack of Leadership Skills: fear of change; leaders lack entrepreneurial spirit; leadership style on the part of management is either too directive or too hands-off; managers do not lead, they just administrate and micromanage; weak leadership development program.
  3. Discouraging Culture: no shared values; lack of trust ; blame culture; focus on problems, not opportunities; people don’t have fun at work; diversity is not celebrated; failures are not tolerated; people lose confidence in their leaders and systems.
  4. High Bureaucracy: bureaucratic organizational structures with too many layers; high boundaries between management layers; slow decision making; too close monitoring of things and subordinates; too many tools and documents discouraging creative thinking; bureaucracy is tolerated.
  5. Lack of Initiative: poor motivation and encouragement; people do not feel their contributions make a difference; management fails to engage the organization effectively; people work defensively and not creatively, they do their job, and nothing more. 
  6. Poor Vertical Communication: people have no clue of the big picture and do not feel that their contributions are important; too much uncertainty; people don’t know what top-managers are thinking and planning.
  7. Poor Cross-functional Collaboration: functional mindset; lack of cross-functional goals and cross-functional collaboration spirit; functional, no enterprise-wide business process management; no cross-functional management committees; lack of or powerless cross-functional teams.
  8. Poor Teamwork: no organizational commitment to team culture; lack of shared and worthwhile goals; weak team leaders; team members who don’t want to play as part of a team are tolerated; teams are too large; lack of shared rewards.
  9. Poor Idea and Knowledge Management: cross-pollination of ideas is not facilitated; no idea management and knowledge management strategies and systems; “know-it-all” attitude; “not invented here” syndrome.

From Indonesia’s Professionals and Entrepreneur’s Club.

Jan 06

Forbes: How To Be More Interesting (In 10 Simple Steps)

Jan 03

“Progress + momentum = confidence. The moment you see yourself tackle the smallest part of the impossible task, the quieter the Critic (your internal voice) becomes because you’re slowly proving him wrong.” — Managing Humans

Dec 06

[video]

[video]

Nov 29

“Please stop waiting for a map. We reward those who draw maps, not those who follow them.” — Seth Godin (via wellsaidblog)

Nov 28

How to Think Creatively -

Not a recipe but rather tips on using the right brain.

Nov 21

“A manager’s job is to take what skills they have, the ones that got them promoted, and figure out how to make them scale. They do this by building a team that accentuates their strengths and, more importantly, reinforces where they are weak.” — Managing Humans

Nov 19

[video]

“Good management is the art of making problems so interesting and their solutions so constructive that everyone wants to get to work and deal with them.” — Paul Hawken, Natural Capitalism