App Developer Woes

I started my company about 5 years ago by writing Android applications. It started out pretty simple by converting a simple website I wrote long ago into an application for ham radio calculations. That app went on to become one of the most popular ham radio applications on the Google Play store. Seeing how popular the app had become, I decided it would be smart to determine how I would monetize the application. And this is where things get difficult for app developers. As an Android user, I like to find free apps. And, like just about everyone else, I don’t particularly like ads. Ultimately, I made the choice to have a paid (ad free) version as well as an ad supported version. Let me be the first to say that I’m not getting rich from my apps. In fact, I make very little even with over 250,000 downloads across all my apps.

As an app developer, it’s very hard to find the time to make high-quality apps that you know you’ll never really see anything out of. If I spend 40 hours on an app, even if I only say my time is worth $10 / hour, it would take $400 just to break even. That can take literally years to generate in ad revenue. (I’m going to assume that – like the overwhelming majority of apps out there that mine isn’t going to all of a sudden become the most popular app in the play store.)  What’s even more challenging is when you have negative reviews attacking your free app or when users email you expecting you to provide hours of support for an app that – if you’re lucky – they may pay you $1 for.

I love writing apps, and I have a few more planned for later this year. However, I would encourage users to deliver feedback or requests with a constructive tone and appreciation, especially considering the circumstances surrounding many app developers. Remember, the majority of apps out there are developed by indie developers whose time is tied up with another job to provide income, so they are often unable to implement new features on the fly. Requests rooted in appreciation and a positive attitude make the world a better place for users and developers!

Ads on the Moon?

Moon

When I was a child, I had the same dream as every other child in my generation – the dream of being an astronaut! Indeed, since the dawn of time man has been fascinated with space. The calendar month is based on the moon’s time to circle the earth; ancient religions included the moon, sun, and planets as gods; and even modern radio enthusiasts use the moon as a natural satellite for communicating with people on the opposite side of the planet. Among the earliest of movies ever made was A Trip to the Moon (1902) by Georges MélièsThroughout the centuries, man has been captivated by the beauty of the moon, the stars, and of everything else visible in the night sky.  The night sky has been an inspiration for art, music, poetry, folklore, religion, and just about every other realm of the human experience.

Yesterday, as I was reading the current issue of MIT Technology Review, I came across an article that mentioned putting ads on the moon. Now, I must start by saying that the article didn’t provide any details, but I was disgusted to see such a thing suggested. Imagine a future where lasers are used to project the Nike swoosh onto the moon or the Amazon logo is proudly displayed. Is the moon really nothing but a billboard for corporate use?

Of course, the problem of technology and nature is nothing new. For years there have been battles between people wanting wind farms and nearby landowners who don’t want their view polluted by turbines. Roads, water turbines, railroad tracks, oil pipelines, and countless other technologies threaten the natural beauty of the world we live in. Questions of who owns the land, waterways, and underground resources such as oil and coal are a big deal in the legal realm of land management. Is the moon the next frontier for such legal battles?

Who has the right to deprive mankind of our brightest muse? Are we really willing to destroy the beauty of the moon for a few dollars? I’m a capitalist, but some things are priceless and shouldn’t be destroyed for a quick buck. For me, the moon is one such object. Looking at the night sky to see the moon displaying the Pepsi logo seems like a hellish future I hope we can avoid.

For the record, I may be able to support using the moon to display the bat signal, but don’t tell my daughter – she’s a Marvel fangirl.

The Best Job Ever

Early in my career as a software engineer, an executive of the company I worked for told me that “nobody wants to be a programmer, it’s just something you do to put food on the table.” That particular comment has stuck with me for years. I’m not an easily offended person, but that comment seemed to have an underlying attack on my value as a human being. It suggested that I was doing undesirable work and that I wasn’t capable of finding a real job. The irony is, I believe I have the best job in the world. Writing software pays well, it’s mentally challenging, and tremendous fun.

