“Hello World!” – The Birth of Great Software

"Hello World!" - The Birth of Great Software

A lot of great things in my life have started with those very words: “Hello World!”. It seemed an appropriate start here, as well. Most software developers speak nostalgically of their first “computer” (I use quotes because we might have to stretch to actually call it that). Younger developers simply spit it out full of excitement: “…with 32 Gigs of RAM and an SSD!” Either way, there’s a vigor for the knowledge that is yet to come, the anticipation of unlocking something new and creative, the passion that comes with developing great software.

There’s the runner’s high and the addict’s high, but there’s a completely different kind of high that can keep you up for two nights in a row, staring at a series of characters that’s illegible to most of the world. I once heard someone say, “I’d like to be a meth-addict — just for a day — to understand what it’s like to have such singularity of purpose.” Software developers know.

Maybe there’s a physical response, but I’ve never heard of it. It’s just something inside you, something that drives you. It’s a strive for perfection in something that more closely resembles a work of art than it does a scientific medium. That hunger, that drive, and that need for perfection is what defines a software engineer. When great software is about to be written, developers understand what it’s like to have such “singularity of purpose”.

Good vs. Great Software

At some level, we can all appreciate the drive and passion that separates good software from great software. We tend to create a chasm, however, between great software and great product. Great software is allowed to be theoretical. Comments, style, and design are all part of the intangibles of great software. However, great product must be practical. It exists only because of its tangibility. Business thrives on great people, building great product.

Suddenly, business tears the intangibles out of great software — sometimes to deliver any product at all. Developers become disappointed and even protective of the beauty of their software. Experienced developers understand the cost of losing the intangibles. Sure, it lowers morale in the ranks of software engineers, but even more directly, it causes maintainability to fall. The development cycle slows.

Sales insists on features for new, potential clients. Engineers become defensive and protect themselves in Ivory Towers of Software — impenetrable by other developers and completely debilitating to the organization. So the chasm forms…

Bridging the Chasm

Enter “Hello World!”. Solving this problem requires a new level of knowledge, for business and engineering alike. In both cases, it means learning a precarious balance that sagely avoids the precipice of the chasm. For business, it is quintessential to recognize the importance of the intangibles of software. For engineering, it is equally as necessary to recognize that the ultimate goal is a product, not perfect software. Without both, you have no product or no maintainability of that product into the future. While it’s important for businesses to get out in front of their competition, your software needs to remain maintainable and flexible to stay on top of the competition. Getting in front is of little value if you’re unable to finish the race.

There is a time for learning on both sides, in fact, it is a never-ending quest for knowledge and understanding. Other products can be sold with the “goop in a bottle” method, but software truly requires an understanding of the process and a marriage of the tangibles and intangibles. The King James Version of the Bibles says, “Wisdom is the principal thing; therefore get wisdom: and with all thy getting get understanding.” (Proverbs 4:7). There is an understanding that’s required on both sides of the business/software fence that — when united — turn great software into great product.

One of our goals at Geisel Software is to help you understand the software that’s being written (the design choices, the alternatives, the trade-offs). Handing you great software “in a bottle” isn’t enough. We want you to have the understanding of that software that can propel your company to deliver great product as a part of your own business strategy.

So, when your software is released to revolutionize the world in your own unique way, we’ll be with you to say, “Hello World!”

Author: Brian Geisel, CEO at Geisel Software

Author

You Might Also Like

Outsource Smarter,
Innovate Faster.

Outsource software development

Learn how strategic outsourcing can be the key to overcoming development challenges and achieving your project goals. Key takeaways: