Category Archives: Editorial

Unused Work Does Not Have To Be Discouraging

Soon after being hired my boss told the story of a project he worked on for a significant amount of time; like months. It never saw the light of day. Subconsciously I think I denied that would ever happen to me, at least not for any major work. Four years later I had not yet encountered such hardship. Yet soon enough that all changed.

Worse than seeing my work tossed, I had to make the call to discard a coworker’s serious effort. After a long delay a key component of the work had been lost. So instead I had to redo the entire project from scratch. Ironically enough my effort turned out to be doomed as well.

At the very end of the rewrite, with only one feature left, I discovered the platform vendor’s latest development kit lacked any encryption libraries. (Finding out so late was a rookie mistake on my part.) When they finally produced a suitable kit the platform had changed so much I couldn’t port my rewrite in a timely manner. So with much chagrin I rewrote it again with the suitable kit and all was well–except for my ego.

Despite wasted time and resources one can typically find something good whenever work goes unused. Over the years I’ve been reminded of a few:

  • It is a learning opportunity
  • Helps avoid getting overly attached
  • New ideas often accompany do overs
  • Practice
  • Redos are a chance to develop grit

Of course these rarely add up to match the lost time or money. But if the learning opportunities are maximized it can save a lot more in the future.

It can be especially frustrating for those of us who are technical to accept non-technical reasons for work to be mothballed. For us “business reasons” can feel so abstract and intangible. It’s almost as if it’s arbitrary and frivolous. Still, businesses exist to produce a profit, and even organizations have to make trade-offs when their resources are limited.

Until time travel is sorted out, forecasting client needs or project requirements will almost certainly remain an inexact science. While we wait for our future overlords to return let’s take solace by remembering the good that can be salvaged from the ashes of our abandoned work.

You Can Raise Any Price Except ‘Free’

When prices go up existing customers feel like they got in at the right time. Prospective customers who missed the sale may feel left out, unless there is a hope for sale in the future or price increases are consistent. But there is one price that seems to have more inertia than any other: free.

A while back on This Week In Enterprise Tech one of the hosts made the point that permanently lowering a price is challenging because of the potential for resentment. After all, no customer wants to find out what they just paid good money which they could have saved. Yet they also mentioned that raising the price is typically not a problem. As a consumer I’d say this is true.

Products improvements and inflation have conditioned me to expect most of the products or services I enjoy to increase in price: appliances, movie tickets, food, and so on. (Preferably this is gradual or otherwise feels justified.) So why is it that seeing a product go from free to paid often involves a backlash? Examples include LogMeIn, ZenDesk, and more recently Steam mods. My guess is the mental gap between free and even one dollar is larger than from one dollar to five.

Initially my preference for free products was driven by the desire to save money. Though over time I became fixated on the other benefits as well:

  • Easier sharing with friends and family
  • Feeling secure that I won’t forfeit the purchase when changing platforms
  • Simpler experimentation without having to go back and pay for what works best (such as for evaluation-only trials)

Of course nothing is truly free of cost. This was often clear in the quality of free offerings compared to paid ones. Microsoft Paint was included with Windows for free while PaintShop Pro was a paid product. Ultimately I got more use out of PSP. Doom modding tools were free, still I found myself far more productive with the non-free Klik & Play; albeit making simpler projects.

Even in mobile gaming where ‘free’ now dominates, typically with quality included, the shifting and hiding of costs is increasingly distasteful to me. Producers are tempted to not only make things enjoyable but rather tease players into paying ever more. Sometimes it manifests as pay-to-progress or pay-to-win. And while ‘shareware’ and trial editions have a similar model they are often explicit, one-time payments. Producers are less likely to string players along.

Now that I’m older and more patient paying for quality products and waiting for sales appeals a lot more to me than in past. Being a producer has also changed my perspective on what ‘free’ really means. Yet there’s still that twinge of discomfort when the ‘buy’ button is in the way. Perhaps it’s the feeling of lost opportunity since I could spend the money on something else. But once I’ve paid the bills and saved enough for long-term goals there’s very little reason to hold back. After all, I can’t take it with me.

