Aligning your business vision and tech strategy is nothing more than getting the right person or team and then ensuring you have good communication between yourselves. You also need to note that a business vision represents lateral thinking while a lot of technology leaders are linear thinkers. You want your technology strategy to match the lateral thinking of your business strategy while also providing clear guidance for the linear thinking required for executing that technology blueprint.
Continue readingAI Development: A Developer’s Perspective
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 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 reading