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
It's Doodle Tuesday again!
As you might already know, I switched to a reusable notebook and Frixion pens a few weeks ago, and I still love it. I don't think that I'll go back to a Moleskine and conventional indelible ink anytime soon.
Now, looking at my most recent doodles, the underlying theme appears to be "gaping holes," or something like that. I am not sure why. My subconscious makes that kind of decision without giving any explanation to my conscious.
This Tuesday doodle is part of that … [Read more...] about Doodle Tuesday: Hole
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