Browser Support For Custom Schemes Too Troublesome?

Every so often my mobile phone’s browser will spontaneously open an app store. And apparently it’s a known problem with shady ads abusing the prefix (a.k.a. URI scheme) of links. Typically this prefix is the familiar “http:” or “https:”, but when other, recognized values are used it can open software outside the browser.

One of the earliest such schemes I came across was the “mailto:” form. And when a link is activated it often opens one’s e-mail application to send mail to the address indicated. Early on this was quite useful, and some standards were created for interoperability. Nowadays it has expanded to include non-standard schemes for specific services and applications:

  • “steam:” starts the Steam gaming software
  • “itms:” opens iTunes Music
  • “market:” initiates Google Play’s marketplace

Yet rarely have I found a need for these custom schemes to do something meaningful. Often they serve only to get in the way like podcasts only publishing through iTunes, which I don’t have, or the random ads opening Google Play.

Programming As A Privileged Career

Some friends in more traditional careers like farming and manufacturing have opened my eyes to the privilege it is to have a job in software. Looking at the bigger picture reveals that programming for a living depends upon many other roles to enable such an abstract pursuit. Working from the bottom of Maslow’s hierarchy I can imagine these would at least include: food production, waste management, housing, medical care, police, a justice system, electricity production, hardware manufacturing, and transportation services.

One experience in particular stands out as a moment of awakening. During long drive on vacation conversation turned philosophical as my friend shared his perspective on disappearing skill sets maintaining expensive and old, yet very profitable, manufacturing equipment. Since he was experienced and flexible he was able to keep the machines running, but he encountered few as willing or knowledgeable within mechanics and electronics. While I’d like to be as adept at keeping my existing belongs chugging too, doing so in the face of increasingly –maybe unnecessarily– complex things makes repair and maintenance less practical. And sadly few can afford to be the repair experts when we consumers are so quick to replace them with new and shiny.

Farming in North America was a career for 90% of the population as late as the American Revolution. Now it has dwindled to about 1%. A highly specialized society has certainly broadened the choices for careers in the modern age. It has also increased the need for higher levels of education. And in scarce job markets the competition for work means employers can be selective.

Despite the downsides one sometimes faces as a software or services producer, it is still quite a privileged endeavor compared to many others. Next time I’m waiting in line for service I’ll have to remember all this. I’d rather not go back to the job behind the counter, and I certainly don’t want to make it any worse for those who have no choice.

Despite SuperFish, Bundled Software Is Not All Bad

Recent news surrounding Lenovo‘s shipping the insecure adware known as SuperFish has stirred up more hate for bundled software. Yet I’d guess we have all relied upon pre-installed software and enjoyed the benefits of additional bundling. Most devices and PCs come ‘bundled’ with operating system software such as Microsoft Windows or Apple OS X. Other less controversial categories include media software (think DVD or Blue-ray codecs), games, office suites, and security tools.

Samsung is a company known for its bundle-ware. So much so that Korean courts have ordered them to allow customers to remove the software from their phones. On the other hand I’ve found some of their offerings quite useful:

  • Calendar and tasks are solid and Exchange compatible
  • Customized tray is quite convenient
  • Integrated power-saving mode has helped with battery life
  • Samsung Knox allows me to encrypt my phone without rooting
  • Timer and alarm clock apps are both solid and easy to use
  • Voice recorder is solid and advertisement free

Knox was apparently so well received that Google has integrated it into Android. My other, non-Samsung phones have also included a mix of useful, and not-so-useful bundles. A few of the best included the Swype keyboard and a handy automation feature.

Of course not all bundled apps are appreciated: Samsung’s Magazine app is not my first choice, the sketchbook is not the most obvious, and I’m not a big fan of Uber’s ride-sharing app being automatically installed with a recent update. That being said, on the whole the good ones far outweigh the others.

Bundling can have downsides besides annoyance or security bugs. When platform makers have too much power, such as a monopoly, their bundling can be anti-competitive: swallowing up whole markets. Still, from the customers perspective the lower prices, (sometimes) enhanced ease-of-use, and heavy discounts on bundled software are tough to resist. Besides gradually giving more and more money to fewer and fewer companies is a disadvantage few customers probably consider when they’re shopping.

Imagine buying a new PC and not being able to play DVD’s or music without paying extra? That was the case with the original Xbox because of the added cost to license the patents. Today most devices can playback media using common, patented technology because those licenses are already part of a bundle. Likewise most can open a PDF document, a spreadsheet, and update their own hardware drivers without extra effort because of bundled software. So next time you encounter a new device with a desktop full of icons remember there may be some treasure hiding there.

Ad Blocking Robs Everyone

Internet services and web content take time and energy to develop and maintain. Since the Web opened to commercial business and broader public adoption in the 1990’s it has been increasingly funded by advertising. Yet tools which block ads, like Ad Block Plus, undermine this support. Without compensation for their work the people who produce websites and services will have to find another way to get paid or stop producing.

Of course nothing in life is completely free, but the increasingly easy access to the Net make it seem that way. While we consumers pay for access to the network, it’s often advertisers who pay for the content we enjoy. This makes a large volume of work available that might not be accessible. Before commercialization web access was typically only available at large institutions like universities, governments, and large companies. So naturally content was tailored for this audience; research, educational resources, and business records.

As more consumer content (like games, music, and news) came on-line it became more worthwhile for the general public to get involved. But without ads growth was slow. Since then on-line advertising and network technology matured some advertising is yielding to direct purchasing and patronage. It’s happening with movies on Netflix, music on Spotify, and publication with Patreon and Google Contributor. Though, given how modest direct contributions are compared to market of paid and free-with-ads-or-in-app-purchasing it appears most consumers opt for ads over paid subscriptions. In other words, we’re more willing to give up time than cash.

Ads also lower the barrier to entry which makes the web more accessible to those who are unable to contribute directly to producers; whether because of the cost, technological, or regional barriers.

Certain ad blockers and blocker producers claim that they’re only avoiding annoying ads. Yet they still consume the content regardless. So it’s like saying “I only steal from stores when the payment is distasteful”.

AdBlock Plus looks especially hypocritical as they extort payment from advertisers to avoid blocking. Perhaps they’ll also unblock their own advertising

Now I’m no saint either. Before fully understanding the consequences, I used such blockers as a way to avoid annoyances on the web. In fact the act of writing this article has made me rethink my use of RequestPolicy and similar tools to avoid loading unnecessary assets. One could take this view to the extreme and say that disabling plugins like Flash is theft since ads may depend upon it. Accessibility tools likewise may restrict how the web is presented. However, in such cases the intent is significantly different and advertisers often have a way to fall back to self-hosted ads, ads without plugins, or without images. Even so I’ve decided that my blocking of all 3rd-party resources is going too far.

We as consumers can chose to avoid advertising on the Internet, but the only ethical solution is to pay producers ourselves or do without their services. Anything else is theft. Otherwise the decreasing effectiveness of ads will probably lead to less content for all of us.

Poisoning Ourselves With Plastic

It’s easy to overlook just how much plastic one uses day-to-day. But the earth is a closed system that notes every wrapper, foam cup, and throwaway bag on it’s very permanent record. And as the refuse breaks down it works its way back to us through the food chain.

Since the oceans act like a sponge the creatures living there consume the plastic bits left behind. While this isn’t recent news there has been some recent attention. Catalyst ABC’s Plastic Ocean piece explains the situation. Around half way through the video I began to take stock of how I have been unintentionally contributing to the problem myself.

