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 readingAuthor Archives → Bulama Yusuf
The 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 readingQuality 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 readingThe 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 readingAs 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 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 reading