Posts Tagged ‘process’

  

Using Feature Done Checklists

I have written previously about the importance of having a definition of done that the team understands and adheres to. At the level of features (use cases, user stories, etc.) a comprehensive definition of done will often consist of a number of items, some involving non-developer roles such as tester, business analyst, and architect. Tracking [...]

Using To Do Comments in Code

I am a big proponent of using to do comments – comments prefixed by a specific identifier such as “TODO” – in a code base to indicate outstanding tasks or issues with the code. I have encountered developers who are either unfamiliar with the practice or who do not follow it as deliberately as I [...]

Use Understood Methods Rule

Over the years I have refined the approach I use to write code. Recently I codified a key aspect of this approach as a practice I call the Use Understood Methods Rule. The basic formulation of the rule is quite simple: when coding a method only invoke other methods whose behavior you clearly understand [...]

My Definition of Done

I recently wrote about why you need a definition of done, and it only seems logical to follow this up by presenting what I use for a definition of done for developing software.
I use two guiding principles as the basis for constructing my definition.

Potentially releasable: Ideally the software can be released (or shipped) [...]

Why You Need a Definition of Done

Whether you are working on a small task or a large project, do you and your team have a clear understanding of what it takes to complete a piece of work? The Scrum method of software development calls this Definition of Done and touts this as a critical practice for high-performing teams. While I have [...]

The Five Commandments of Version Control

Effective use of version control is a fundamental development practice, especially if there is more than one person working on the same code base. Below are the standard rules I use for the proper use of version control in the style of biblical old testament commandments. I like imagining an authoritative voice booming these commandments [...]

How to Always Get Better: A Framework for Continuous Improvement

If you believe like I do that organizations must develop a culture of continuous improvement in order to flourish, then the question is how to achieve this. Throughout my career and especially in the last few years I have promoted effective software development practices and a philosophy of learning and growing as a professional. I [...]

Continuous Improvement Experiments

If, like me, you believe strongly in championing continuous improvement then an obvious question is how exactly can continuous improvement be implemented? One answer I have come up with is something I call continuous improvement experiments – CIE for short.
What is a Continuous Improvement Experiment?
The idea is simple: a CIE provides guidance via a formalized [...]

The Source Code is the Design

I first came across the thought-provoking article What Is Software Design? by Jack Reeves as an appendix titled “The Source Code Is the Design” in the book Agile Software Development: Principles, Patterns, and Practices The article was written in 1992 so ignore the references to C++ (I mentally translated them to Java) and instead focus [...]

Top Five Essential Practices for Developing Software

As a software developer what practices do you consider essential? Which practices are must-haves that you would refuse to build software without?
I believe that producing good software is hard, and that we software developers need all the help we can get in developing software. I have put together a list of the top five practices [...]

What is ITIL Service Management?

I recently attended a three day course on ITIL Service Management and wanted to share what I learned and what my impressions of ITIL were.
ITIL – Information Technology Infrastructure Library – is a library of books that defines a framework of processes for IT and provides guidance regarding their implementation. ITIL was created by the [...]

Are You a Rule Maker or a Rule Breaker?

In order to work effectively with coworkers and clients, you need to understand their viewpoint. Over the last few years, I have discovered that a person’s approach to rules such as processes or standards is an important element in understanding and predicting how they will operate in the workplace. One reason this is a useful [...]

My Defect Fixing Process

What’s your process for fixing a defect? What do you do when you are informed that a feature you developed isn’t working to the users’ satisfaction, or even worse fails to work at all? Here’s what I do.

Initial investigation. My goal is to reproduce the reported problem in the application in my development environment. This [...]