Being ecologically minded I thought I was doing well by shopping with reusable bags, drinking from reusable bottles, and harvesting some tea and coffee grounds for composting. Living in a recycling community also helps reduce the problem. But they don’t accept plastic bags, wax paper, Styrofoam, or complex items like electronic gadgets.

When I began to consider everything I consume it became obvious there is more room to improve. During any given week my non-recyclable consumption breaks down as follows:

  • 4 plastic, single-cup, coffee containers
  • 4 plastic wrappers for tea
  • 3 plastic, vegetable wrappers
  • 2-3 thin, plastic, produce bags
  • 2 plastic, zip bags for nuts
  • 1 wax and cardboard fruit container

Given 52 weeks in a year that makes 754 items that have to go somewhere. One idea is to switch to tea that comes in paper wrappers but even that may not be the optimal considering how the paper is produced. Of course this isn’t the whole picture. There are also holiday gifts, treats offered, and packages purchased at various times throughout the year.

Reuse and recycling can help too. Though ultimately, the best solution is to reduce consumption. Saying ‘no’ to oneself and others can be awkward and occasionally painful. Yet if one wants to enjoy food, especially from the sea, without plastic contamination then the bigger picture must be kept in mind every time temptation arises.

Buying New Often Borrows From The Future

Trying to save the world by upgrading to more efficient models may actually do the opposite. This appears especially true of electronic equipment whose actual lifespans are in free fall because of the race to get the ever shiner, newer model. When those newly produced products are made from non-renewable resources one is subtracting from what would be available in the future. To be blunt, it’s stealing from children to indulge ourselves.

Honestly, I’m no saint in this regard. From 1992 through 2014 I’ve used eight different desktop computers, six laptops, at least six monitors, and eight cell phones. Sadly about half were thrown away or broken.

While some of the upgrades have proven more efficient in terms of processing the trend among desktops and phones is to draw more power. Case in point, my first desktop had a 240W power supply while my latest needed 700W, largely because of the fancy video adapter. Charging has also become more frequent with smart phones. My Blackberry smartphones often went weeks without a charge. Now it’s rare to find a smart phone guaranteeing more than 24 hours of battery life. Even the move from power-hungry, CRT monitors to flat screens has its disadvantages.

SusteIT’s report concludes that one should prefer to maximize what one already has in use considering the total impact of manufacturing computer equipment. Despite the complexities involved I feel confident recommending that any PC or laptop made within ten years should suffice, with proper care. Beyond that point it should still be usable for casual workloads.

Not every household item is the same of course. Some appliances like outdated refrigerators are better recycled for scrap than kept in service. When to draw the line is not difficult to find out. A few web searches on “life cycle assessment” and the kind of appliance should help. Deciding between repair and replacement is a similar situation with a similar solution.

Maintenance is another factor in maximizing use. Taking care can also benefit resale value when it is time to replace something. Until such times are necessary let’s try to resist the urge to prematurely upgrade. Otherwise the legacy we leave will include overflowing scrapyards and landfills.

Buying new products brings with it a responsibility to future generations, whether or not it’s obvious. Next time you’ve the opportunity please do everyone a favor and seriously consider purchasing used or refurbished instead.

Freebies From Platform Makers Are Destroying Markets

As platform makers like Apple, Google, and Microsoft expand their offerings to include more and more features they often destroy the markets of their developer partners. These companies are natural monopolies as the sole maintainer of their respective platforms; even the relatively open platform of Android is migrating to increasingly proprietary apps and services that Google alone controls. Yet because of their ability to influence through defaults and brand they’re also in a position to swallow whole markets.

Apple’s Ping, Google Wave, and Microsoft’s Windows Phone all show that such expansion efforts are not always a runaway success. Unfortunately there are also examples of platform producers acquiring and pricing others out of markets:
* Apple Siri and Google Now compete with 3rd party voice recognizing assistants like Vlingo
* Google’s purchase of DoubleClick has accelerated the race to the bottom of advertising pricing
* Microsoft Internet Explorer destroyed Netscape’s browser market
* Microsoft Office 365’s bundling unlimited storage for less than $10 per month may prove decimating to competitors like Dropbox

