AI, ChatGPT, and LLMs have become common sayings and since the release of ChatGPT to the public in November in 2022 there has been an astronomical rise in interest in AI. Many may see this as an overnight success but AI, or at least its development, has been around since the 1950s.
Continue readingThe Importance of Software Design
After being in the software development space for a while you start to notice a relationship between software design quality and software development speed. Software design here doesn’t just mean UI/UX design, it refers to the structure and relationship of software components as well as software development paradigms.
Continue readingSize 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 readingAttention, 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 readingThe Importance Of Communication For Software Development Teams
The word communication gets thrown around a lot in the software development space but what does it really mean? Why is it even important to start with?
Continue readingSoftware 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 readingSoftware Estimates, Targets, Plans & Commitments
“The primary purpose of software estimation is not to predict a project’s outcome; it is to determine whether a project’s targets are realistic enough to allow the project to be controlled to meet them.” — Steve McConnell, Software Estimation Book (2006).
People use software estimates as predictions anyway, and this leads to numerous issues.
Continue readingGet Strategic With Your Software Development Career
I gave the welcome address at the Google I/O Extended Abuja 22 event on the 2nd of July, 2022.
Continue readingShort-term Speed, Long-term Pain
After being in the software development space for a while you start to notice a relationship between software design quality and software development speed. Software design here doesn’t just mean UI/UX design, it refers to the structure and relationship of software components as well as software development paradigms.
Continue readingTechnical Debt Explained
To understand technical debt, we first have to remind ourselves of the principles of financial debt. Financial debt lets you have the benefit now at the cost of making regular interest payments later.
Continue reading