Go Deep: The Value of Vertical Knowledge

This blog was originally published on The Var Guy on Aug. 15, 2012.

There are literally thousands of technology service providers and resellers offering basically the same stuff, making it extremely challenging to distinguish their services and really stand out. It’s not for lack of trying. I’ve seen some well-intentioned tactics: funny ads, clever graphics, pages and pages of product information.

But it’s not about working harder. It’s about working differently. And the problem with those creative but often ineffective tactics is they focus on what you, as the reseller, are selling. You need to focus on your customers’ business. Show you have deep vertical knowledge and you know their industry by talking about their pain points. THEN follow through with how your product and service offerings can help them to achieve their goals.

Continue reading “Go Deep: The Value of Vertical Knowledge” »

The Startup Company Heirarchy of Needs

Startup Hierarchy of Needs(With apologies to Abraham Maslow)

One of the most interesting elements of working as a senior executive in a startup company is that such careers are typically punctuated with long periods of time off.  This is particularly true of successful exits, which provide the luxury of time off to think about the next great invention. Some guys go back to school, while others drop from sight for a while. But my personal favorite has always been consulting – it’s a great way to stay engaged, absorb  new technology, and best of all, learn what other startups are working on.

Continue reading “The Startup Company Heirarchy of Needs” »

Is a Bug That No One Perceives Still a Bug?

“The objects of sense exist only when they are perceived; the trees therefore are in the garden [...] no longer than while there is somebody by to perceive them.” – George Berkley, in A Treatise Concerning the Principles of Human Knowledge, 1734

I’ve often wondered, if Berkley was a software engineer instead of philosopher, how he would have viewed the world differently… Continue reading “Is a Bug That No One Perceives Still a Bug?” »

Consider This Before Designing Your UI

In my last blog, I discussed the history of user interface (UI) design technology, going back to my early days as a developer at the time windowed operating systems were gaining popularity. The technology has come a long way. Now with the use of scripted languages like Python, Ruby on Rails, or PHP – plus an increased understanding among developers on what makes for a good user experience – it’s possible to create intuitive and elegant interfaces. But first, developers must consider the frequency of user interaction with a product or service.  Continue reading “Consider This Before Designing Your UI” »

An Engineer’s Perspective on 30 Years of UI Design

I’ve often thought that my perspective on user interfaces has been shaped largely by the span of my career, having started out as developer right around the time windowed operating systems were gaining notoriety. The early windowed operating systems were of course crude cooperative multitasking systems, really little more than GUI shells.

My objections at the time, however, ran along a different line to the UI development technology itself. The earliest UI SDKs were complex libraries that required complete mastery by a capable software engineer. As such, my concerns were twofold: Continue reading “An Engineer’s Perspective on 30 Years of UI Design” »

The Two Facets of Great Datacenter Design

DataceCloud Datacenternters are a source of fascination for me. The startups I worked on early in my career targeted enterprise-class customers, primarily telecommunications and financial services, which counted down time in ”millions of dollars per minute.” I particularly enjoyed the technical challenge of delivering products that would “measure up”. At one point the company I worked with had the distinction of being the only sub-$100M company to successfully ship products to the Japanese telecom company NTT DoCoMo. Continue reading “The Two Facets of Great Datacenter Design” »

The Beauty & Value of Server-Class Equipment

The Beauty and Value of Enterprise-Class Server Hardware from HPThere was a time, very early in my career, where entire hardware platforms were designed from scratch. We designed processor boards and power supplies, bent sheet metal , did all the environmental testing, and secured agency approvals. These products worked very well and were extremely reliable but the development cycles were long and costly, and product costs were very high.

Sometime in the mid-nineties, computer companies such as Sequent and Data General figured out that high performance symmetrical multi-processing computers could indeed be built around 80386 processors and eventually Pentium class processors. Very soon thereafter, Commodity Off The Shelf [COTS] servers became the vehicle of choice for appliance companies.  Continue reading “The Beauty & Value of Server-Class Equipment” »

More Tips for QA Testing in Agile Environments

As the final installment in this series I will continue on the thread of testing methodologies in Agile environments. Testing is perhaps the most important component of software engineering, particularly when we’re releasing on six-week cycles. As discussed in my last blog, integration is continuous with Agile, so we’re spared the bloody integration points that punctuate waterfall releases. Given the heavy reliance on developer testing in Agile, it becomes extremely important that every developer has everything they need relative to test environments. Here is what to start with:

  • Regardless of whether the need is physical hardware, software tools, or a data center replica, plan for such resources up front and bear the cost.
  • Leverage virtual machines wherever possible. Find a QA or test engineer with demonstrated VM skills and invest in a VM management console.
  • Align QA test engineers very closely with the development team. Seat them in the same pod if possible.

Continue reading “More Tips for QA Testing in Agile Environments” »

QA Testing in Agile Environments

My last blog on Agile software development discussed why the Agile release train methodology works well for Axcient. We develop and release on a fixed six-week schedule, with one week planning, four weeks development, and one week QA testing. Agile has various benefits for small and medium-sized businesses (SMBs) – for instance, it enables us to develop first-rate code, quickly complete fixes, and release frequent enhancements. However, it does lead to some challenges on the QA and testing front.

Releasing on a six-week cycle doesn’t leave much time for integration testing – particularly for functionality, which is finalized late in the six-week cycle. This drives the need for continuous integration. As the name implies, continuous integration means that everyone commits to trunk frequently, typically every day. Functionality that is incomplete is still checked in, but disabled. Continue reading “QA Testing in Agile Environments” »

The Agile Advantage

Agile software development has been the subject of much discussion over the past two decades, although I expect the roots of Agile can be traced much further back. Thrust into prominence during the Internet boom of the mid-90s, Agile promised faster development cycles, improved developer morale, and created a means for fast response to changing requirements.

I’ve been in the tech industry long enough to be well aware that most things are over-hyped. However, in my experience, Agile methodologies not only work, but in an organization with the right characteristics, Agile methodologies work like magic. Continue reading “The Agile Advantage” »