Anti-innovation Hostility

I realize it has been over a year since our last post. Our content moved to our customer section and we’ve neglected our public blog. However, based on some recent conversations it’s worth mentioning this for the sake of one of our former clients facing some tough challenges.

The bureaucracy heavy & politically active technological environment of 2016 has produced unprecedented anti-innovation hostility. A few years back we referenced this old article from Bloomberg as we noticed that our own teams were finding ourselves at odds with internal staff who were not getting the respect they deserved. As outside consultants we often get the royal treatment, and we’re often obliged to point out when our clients are missing the talent right in their own ranks. Usually such advice is accepted with gratefulness, sometimes with courtesy, but last week I was so floored by the blatant slander of a contributing FTE by their own boss that I had to fire our client. The thing about people like that is it’s not a question of if, but when. When will they turn on you too?

So rather than get much more verbose I’ll just leave this here for the sake of a very smart guy that got a really raw deal. Lay low and stay in touch:

And this one… “…and consistently the MBAs do worse than every other group of participants. … Even kindergartners are kicking their butts…”

2015, Marty McFly, and Programming.

Lots of internet posts, memes, and even videos have appeared to lament the missed predictions for 2015 from Back to the Future. However, one thing is for certain, we’ve seen a lot of other predictions come true.

We may not have a hover-board that will allow us to cruise across ponds, but we’ve got some awesome new tools.

1. Google Android Studio

http://developer.android.com/sdk/index.html

This thing has some real potential. Until now most of our developers have been using Eclipse which isn’t exactly an Android IDE, but merely a Java IDE. Initial impressions: “wow”. Our clients may opt to just build their own droid apps with technology becoming so self-contained and interactive.

2. Wearables

http://www.android.com/wear/

We’re not there yet, but 2015 could be the year. Android beat Apple to the punch in 2014 but Apple is set to release their offering which is sure to inspire all manufacturers to imagine and put their best foot forward. What’s still missing (and we have some ideas) is what “else” can a wearable do? Google Glass for instance, really missed the price point in its first iteration, but we don’t expect that we’ve seen the last of that. On our wrists we want more than a watch, or calculator, or even view of our emails. What can be cleverly fit there? Expecting some big surprises in 2015.

3. Code Automation

http://macaw.co/

WYSIWYG has always managed to stay just a little bit too good to be true. I’m having flashbacks of Visual Studio form layouts that don’t quite look good enough “snapped to grid” only to end up meticulously go to the properties of multiple elements to adjust the dimensions manually. Or gosh, remember the Dreamweaver days of little golden shields? As dynamic content became more functional those little golden shields took over the whole WYSIWYG pipe-dream. 2015 may finally turn designers into full-on coders, but this is probably one of the least likely scenarios in the list today.

4. SaaS

We shall believe it when we see it. 2015 will bring about more offerings, and while Google Docs and TurboTax have managed to establish some niches, other common offerings continue to disappoint. The problem in this space seems to be lack of ambition. Just last week we had a client demonstrate their new provider as they moved from ADP to Abila. It was like a bad movie that makes you want to spend time and money doing the public service of warning the world to avoid. Other niche offerings like FreshBooks or even some of the web-based anti-virus systems are volume based propositions. They exist because they managed to keep pricing very low and volume high. A crap shoot to say the least. This is probably our most off-the-wall prediction in this list, but expect 2015 to see SaaS decline as developer tools continue to enhance productivity and organizations continue the trend toward in-house teams. What in-house team is going to allow their shop to pay FreshBooks any significant monthly fee to do what any decent developer can build from scratch in a matter of a few days?

I imagine that 2015 will surprise us, but we’re off to the races with some of these tools and looking forward to it!

Perhaps the Most Valuable Rare Commodity

most valuable commodity refined codeIf you arrived here looking for a sure bet investment, read on. If you are here looking for insight into software development, read on. If you know nothing about the software development sector then I don’t know how/why you are here but feel free to read on also.

re·fine
riˈfīn/
verb
  1. remove impurities or unwanted elements from (a substance), typically as part of an industrial process.

Gold is worth more the more pure it becomes. The process of purifying precious metals, or plain metals, even crude oil is called “refining”.