When we talk to young people about work, we often tell them to follow their dreams – but that’s a really bad idea.  After all, neither the mortgage company nor the grocery store accepts dreams as payment. Instead, better advice is to find the sweet spot in life. What is that? The sweet spot in life is where your skills, your desires, the market, and money all meet. It’s the job you want to do, that has employment opportunities, and pays well enough to enjoy your life. For me, I absolutely love programming. It really is the best job ever. I found the sweet spot in my life, and I couldn’t be happier.

So, to that individual who said nobody want’s to be a programmer, you’re wrong. Very wrong. I wake up every morning and look forward to my job. I read about it in the evening. I code for fun. Writing software is my passion and I have never once been ashamed of what I do or thought of myself or my skills as undesirable.

Can you say the same about your job? Are you truly passionate about what you do? Did you manage to find that sweet spot in your life? I did and it has made all the difference!

Work in Progress

When most people think about DevOps, Continuous Integration (CI), or Continuous Deployment (CD) they think about tools like Jenkins or Bamboo. And, indeed, these tools are indispensable for rapidly moving software through the development pipeline. However, an even more rudimentary principle is required to truly enjoy the benefits of any CI/CD environment – limiting work in progress (WIP). Work in progress is the number of items that are currently being developed. The higher the number, the more difficult and time consuming deployments become. And, conversely, the lower of number of features in development, the lower the risk for the deployment and the more rapidly it can be deployed to live systems. Limiting the WIP to a small number – a single new feature or a couple of important bug fixes – ensures that you can get the changes tested and deployed in short order. This goes well with the ideals of agile development – quick sprints where a small number of items are completed – and ensures that focus is kept on the most important items. Once that sprint is complete, a new version can be pushed to end users. This ensures users have want they want, turnaround time is low, and bugs are kept to a minimum as changes are small and easily tested. This principle applies well beyond software. In fact, it was originally documented on factory floors. Creating products in small batches ensures that if there is a problem, it’s limited to a small batch and that the first shippable products are available more quickly than large batch processing. How does your company handle work in progress? A small number of items, or huge batches? Does it take forever to release a new version or to have a product ready to market? Consider the impact of limiting the work in progress to a small number and frequently releasing your software or product and how it could impact your time-to-market and ultimately increase revenue!

Setting the Standard

Today, I was reading about Les Brown – a well known motivational speaker and former member of the House of Representatives. One of the quotes that was attributed to him was “develop the habit of setting the standard that others will be measured by.” Those are great words to live by. When I started taking martial arts classes well over a decade ago, I trained hard to be the best I could be. Then, when it was time to test for black belt, I nailed it. In fact, I did so well that the way I did things became the standard way the school continues to test for black belt. When I attend classes, I still hear it mentioned that we do it that way because Mr. Gerlach did it that way. What a great sense of pride it brings to be the standard that everyone else has been measured by for the last decade.  But that idea extends well past our hobbies – it extends to everything we do. Do you set the standard of excellence at your workplace, or do you work just hard enough to not get fired? In marriage, do you set the standard for what a good spouse does? What about parenting?  When people look at you, are you an inspiration or a cautionary tale?

As a programmer, I want my code to set the standard of excellence for the organization I’m working for. As such, I spend time honing my skills, improving my knowledge, practicing my trade, whatever it takes to be the best of the best. Just like setting the standard for martial arts, I want to set the standard in writing good code. I want the next generation to look to my code as the yardstick that other projects are measured against.

Mechanical Tech

Mechanical