Recent anti-competitive measures are not limited to bundling and acquiring. The move to official application stores has also further tightened the grip of platform developers on users who once depended upon 3rd party providers. Apple prohibits 3rd party stores on it’s devices. Google has also tightened certification requirements to get their increasingly core applications onto hardware. This leaves users with fewer practical choices and developers at the mercy of a relatively small number of platform makers.

Freebies from companies of all sizes seems to be an increasingly significant portion of the software and services used by everyday consumers. Imagine if the same were true of cafeterias in malls, with the largest portion of consumers taking samples from many different food vendors. And not only once but on an ongoing basis. Such a market would be untenable. This is all the more acute when a monopoly does so because they have the most immediate access to users of their platform, and often they can offset loses elsewhere.

Companies should not be forever pigeon-holed into their original business market, that would stifle innovation. However, once a company gains a significant or controlling share of a market I do think it is better for everyone if there were some reasonable limits to their expansion. Perhaps if expanding their platform were justified, for example for accessibility, then the default would have to show alternatives and the internal Application Programming Interfaces (APIs) be exposed for others to utilize.

Requiring customers to buy only on faith is another unrealistic solution. Allowing free products and services has it’s place, but I believe that much like the shareware market of the 1990’s the current freeware and services cannot last. Bitcasa’s recent pricing increase is a sign of things to come as smaller companies are unable to compete.

Issue Tracking Needs Are Specialized

Different companies have different kinds of issues and ways of managing them, so I probably shouldn’t be surprised there are many software and service solutions available. And as an engineer it’s tempting to fall into one of two extremes: build it from scratch or buy something and deal with it.

Do-it-yourself was my preferred approach as a young and ambitious programmer. After all, what could be better than a custom-built solution? However, within five years of making and maintaining such solutions I found myself in the get-it-and-forget-it camp. Another five years later I think I’ve settled somewhere in the middle.

My first experience with issue-management systems was on-line support forums. These were simple message boards requiring a lot of moderation. Shortly thereafter I was exposed to a somewhat custom, Lotus-based solution. This time though, as a support technician handling the problems. Since the solution required Lotus, and only worked within the network, it seemed ripe for replacement with a web-based frontend. Studying web programming made me eager to try my hand at making something better.

Building custom intranet solutions came next with employment at a company branching out into other industries. It was interesting to see how the various needs could be met with custom software. At first simple comment systems were enough for employees to keep track of their customer complaints, notes, and follow-ups. Of course e-mail and IM were also being used heavily to supplement.

In time, however, maintaining so many different systems became burdensome for only two or three developers. Increasingly I also saw patterns in the various needs that also fit some existing solutions.

One of the first to be used in house was Trac, and it worked well for our needs initially. Integration with software repositories was nice. Some add-on’s for things like discussion boards worked well enough. The wiki, its integration, and its export options were my favorite features. At one point I even used the mantra “If it’s not in Trac it doesn’t exist” in a push to unify the disparate repositories of knowledge.

Over time though it’s simplistic reports and lack of built-in, multi-project support were too problematic. Other solutions were tried with varying levels of success and failure. One of the most lasting was Altassian JIRA and it’s wiki offering. Customization options did not appear obvious or immediately better to me at the time. Though, some in management were more familiar and appreciated it’s built-in flexibility.

Experiments along the way pushed the boundaries of such trackers; pressing them into service as the official source of truth, customer complaint tickets, feature tracking, road-mapping, to-do/task management, time tracking, and discussion. Ultimately I’ve come to realize that specialization is needed; even if it takes the form of creative use of, extension software for, or rethinking about existing solutions. And at times it is better to have many, separate solutions than keeping it all in one.