People not familiar with the source of their gasoline may be surprised to learn that crude oil requires significant work to morph from the tar black sludge that it starts as to what ends up in our gas (petrol for you European chaps) tanks.

What very few have discovered, despite so much evidence, is that there is a refining process that is every bit as valuable as any of those processes mentioned above. It is why every significantly new software package that Microsoft releases takes longer and longer for consumers to accept. Even with it being forced on them via OEM agreements. It is why Tim Cook had to write this embarrassing letter about Apple maps: www.apple.com/letter-from-tim-cook-on-maps, and it’s why the ACA (aka Obamacare per his request) websites have cost tax payers over $5,000,000,000 (that’s billion) and still don’t work as advertised.

What is this rare and precious commodity? It’s simple, but illusive. It is refined program code.

Last week I was at a client site as a director repeated for me the mantra of Gartner Group about how a corporation should specialize and rely on outsourcing for services that are not part of their “core competencies”.  It’s a popular executive summary that sounds great – to executives. “If you’re not in the cookie business, then don’t try to make cookies. Buy them elsewhere.” As he was explaining how this applied to his organization, how outsourcing their help desk improved his department, a little gray haired director from another department abruptly interrupted us,  pointed at him and said with a Texas accent: “I need you;” and as she pointed across the quadruplex cubicle community she continued: “and you…” Then they all were gone. As they walked away I heard her explaining that they were going to go fix the access level of some 4th participant in this real-time demonstration of how a large portion of the supposedly “outsourced” services get accomplished. The old fashioned way, by still doing it himself. New alias: Director Help-Desk.

When I was a teenager several of my aunts and uncles got involved in selling these small egg shaped balls that looked sort of like a cross between a Cadbury easter treat and a blue freezer block. For just $20 you could toss this in your wash machine and never need detergent again. Or at least for 3-12 months depending on which relative I was talking to.

con·fi·dence

ˈkänfədəns,-fəˌdens/
noun

  1. the feeling or belief that one can rely on someone or something; firm trust.

There’s a big hint above, but wanna venture a guess where the word “con” comes from? Any decent salesman knows that they don’t need to sell a product so much as they’ve got to sell themselves. They have to make the customer feel confident and so long as they accomplish that then the customer can tolerate a lot of disappointment. Needless to say, those goofy little smurf eggs didn’t work at all. The water never foamed. From what I could tell the blue liquid inside it had no way to get out. All the cons managed to sell us on was that washing our clothes with water was sufficient. For those that wanted to believe. For those that had confidence in their salesmen… for them the musty smell couldn’t be their jeans.

This problem isn’t isolated to outsourcing. It extends into OTS (off-the-shelf) software quite naturally. “Does it do ______?” Salesman: “Of course it does!” If you have the gull to ask whether it does it well you may get a more honest answer, if the salesman is indeed honest.

You see, the illusion that tens of thousands of executives, directors, and politicians live with day in and day out is that if they pay more they get more. However cons and salesmen alike know that that confidence is easily misplaced. That it can be quite easy to gain large sums of money for very little in return so long as those aforementioned executives are “confident”.

There is some good country-boy wisdom that applies here: “you don’t get something for nothing…” Oh, wait… that’s not it, it goes more like: “money can’t buy everything.” OK, well, maybe you’ll have to combine the two, because even hicks like me know that spending a lot for a lame horse, or a broken down truck, is foolish. Only in the world of software development could the term “something” really be stretched to such a degree that it becomes intangible.

Actually, the hick in me is reminded of all kinds of quotes: “Jack of all trades, master of none.” … Or, “if it ain’t broke, don’t fix it.” … However, in software development I see all of these ignored on a daily basis. Absolutely no amount of money can buy wisdom, nor can it buy good software without that software being refined by real-world use.

Once you have your “Windows XP” after 10 years and more than a billion users, you cannot easily toss it aside and start over. Not without having a Windows Me, and a Windows Vista, and perhaps more costly and embarrassing failures. Most software customers are guinea pigs. The more niche their “core competency” the more likely that they’ll pay more, stay longer, and and go further than they budgeted for with the vendor they put their CONfidence in.

