“It ain’t what you don’t know that gets you into trouble, it is what you know for sure just ain’t so,” said Mark Twain. Actually, some dude named Josh Billings said it, but continuing to attribute it to Mark Twain is nicely ironic. When it comes to programming, our assumptions give us blind spots. I … continue reading
Just as in “Game of Thrones,” winter is coming, and with it come huge risks to investors and employees of the so-called unicorns. Unicorns are broadly defined as startups worth US$1 billion or more. Once rare and mythical, there are now more than 100 unicorns, according to some estimates. However, once these firms are faced … continue reading
I recently moderated a webinar in which Sam Guckenheimer, a Microsoft product owner and group product planner, discussed their development journey to DevOps. It was a “lessons learned” presentation that any company looking to benefit from DevOps can use. To sum it up: The first decade of doing agile development uncovered some key areas. First, … continue reading
Here we are at the beginning of another new year and already we are hearing rumblings that the smartphones we have are about to become obsolete. Given this happens every year, we are likely taking this in stride. We really shouldn’t, though, because this year phones are likely to make huge moves due to the … continue reading
The way that large enterprises extend existing functionality into mobile apps must change the way they think about and manage the development process. Consider for a minute Yelp’s mobile app and the one your bank has offered you. On the surface, both apps seem to obsess over ease of use and having visually appealing interfaces. … continue reading
How can programmers benefit from the “the year of Neural Nets”? Statistical machine learning techniques have been surging in popularity in academic settings for years, but 2015 was a watershed in terms of industry awareness and deployment. It was not long ago when the term “Deep Neural Networks” seemed about as dubious an explanation as … continue reading
It’s a necessity for people to understand how to operate a good program. However, there are often times when someone might get stuck at a certain point. A person may not know how a form works or how certain menu options function. Context-sensitive software can help people learn how to use software with ease so … continue reading
Every piece of software ships with some defects in it, but major gaps in your testing coverage can be disastrous, and they can occur for a variety of reasons. Part of the problem with a typical root-cause analysis is that it comes after the fact. Perhaps the customer has complained, there’s been a big outage, … continue reading
Talk of software development productivity abounds. New languages, like Dart, promise software developers that they don’t have to choose between productivity and performance for the programs they write. New DevOps tools, like ElectricFlow, promise to accelerate everything to improve developer productivity. Perhaps your team’s productivity is not limited by languages or tools, but rather how … continue reading
The much publicized hacking of Anthem, Sony and Target (the biggest retail hack in U.S. history) has demonstrated that no matter how robust your perimeter security, cyber criminals will gain—or already have gained—access to your network. This is because when protecting against cyber attacks, many companies focus exclusively on endpoint protection and breach prevention. But … continue reading
One of the ways in which the Internet of Things can improve the way we live is through “smart cities” initiatives, the goal of which is to facilitate communication between city officials and citizens via a myriad of devices. But when it comes to controlling devices, “We’re still in the dial-up [era] of things,” according … continue reading
Similar to the financial debt crisis facing many nations, the software industry is facing its own debt crisis caused by the continual development of software without the correct quality-control processes in place. Even industries that were traditionally mechanical are faced with the challenges of developing software like never before, as they strive to stay ahead … continue reading
Code is for communication. Good code is clear code. Clever code is crap. As Abelson and Sussman phrase it in “Structure and Interpretation of Computer Programs,” “Programs must be written for people to read, and only incidentally for machines to execute.” But we rarely open a source code out of pure intellectual curiosity; rather, we … continue reading
“Outsourcing” and “offshoring”—two words that have gotten a bad rap in the software industry—are gradually getting a whole new meaning thanks to an old friend: India. Traditionally, and maybe in your mind now, the software industry perceives Indian offshoring as a poor choice, likely to end in applications that can’t scale, misunderstandings that result in … continue reading