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
a vivid mental image, especially a fanciful one of the future.
A Clear Vision
Everyone who lived before witnessing the Apollo 11 mission on July 20th, 1969, could only dream of touching the Moon. In 1865, Jules Verne, a French novelist, had that dream in the form of a novel that he titled "From the Earth to the Moon." He told a story of a group of gun enthusiasts and their attempts to build an enormous space gun to launch three people to the Moon.
It took 104 more years for … [Read more...] about Product Vision, Agile, and Going to the Moon
The tech industry thrives on innovation. Building innovative software products requires constant design and architecture of creative solutions. In that context, I am not a fan of design by committee; in fact, I believe that it is more of a disease than a strategy. It afflicts teams with no leadership or unclear leadership; the process is painful, and the results are abysmal.
Usability issues plague software products designed by committee. Such products look like collections of features stuck … [Read more...] about Avoid Design by Committee: Generate Apart, Evaluate Together
Being able to build high-performing engineering teams is a non-negotiable skill for engineering leaders. It is the difference between successful and failing technology companies.
I have been thinking about this topic for many years, studying and decoding what exceptional leaders do to create great teams. During this time, I refined a list of what I believe are 11 must-have elements. I kept it in one the many thousands of Evernote notes that organize my life, and I finally decided to share … [Read more...] about 11 Essential Elements to Build High-Performing Engineering Teams
Like most industries, tech doesn't have a standard for roles and titles, even in the area of engineering leadership. However, some patterns can be found replicated in most software companies. I've discussed the technical side of this equation in Software Engineering Job Titles Explained and 19 Types of Developers Explained.
In this post, I am focusing on engineering leadership roles and what they are accepted to mean. Depending on the company, some of these roles are also job titles; others … [Read more...] about 8 Engineering Leadership Roles Explained