Simply nothing beats refined software, and if you’re operating in a niche field, with specific requirements, and custom needs, then the absolutely most wise investment you could ever make is in acquiring a talented software developer to catch your vision and build your tools.  To refine them daily as the days require and ultimately perfect them just in time for another “Gartner Group” to come along and tell you how you should be paying for their services, and their premium vendors for their services, or else you’re not “realizing your full potential”. No conflict of interest here though, hundreds of companies are CONfident in them…

You may believe that by refined I may be referring to some of those same OTS products that Gartner recommends. However the term refined does not only mean perfecting a product, but it means focusing it, “cutting the crap” if you don’t mind my inner redneck interjecting one last time. There is little refined about Swiss-army-knife software tools. You don’t need a screwdriver to cut a string. Or some scissors to remove a screw.

So the next time you hear someone attempt to sell you the “core-competencies” line while marketing a one-size-fits-all software package. Just as they reveal the bargain 6-7 figure price tag remember this: you know better than they do what you need. You know your “core competencies” and unless the software is written specifically for that purpose then they’re selling you a truck load of ore for the price of gold. Then don’t be surprised that yet again the next 5-10 years of depreciation consist of seemingly endless frustration at the fact that neither you nor your software vendor are experts at refining ore. Then consider carefully how far that 7 figures (now doubled due to unforeseen “scope creep”) could have gone if you’d just hired your own one-man software refinery in the first place.

Yet Another Use for PHP

A recent project found us integrating an online SaaS with a MSSQL Order Entry system. The SaaS system used the hideous SOAP protocol, but PHP’s SoapClient class made quick work of that.

“Unless you have a definitive reason to use SOAP use REST.”

The order entry system followed Microsoft’s version of the development bible and operated by calling dozens of stored procedures, sometimes many times (reduntantly) over again, with each click. Yet a call out to xp_cmdshell allowed us to exit that limited platform. Finally, speed, was impressive! On modern machinery PHP’s optimized and ultra thin C++ engine is a rocket ship.

So despite the completely unorthodox strategy our client has again had their expectations exceeded. Once the code for their custom interface was moved to a PHP script all scope creep was easily conquered without any threat to the timeline nor any increase in cost. Win/Win/Win (The client/The developer/PHP).

Adaptation, on the origin of the integrated health registry.

For more than two years I’ve witnessed firsthand the evolution of healthcare via skunk works in Southern Colorado. The concept seemed simple enough. The need to coordinate care for clients between multiple agencies.  With enough familiarity with the local resources that are available to guide, to “navigate”, to council medicaid members through their care decisions they’ll justify the extra effort in reducing waste from a few key areas. It seemed simple.

“I felt a bit like Noah suggesting that we build an ark.”

“The missing link in this evolution was the tool. EHR [Electronic Health Record] software is designed to document treatment from a limited and pretty specific list of specialties. Care coordination is an entirely different thing. Purposely broad and general in nature. I felt a bit like Noah suggesting that we build an ark. When the state seems to be suggesting that they are going to flood your organization with 100,000 new responsibilities a sense of urgency is an understatement. We panicked a bit in a very good way. Two years ago we panicked. Now it’s raining and we’re enjoying the rain. We didn’t misinterpret the signs. We’ve hit 60,000 members in January and that population is growing weekly. So far our ark is holding up.”

That “ark” is an application that Spanish Peaks refers to as an integrated health registry (IHR).

health-registry

“We originally just called it ‘the care coordination application’ internally, and then we called it ‘CareTracker’ until we discovered there was already an EHR of the same name and we were even using that EHR at one of our centers!”

Now they call it an integrated health registry. Whatever they call it the functions are crucial to the management of a large influx of members and needs.

“Just like Noah, we haven’t gotten to this point without our share of detractors. Now some of them are standing in the rain and still shaking their fists, pleading ignorance, and rationalizing their strategies. When the state gives us two years’ notice that our entire medicaid population is going to transition into a new model of accountable and integrated care, it’s imperative that we adapt.”

Adapt they did, and only now is the necessity of their new tool becoming evident. Spanish Peaks has now dedicated a large portion of a building and more than a handful of FTEs to this effort. Their jobs are somewhere between RN, social worker, and telemarketer. The contact management data they require and collect is just such a different schema from care-oriented electronic health record software.

“You can try to store your eggs in the cookie jar with the cookies, but it won’t be very efficient.”

