Editorial Rss

Be Sharp

Before I did into today’s topic, let me take a moment to remind you to get your automated monitoring tested and solid before the upcoming holiday season. If you have time off you’ll be able to relax more. If you don’t you’ll feel less stress when your teammates are away.

For today have chosen to continue the series on Software Professionalism with a focus on writing software. The topic, “Be Sharp”, wraps around the issue of preparedness. If one is sharp, they come with a full tool box to solve many different problems. The tool box is full of solutions to solving common problems. It is not language specific. It is problem solving specific.

If you haven’t figured out what’s in the tool box yet, I am talking about Patterns, Principles and Processes.

Firstly, Software Development Patterns are implementations for solving code problems, not rules in which we must abide. All software you write won’t necessarily follow a specific pattern. But, when a pattern presents itself it saves time, and communicates your intention with those who know and use patterns.

You can write a whole application without implementing your own patterns, or without knowing that you are using them. Often, the frameworks we import are built on patterns so you don’t have to build them yourself. If you know patterns, you can observe them in code you include. You can extend code, or optimize things with patterns you implement yourself.

Software development principals are used to write code that is maleable. Uncle Bob's SOLID principles come to mind. There are other OO principles toreduce cohesion (the dependency of one method on another) for example.

Practicies are just as important. For example, how do you use version control? This is a cornerstone of writing software with a team. Integrating code from multiple sources, the cornerstone of version control, is essential for rapid software developement that doesn't lead to ruin.

Also in the practice category is the execution of a Software Development Lifecycle. Estimates, reporting, tracking, change mangement, and more are just as important as the code you write.

Fill your tool box. Better yet, keep the tools in it sharp.