When you think of technology, what do you think of? Most people would say cell phones, computers, and other transistorized gadgets. But there’s a whole other world of technology out there that’s equally exciting and all too often forgotten by most of us – mechanical technologies. While the history of electronics is short, mechanical technologies have changed the world for thousands of years. For instance, technologies like Archimedes’ screw or the lighthouse of Alexandria were developed before the birth of Christ. But to me, no mechanical technology is quite as interesting as clocks and watches. From the sundial to the Apple watch, man has been interested in the passing of time. And while it’s easy look at smart watches as an engineering marvel, they’re really not much different from a phone or tablet in extreme miniature form. In fact, smart watches are far less exciting – technology wise – than many of the analog watches out there today. For instance, the Citizen Navihawk watch is able to set the time based on radio signals from around the world, runs on solar power, contains a circular slide rule, and shows time in multiple timezones. Containing 5 different dials and 8 hands, just looking at the watch in action is fascinating. Another interesting Citizen watch is the Altichron. While having far fewer dials than the Navihawk, it offers something even more practical – a compass and altimeter. Of coarse, there are countless other mechanical engineering marvels out there – such as automatons and mechanical robot hands. Even more exciting? The union of electronic technology and mechanical technology! Components such as reed switches and tilt switches use mechanical means to interact with electronics. Mechanical hands wired with servos allow us to create machines that can interact with the world in the same way we do.  So, as we as a nation continue to focus on STEM, let’s not forget that it’s not just about electronics! The technology behind mechanical objects is just as exciting and indeed it’s the union of mechanical objects and electronics that will take move us into the future!

Flavor of the Week

Ice Cream

The internet has had an amazing impact on the world. Not only does it allow us access to more information faster than ever possible before, but it also allows us to have access to software and libraries instantly. As a developer, I rely on tools like Maven or Gradle to automatically retrieve code libraries from the internet on demand. But this speed of disseminating information and code has also created a ‘flavor of the week’ environment for programming frameworks and technologies.  Twenty years ago, if you were a professional developer you probably worked in C, C++, Visual Basic, or Delphi. Today, it’s hard to count all the different languages out there. In the Java world alone we have Java, Scala, Groovy, Clojure, Kotlin, and others. For JavaScript frameworks, developers can choose from jQuery, REACT, and Angular – which just accounts for the most popular options. With each new project, companies examine the tools available and change their development stack to utilize the latest and greatest. What used to take a decade or more to become legacy code is now obsoleted in years.

When I entered the IT world, I needed to know one programming language – that was it. Now, looking at the technical requirements provided by employers is a daunting task as each company has cherrypicked what they believe to be the best technologies in a variety of different realms. Developers are increasingly expected to be experts of an unimaginable number of technologies. What’s worse, few technologies never reach maturity before they’re completely overhauled. Consider, for instance, Angular. While it’s an excellent framework for application development, it’s nearly impossible to find answers to questions since the framework has changed so much since its creation. Long-term, the IT world is going to end up with innumerable projects that are no longer maintainable because their technology stack has become obsolete or developers have moved on to the new flavor of the week.  Even worse, programmers are becoming a jack-of-all-trades which means that code quality is poorer, bugs increase, and time-to-market is increased as nobody has a mastery of anything they’re working with.

None of this is bringing any value to end users or tech companies. In fact, it’s just creating more code that will be obsolete before it’s even deployed.

Happy Employees

What is the most important asset of any organization? Is it their physical property – buildings, computers, and desks? Is it their capital reserves in the bank? How about their portfolio of intellectual property? While all of the above items are important, they pale in comparison to the value of their people. An organization’s employees take care of and use the physical property, spend capital to fund activities to grow the business, and exploit intellectual property for economic gain. It’s the people who make it all happen – without them, everything else is just an inanimate object. Unfortunately, people like Jack Welch failed to see their value and changed the market to see people as nothing but another expendable resource. In the eyes of people like Jack Welch, people are no different than the wood used to make a door, the plastic used to make a consumer good, or a glob of solder used to make electronic goods. People became a commodity instead of human beings.