“We realized early on that trying to use an EHR to do integrated care would be like trying to jam a square peg into a round hole. There are names and addresses, basic demographics like any system, but beyond that one needs to get far too creative to justify creating bogus treatment plans, placeholder services, and then tripping through the clumsy process all that would necessitate. You can try to store your eggs in the cookie jar with the cookies, but it won’t be very efficient.”

Spanish Peaks Behavioral Health Centers of Southern Colorado have leveraged technology effectively to perfect integrated care coordination through their integrated health registry program. When asked about the technology:

“We’re mostly a Microsoft shop, and we’ve combined a few key products in an unconventional way. Not the expensive products either. This effort cost the organization nothing in new licensing.”

When pressed further, one of the developers admitted with a smirk:

“I didn’t say it was entirely Microsoft. I said mostly. So 51% or so, make of that what you want. We’ve had to roll with a lot of punches, so this thing had to be fantastically flexible, but also functionally concise. We’re back to not even knowing what to call it, but in my 20 years of software development I’ve never seen a system architecture quite like this. It is quite literally infinitly flexible, without being cumbersome. That’s a tough balance to maintain on top of the rigorous security requirements.”

I got a peek at their system and it is quite unique. The user interface looked more like a colorful PDF report than an average windows application. Yet tap elements in the report and the magic begins. On the Windows Surface tablet I was using – rumor has it it works on iPads too – the gestures and format were very intuitive. A drill-down report that was literally a robust interface to a full featured IHR (Integrated Health Registry), or whatever they decide to call it next month. Leadership in Integrated Care coming from a rural area of Southern Colorado. Newsworthy.

-Josh

An Expensive Downgrade.

What percentage of development shops are pigeonholing their clients by their loyal adherence to their prescribed stack? Far too many. At V-Tek, we’ve found that .NET often fits quite nicely into our mostly open-source toolbox. Especially when our client already has an MS oriented product.

Everything from raw library-less JavaScript, to RoR coding by convention, should be fair game for a development studio worth its salt. Otherwise the first thing they will want (and have to) do is uproot your existing modules. While uprooting modules may be exactly what you need, doing it only because your trusted developer doesn’t understand them is just stupid. What you already have could be ingenious, but if your developers don’t recognize genius when they see it you may well pay a lot of money only for them to downgrade your system.

One of the most powerful combinations we’ve leveraged somewhat regularly is PHP scripting routines against MSSQL systems on Windows servers. Combine the power of CLI PHP with Windows’ Task Scheduler, libraries like CURL and Sockets, and we accomplish things that other shops have flat out claimed impossible.

So unless you, as a customer, are narrow-minded, then it is best not to hire a narrow-minded development shop that will treat you like a child while they themselves waste your money.

Entrepreneurial Philanthropy

Entrepreneurial philanthropy has been really gaining momentum in the tech sector. We know in the late 90s that a start-up could dive in just for the sake of profit and if the business plan showed promise they’d acquire investors. Then the bubble popped and sent those investors looking elsewhere for revenue.

Today it’s tough to make it mainstream, even for viable business models. However, a trend has developed that not only requires only mediocre viability, but also manages to keep investors from jumping off the sinking ship much longer. We like to call it “entrepreneurial philanthropy.”

People are bargain shoppers, and there are plenty of people in this world that are simultaneously burdened with a desire to be meaningful and make some difference in the world. Enter the entrepreneurial philanthropist (hereafter referred to as EP).

The EP has identified a niche market with capitalists who are willing to incur much greater risk on the possibility that the end product of their investment could, even in a small way, make the world better. After all, it’s the thought that counts isn’t it? Well, actually no.

1. Handing out money to beggars on the street feels good but the reality is your money is very unlikely to make that beggar’s life any better. In fact it will only enable them and neutralize any actual potential that individual had in the first place. It will make their life worse. If the EP is the beggar then the “actual potential” would have been an actually viable business model.

2. Philanthropy really isn’t about looking to make a financial return on your investment. So let philanthropy be about philanthropy and your investments be about investments. There is nothing noble nor charitable about wasting money for no profit and no improvement. As already stated in #1 the lack of improvement probably means that you are making lives worse with your money. This is the kind of wasted potential that made Dagny Taggart so grumpy.

