Custom Software Development Can Unlock Huge Value For Small Business

Custom Software Development Can Unlock Huge Value For Small Business

category: main

Once in a while, I take a certain book with me to technical meet-ups. It's called "Jenkins, The Definitive Guide". The most profound part of the book is the first paragraph of the foreward, on page xiii:

"Seven years ago [book published in 2011], I [Jenkins creator] wrote the first line of code... of Jenkins. I used to be the guy that broke the build, so I needed a program to catch my mistakes... and now... it's the most dominant continuous integration server...".

A techie had a very typical, common problem: how did they get the software code that they wrote to the systems they were writing for?

You want to know the real answer to this question? The real answer is that they did not! There was so much fear of breaking the system, that those who had their jobs on the line basically had a system of deferral so new code would be prevented from being introduced into the system. From page one of of the Jenkins book:

"Back in the days of waterfall projects and Gantt charts... development team time and energy was regularly drained in the period leading up to a release by what was know as the 'Integration Phase'... [where] code changes made by individual developers or small teams were brought together piecemeal and forged into a working product. This was hard work, sometimes involving the integration of months of conflicting changes. It was very hard to anticipate the types of issues that would crop up, and even harder to fix them, as it could involve reworking code that had been written weeks or months before. This painful process, fraught with risk and danger, often lead to significant delivery delays, [and] unplanned costs."

To publish a new software release, new code from different people and teams were brought together for the first time into a new unified whole. The new unified software failed because the new software code never played nice with the existing software. The new unified software failed for another reason: new code from this person broke the new code from another person. Going through the new code to figure out what was causing the problem was a major time consuming exercise. Fixing the problems was a major project on its own.

The lore that I remember about the history of the Jenkins Project is: a techie wanted to go home on time on Fridays.

If his contribution to the new system worked, then he could go home. So the trick was to make sure that his contribution worked. So wanting to get out the door ahead of the weekend, he decided to take matters into his own hands. He had the power to create software. He saw a potential for automation. He would craft a little program to achieve his selfish goal. The lore is that he never asked his boss for permission because he knew the answer would be no. So he just quietly put it together for himself.

This techie was "the guy that broke the build, so I needed a program to catch my mistakes". He wrote his little program to catch his mistakes. Guess what? He succeeded in walking out the door at a decent time on Fridays.

You know what this techie did? He released his little "get out at a decent time on Fridays" software as free open source software. His peers caught wind of this little time saver, and tried it out covertly. When it helped them walk out the door while it was still daylight on Fridays, they re-worked the source code for their particular situation, and/or to make the original code easier to work with. Then, they uploaded their changes for others to use. So a little community of techies salivating at the thought of actually leaving the office on time on Fridays worked the hell out of this open source code, unbeknownst to their bosses who would never give them the green light to use this code. Ah, but the lure of leaving the office with the paper pushers was too much temptation!

Supposedly, "continuous integration" took off when managers noticed they were spending weekends with their families during the "Integration Phase". Hey, they like their weekends too!

This software became Jenkins.

In my opinion, Jenkins is a "Kitty Hawk" moment for tech. Huge value was unlocked. It's been an uninterrupted introduction of technologies and methodologies ever since.

Things have progressed so much that custom app development is accessible to small businesses. It's not just for the larger companies. It's not just for large apps either. Costs have come down. Way down! And, there is a lot of stuff that is actually free and open source. 

There is tremendous opportunity for small business to unlock value with custom software development.