How has this impacted the workplace? We see more and more that people don’t work for an organization for very long. Changing jobs every few years is increasingly popular. Of course, this is only logical – why would you want to work for an employer who didn’t value you as a human being? Businesses do whatever it takes to keep employee pay as low as possible while increasing the CEO’s pay. When annual raises come due, the lower the number the better. Employees quickly see that if they want to get ahead, they will need to find another job making more. What if employers gave raises as if each employee was a potential new hire and they wanted to ensure they took the offer?

What would happen if the business world changed to value people over profits? What if companies placed their people first – ahead of profits, ahead of the customer, and ahead of the shareholder? Sounds radical, but companies who have implemented such policies have seen higher employee retention and greater employee happiness. But most importantly, that greater happiness directly translated to happier customers who then engaged in more business with the organization and improved shareholder value. Countless books on the topic of servant leadership and employee-focused business models exist, and they all show the exact same thing – employees who feel valued are more productive and happier to be at work.

A book I recently read said that – as a small business owner – I need to “fall in love with my customer”. The notion is that I should treat my customer like they are the most important thing on earth. Treat them like I treat my wife. Treat them as if I want nothing more than to spend time with them. When I treat my customers that way, my customers won’t want to leave. That same idea applies to employees – what if businesses treated their employees like they loved them?

The Benefit of Software as a Service

One of the biggest trends in the software world over the last decade has been the migration to Software as a Service models. For people that are unfamiliar with the Term Software as a Service (abbreviated SaaS), it’s the notion of paying to use software on an ongoing subscription basis instead of purchasing a license for a software application. In the 90’s, users would go to the store, find the software they wanted, purchase the software, and then use that application forever. If a new version came out, the user would have to purchase it individually. Applications like Microsoft Office, Quicken, the Adobe product suite, and others would come out with new versions every few years, and users would have to shell out the cash for each new version or continue to use the old version.  For many applications, this quickly became cost-prohibitive. For example, some applications may cost hundreds or thousands of dollars. During the last decade, that model has changed. And, while many complain about paying monthly for software, it’s actually a great benefit for the user. For example, I have a subscription to the Adobe Creative Cloud that costs me around $50/month. With that subscription, I have access to every single Adobe application out there. Likewise, Microsoft Office now costs around $100/year for the entire application suite. This lower cost means that I have access to software that I couldn’t previously afford. Furthermore, I automatically get all updates. No longer do I need to buy each new version when it comes out. Instead, updates are automatically installed on my computer. In the end, I get the most up-to-date software at a fraction of the cost I used to pay. I know some users don’t like paying monthly for an application. But for me, the benefit of having all the software I need at a fraction of the cost with access to all future versions included is well worth the monthly fee.

The Shoulders of Giants

This week saw the passing of a giant in the world of astronomy with the death of Stephen Hawking. His work has forever changed the landscape of the science realm. Throughout history, men and women of every era have driven our collective future to where it is today. As a computer programmer, who do I look to as the giant in my realm? Many people might point to Bill Gates or Steve Jobs. Indeed, both have made an impact – but their skill was in their ability to merge technology with their astute business sense. No, for me there is a much more important man who has had an impact on virtually everything in the technology world today. I am referring to Dennis Ritchie. For most Americans, the name couldn’t be more foreign. Yet, his impact could not possibly be more profound. Dennis Ritchie was responsible for the C programming language as well as the Unix operating system. Much like his name, his projects are unknown to most outside of technology. But just about everything in computer programming owes much to C. The C programming language is considered to have impacted C++, Java, ObjectiveC, C#, Go, JavaScript, PHP, and countless others. These languages run most computers, cell phones, and websites in existence today. His Unix operating system was the inspiration for Linux and numerous operating system variants. Today, Apple uses BSD (a Linux variant) as the core for both OS  X and iOS. Android is a Linux variant too. If I could meet any person – living or dead – Dennis Ritchie would be high on my list. As a programmer, he is an demonstration of the power one man can have to impact the world with technology. It is humbling to consider how much further I can see simply because I have the benefit of standing on the shoulders of giants like Dennis Ritchie.