3. I’ve rarely met a good investor that did not accept Occam’s razor except when it comes to EPs. A few pictures of hungry kids can and should move us to tears, but not to stupidity. There are proven ways to feed kids, and that is by feeding them. The EP will have more assumptions than answers in their presentations but still fools eager to be parted with their money will bow to the emotional appeal.

So beware of the EP. While viability and charity are certainly not mutually exclusive in the world of business models, charity is also not a suitable replacement for viability. If you know of an EP project that failed financially but succeeded socially please do let us know in the comments below. Otherwise, assumptions aside, viability must be important whether your investment is philanthropy or entrepreneurial. Otherwise you’ll likely accomplish neither.

Outsmarting yourself. The dangers of techie dogma.

Some recent events have led me to reconsider my early programming days. Only a few years in but with thousands of hours and 10s of thousands of lines of code under my belt I was beginning to feel pretty confident. I had a very lucrative gig and after a few rounds of layoffs my team was efficient and savvy. This was the late 90s mind you, and during that time J2EE had bubbled up as an industry standard. We were a creative bunch and after some strategic pruning we were finally producing pretty robust solutions. I had personally discovered Java reflection and was having a blast exploring the possibilities. When I declared in a team meeting that all of our web forms could “build themselves” it took about 30 minutes to dispel the skepticism and decide on a course of action. Remember, this was the 90s, forms must be statically and manually coded in HTML. The word “dynamic” was only just getting the attention it deserved.

It worked like a charm. Java is a strictly typed language, and every data type has a logical form control equivalent. Boolean could be a checkbox, strings a text field. We could even inspect the property max size and constrain the form field accordingly! Again, I must remind you that this was the 90s, nowadays this is a no brainer. Back then it was “pie in the sky”.

Our team got a lot of attention even before our modules were going live. I personally got to demo the usage pattern and experienced (or imagined) a collective wow from the group. It’s pretty amazing to change a data-type and see the input control change immediately on the form to accommodate it without any extra code and virtually no static HTML!

As you might imagine things were going to take a turn, and in this case the turn came when the team lead from a different group rejected our request that he provide getters (the J2EE convention for a method that retrieves the value of an internal property/variable) for all of his object properties. His claim? He could only provide getters for non-boolean data types as the standard convention was to use “is” for booleans. I thought it would be simple, satisfy the convention but also provide a getter so that we could accurately inspect the object. No dice. The discussion went all the way up to executive (and non-technical) staff where this guy referred to me and my team as “hacks” for wanting to violate the sacred convention.

Now’s a good time for a break from the techno-babble. I like to drive as fast as I can while still being safe and not damaging my vehicle. I’m sure I’m not the only one. Yet each person has their own interpretation of what exactly is “safe”. Conventions are great, in that they help us to make fairly predictable decisions. Now some people may call speed limits a “rule” and in a certain context they’d be correct. Yet, technically speaking a speed limit is not a “rule” it is more like a convention. If it were a “rule” in a programming sense then roads simply could not support speeds higher than the limit. Cars would never be capable of exceeding the limit. They wouldn’t break, they just couldn’t do it. Yet, as a convention, the possibility exists for stretching it and bending it. Every-so-often a cop comes along and writes you up because your notion didn’t match his. He wins, cause he’s the cop. Yet in programming world, when two equal team leads from different teams clash, the only cops are non-technical management. Back to the story…

The case was run almost like a jury trial. We both brought witnesses from our different teams and laid out the evidence. Long story short, I lost. The phrase “non-standard” being parroted in nearly every sentence coming from their side and at one point the claim was even made that aliasing the functions would break existing deployments. That of course was a blatant lie. Extending an object’s capabilities by adding a method alias really has no such potential. In fact in counter arguments I referred to these supposed bugs as “regression” only to be met with a spew of criticism that the term should be “ripple effect” not “regression”… Things were really getting ugly. So I bailed. Good thing too, the whole project dissolved in a matter of weeks.

Nowadays “convention over configuration” attempts to remove the developer’s brain from the equation by pre-deciding as many things as possible as a matter of convention. Ironically the same brain must then be used to remember all of the said conventions. The fact is, conventions are good. When firmly applied they work wonders at keeping code consistent. When applied strictly they become as impractical as a cop pulling over an ambulance carrying a cardiac arrest victim for speeding.

