Software systems are a collection of bits recorded on a storage device. It might seem that once a software application works, as long as the hardware it runs on is functional, it should just keep working for eternity. So, why is "software maintenance" even a thing? There is no physical wear and tear, and there are no materials that can rot or rust away. Software systems are not affected by the atmosphere, pollution, the weather, and there isn't anything that can physically break. However, this … [Read more...] about Software Maintenance, Understanding the 4 Types
technology
7 Strategies to Avoid Software Growth Zero, AKA Drowning in Maintenance
The Software Garden
Software is like a garden. Both software and gardens require a lot of work, craftsmanship, and artistry to envision and create, especially when starting from scratch. They both evolve, and they both need constant maintenance, even if you don't make any significant improvement.
If you are a reader of my blog, you know that I use a character called Bolbo as my mental framework for the quintessentialsoftware developer. You might remember that he has a square jaw, messy black … [Read more...] about 7 Strategies to Avoid Software Growth Zero, AKA Drowning in Maintenance
Generating Art With Code: Doodling, Math and Cornucopias
I have a compulsive need to create art; I also have a lifelong love for coding. The two passions are compatible and interrelated. Coding and Math can generate artistic visions. In this post, I show how I created a program to draw doodles formed by tangles of "Cornucopias" swimming in space.
Doodling for Life
If you are a reader of my blog, you know that every Tuesday I publish a hand-drawn meeting doodle from my Moleskine. Recently I have been doodling an interesting shape that, for some … [Read more...] about Generating Art With Code: Doodling, Math and Cornucopias
The Future of Software-Making, 50 to 100 Years From Now
Software Making is Just Starting
Building software is still in its infancy. Today we write a line of code at the time to describe what we believe a machine should do to resolve a problem. Developers spend most of their time sorting out minute details of behaviors. They do so to ensure that a task is executed precisely in a well-defined and understood way.
The unfortunate reality is that this method doesn’t scale well. The world needs software, but today's software creation process is slow and … [Read more...] about The Future of Software-Making, 50 to 100 Years From Now
19 Types of Developers Explained
The software development landscape changes constantly. New areas of specialization, technologies, and methodologies pop into existence every few months, forged by the relentless innovation of the software industry. With it, terms to describe specialized types of developers become part of the unofficial industry lingo and show up in job ads and corporate titles.
Before the existence of the internet, many of these specializations didn’t exist. The world wide web has shifted most aspects of our … [Read more...] about 19 Types of Developers Explained