Whether it is software development projects or I.T. operations, many larger organizations seem enamored with process as the solution to their problems. The default reaction to negative outcomes or variances between people in performing activities is to add more process. Process provides an ordered structure for keeping such chaos at bay. This reflects an underlying […]
Posts Tagged ‘process’
I have noticed a common problem afflicting small development teams formed to make significant enhancements to an application that was previously maintained by just one developer. Both the original maintenance developer and their management are accustomed to essentially solo development and this culture spills into the enhancement work. Development is treated as individual efforts rather […]
- No Comments
- Permalink
In I.T. there are a number of process-based certifications that organizations can obtain based on standards like ISO-9001, ITIL via ISO 20000, and CMMI. The process of qualifying for a certification is similar across these standards: the organization defines and/or revises their internal processes to comply with the requirements of the standard, documents these processes, […]
People from time to time ask me how I manage to write all the articles on my website despite having a family and a demanding full-time job. My simplistic, off-the-cuff answer is “one sentence at a time” :) Seriously, however, over the years I have developed a personal writing system that I would like to […]
There is a common perception within I.T. that Agile methods are recent innovations – the new kids on the block – and they are contrasted with the traditional waterfall approach – the old-timer that has been around for ages. This perception is propagated by events such as the widely-discussed 10-year anniversary of the agile manifesto […]
How do you ensure high quality when developing software? The processes that are used, the decisions that are made, and the actions that are taken must be aligned with proven quality principles. In this context I define a principle to be a fundamental truth that is the foundation for a system of behavior. Too often […]
- No Comments
- Permalink
For any software development effort a core component of planning how to achieve high quality is the selection of the quality-enhancing activities and practices that will be performed to assess the software. This selection depends on a number of factors including the capabilities of the team, the characteristics, complexity and criticality of the software, the […]
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 […]
- No Comments
- Permalink
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 […]
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 and […]
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) […]
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 […]
- No Comments
- Permalink
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 […]
- No Comments
- Permalink
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 […]
- No Comments
- Permalink
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 […]
- No Comments
- Permalink
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 […]
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 […]
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 […]
- No Comments
- Permalink
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 […]
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. […]