In training and teaching I’ve always tried to emphasize the need to think for ourselves. Freezing like a deer in the headlights whenever the speedometer hits 56 mph is not just bad, it’s dangerous! I won’t be so dogmatic as to reject all conventions, standards, acronyms, and whatever else someone decides to brand and market. I just warn you, don’t be so dogmatic as to reject thought. It is a necessary component of a successful project.

Scapegoating The Telecommuters

Recently Yahoo CEO Marissa Mayer admitted the potential incompetence of corporate middle-management but – as is usually the case in corporate America – she held the wrong people responsible.

She claimed that telecommuters are “unproductive”. To which I’d ask a question, are they the only ones that are “unproductive”? Did she actually compare telecommuters to cubicle bound bench warmers? What about the social butterflies? I would bet she hasn’t, in fact I would bet this is not even her idea. This will be the consensus of her own middle-management. There’s a certain irony about a technology company that cannot tolerate technologists that prefer less social interaction – technologists that use technology to allow them to focus their efforts on the task at hand. The irony being that the good ones will be the ones that leave.

How many of the people that report directly to her do you think are telecommuters? Not many, so when the rubber meets the road, do you think middle-management will be taking responsibility for having no clue what their direct reports are working on? I can assure you they will not. They will pass the buck.

The recent news comes with some predictable backlash, however there is also a subtext to be analysed. It was mentioned that not only were many “unproductive” but Yahoo didn’t even know some of them were still on the payroll. Talk about supervisor incompetence!

So we get to the point of this post. One thing some in middle-management fear, is exceptionalism. In the type of corporate environment where supervisors “kiss-up” and “blame-down” the only threat to their existence is for their staff to be too productive. How can they “blame” down when the exceptionalism of their staff is well known? The answer is, they cannot. The clock begins ticking on middle-management’s illusion as soon as they cannot blame someone else. Politicians tend to work precisely the same way. In fact exceptionalism at the management level is demonstrated by not behaving this way but rather taking responsibility. Sadly it is the road less traveled.

Those of us who are truly exceptional will experience this consistently. Even in management, there will be a lot of pressure to find someone to blame when things go wrong. Only small organizations, hardly comparable to the average “Corporate America” are capable of tolerating exceptionalism and that only lasts for as long as the organization remains small. For instance, a CEO/Owner (like mine) will perceive little threat from great staff. They will only perceive value. However, once the CEO is not the owner. Instead, they answer to a board of directors, and ownership has been relinquished to stock holders. When there is no clear “owner” the scale tips, and even the CEO will be tempted to “blame down” and “kiss up”.

It takes a very unique individual to fire a “kiss up” but a diva/rock star wizard that is productive and knows it. They are easy to dislike. They don’t tend to be very good at “kissing” they are much better at “kicking” … kicking arse at what they do.

I had a corporate gig once upon a time. I left over my manager’s obsession with me sitting in my absurdly uncomfortable desk chair. The reality, I recovered more revenue for that company in a single day than they paid me the whole time I worked there. Of course my manager didn’t mention that to my CEO. What if she had? Then she would be forced to accept responsibility for her poor communication and often complete ignorance of current projects. When she wasn’t in meetings “kissing up” to corporate leadership, she sat at her desk wasting time in ways that would make a soap opera addict seem productive. To this day the CEO believes that I was just “insubordinate”. That CEO has just as much responsibility. Marissa Mayer has just as much responsibility. She needs to stop looking for yes men, and find the rock star managers who aren’t afraid of rock star staff.

Today, as I type this article and prepare to dive into a wrestling match with some ugly ASP, I have sat on the floor, in two different recliners, and had zero water-cooler conversations about my new tie. Yes, Ms. Mayer, there are unproductive telecommuters. Productivity can be directly related to accountability. There are always people who will take advantage of poor leadership. If it’s your supervisors’ jobs to supervise, then no matter how much “kissing up” they do, it’s your job to hold them accountable for that and not allow them to create scapegoats. You’d have to let them stop kissing up and get back to their jobs. If all of that kissing up is too important to you Ms. Mayer, then you’re part of the problem. Being CEO, if you are ever any “part” of the problem then you are likely the whole problem.

another web tech blog