Quality Means Different Things To Different People in Software Development

Quality in the context of this article is not necessarily just about the quality of the software alone but also about the experience each person has in the software development process.

Not Everyone Has the Same Understanding of Quality

There are common stakeholders for any software development project or product. These are:

Continue reading

The Pains of Software Project Costing

Far too often, the rewards for our efforts seem to be mere pennies as held against the fortune of time and sacrifice spent attempting to earn them.” — Craig D. Lounsbrough.

The abstract nature of software development complicates costing. An idea in a person’s mind is abstract and until the idea is manifested into time and space it basically serves very little purpose. In majority of other fields, the process of bringing an idea to life is tangible and the progress being made can be seen and touched. For software, things are a little different. The ideas are intangible, the process of building is intangible, the progress being made in development is intangible, and the completed software itself is intangible. This is the core pain point for costing knowledge related work.

Continue reading

As a Software Developer, How Do You Actually Communicate Better?

Assumption is the mother of all mistakes” — Mr. Eugene Lewis Fordsworthe.

Most of my takes on the importance of communication in the software development space has been from the perspective of the team lead or manager. In this article I want to talk about communication from the perspective of a regular team member and how one can communicate more effectively on their team. I believe some of the suggestions below may even help you standout in your team and earn your team lead’s respect. Here they are:­

Continue reading

Size Matters in Software Development

Size was the single most important factor in the resolution of project outcome.” — CHAOS Report 2015, Standish Group.

The larger a software project is, the higher the chances it’ll fail. Let’s define what makes a software project large. Any project with more than 1M source lines of code (SLOC) is considered a large project. 100k to 1M SLOC would fall into the medium category, while any software project with 10k to 100k SLOC can be considered small. A software project with less than 10k SLOC is tiny.

Continue reading

Attention, Distractions, and Context Switching

Anything you focus on will flourish

The information age has brought a lot of pressure on people’s attention. You are not immune to it and your software development team definitely isn’t either. The nature of software development requires long uninterrupted blocks of time to focus on problem solving. The longer you focus on a problem without interruptions the deeper you get into a state of flow, commonly referred to as being “in the zone”. Where everything is fluid, and smooth, and… until someone taps you on the shoulder just to tell you that they sent you an email 3 seconds ago.

Continue reading

Software Deterioration

I recently downloaded a software tool to help me complete a task but upon executing it, it failed to run. Initially I thought it was due to the poor internet connection. I fixed the network but it still won’t run. No error messages, nothing. After a few minutes of trying different things I realised that the software won’t run because a library it relied on was no longer supported by the operating system I was using. Software deterioration is the phrase used to describe this type of situation.

Continue reading