Assessing Emerging Software Technologies for Value
As a software consultancy FABNexus periodically identifies and evaluates candidate emerging software technologies as potential new service offerings. Our assessment focuses on a software technology’s engineering attributes as well as its perceived ranking in industry and academic communities. The objective is to ascertain if the software technology should be (a) adopted as a direct service offering, or (b) adopted but delegated to external resources when used in a development project, or (c) considered not within the scope of our consulting practice.
The outcome of the assessment will influence FABNexus future planning and internal resource development efforts, as well as our marketing and business development activities. Aspects of this assessment strategy may have relevancy to other software organizations intending to retool and improve their own development teams.
Candidate emerging technologies are typically selected via focused internet review of pertinent information and and technical literature review. Online courseware is also considered. There may also be technical and business discussions with associates or other available experts who have prior exposure to the emerging software technology. After this initial filtering effort, stronger technology candidates may proceed to an in-house planned pilot evaluation project, and in some cases to an eventual ‘friendly customer’ project.
There are business risks with being an early adopter of an emerging technology, so these risks must be weighed against the impact of late adoption – i.e. missed business opportunities and potentially diminished professional reputation. Certain emerging techologies may receive early and overly exuberant marketing PR, and ultimately fade into obscurity. It is valuable to develop insight and acumen in identifying those new software technologies which have sufficient value and therefore warrant examination and subsequent adoption into one’s practice. Acquiring new software technology skills which ultimately fail to generate sales and ROI is problematic. Less so if the technology expertise is deferred to external resources.
Software technology evolves not only due to organized research efforts, but also as a reaction to evolving business, political and social practices. Software technology is progressing at an increasing pace relative to past decades, with some of the more significant factors being,
- The wide-spread acceptance and support for free and open-source software repositories,
- The world-wide web provides accessible and free information and knowledge-bases,
- University computer science curriculums have matured and standardized in the past several decades,
- Advances in semiconductor processes and manufacturing have led to very affordable and readily available development capable computer systems,
- Advances in telecommunications and data networking infrastructure has brought powerful connectivity solutions to the masses.
From the perspective of a smaller commercial development focused consulting practice, it’s impractical and imprudent to invest in speculative and highly research-oriented technologies. These are generally the domain of large capitalized enterprises, government and private research organizations, as well as universities. While it’s useful to obtain a business level understanding of early stage speculative research, our focus is on those emerging software technologies which have successfully ‘escaped into the wild’ and exhibit credible evidence of value and expanding usage by commercial organizations.
To set context, below are listed some significant software technologies that have somewhat recently achieved a notiable level of commercial traction
- Cloud computing, virtual containerization and micro-services,
- Advanced distributed databases, including block-chain technologies,
- Advanced high-quality mobile phone applications,
- Autonomous and assisted motor vehicle driving applications,
- Deep learning applications such as image search and automated data mining applications,
- Robust automated voice recognition applications, such as Alexa and similar personal assistant devices,
- IoT applications, including various residential electronic automation devices,
Note that some of these software technologies are relatively early in their adoption cycle and will continue to experience significant innovation for the foreseeable future. Most notiably deep learning technologies encompass a relatively broad range of applications and is a field rich in active research.
There are numerous considerations involved when identifying emerging software technologies for potential adoption as a new service offering.
- There should be evidence of some nominal level of industry acceptance and interest. This substantiates value to its current adopters. Another positive indicator is when public technical conferences are being organized which focus on the technology. Each of these indicators offers credence that the technology can generate service business opportunities.
- The technology should be relevant to the business segments serviced by the consulting practice, or considered an appropriate diversification target,
- It is best if the technology is perceived as somewhat interesting by the principals, otherwise lack of motivation could hinder adoption and training efforts.
- There are business risks if the technology is largely applicable to an industry which is challenging for smaller businesses to operate within – examples being aerospace or defense.
- Another potential barrier is when the technology involves heavy capital requirements, such as high cost tooling (proprietary expensive compilers, CAD tools, enterprise project management tools, etc…).
Identifying candidate emerging software technologies is facilitated by
- Periodically search the web for emerging software technologies relevant to one’s existing business sectors. In my case these include new programming languages, operating systems, computer hardware, software tools, etc…
- Periodically review technical journals relevant to my field of practice.
- Periodically survey scheduled technical conferences relevant to my field of practice.
- Occasionally review top-tier university graduate course offerings in computer science, electrical engineering, and data science departments
- Periodically review on-line research surveys related to relevant software practices and tools
- Engage with professional engineering associations in my field of practice
Once candidate emerging software technologies are initially identified, they should be subjected to some credibility filtering which consists of
- A brief fact-finding effort (web search) that identifies key benefits and pitfalls of the technology. This and the following tasks generally only require a few days of effort. Wikipedia is often useful, as are individual or organization blog postings.
- Determine the prevalence and quality of available technical books on the technology. Amazon’s web-site is valuable for this, especially with the ‘look inside’ table of contents feature. It is generally prudent to defer purchasing expensive text books on the new software technology until after it has passed some intial filtering – per the discussion here.
- Determine which organizations are currently or have previously used the technology and then examine any feedback available regarding these efforts.
- Review past conference proceedings, including any online session videos,
- Confirm adequate tooling is available, either free or at a reasonable cost.
- If one has colleagues or acquintances who are familiar with the technology, try to schedule time and have a discussion with them.
Having initially filtered as described above, one is positioned to make a relatively informed decision regarding whether to set aside the technology or proceed to a more extensive evaluation phase. Note that one may choose to set the technology aside, but later should additional promising information arise one can reassess again.
A more in-depth final stage evaluation phase might consist of
- As available collect and read one or more on-line reference articles.
- Consider acquiring one or a few high-quality published text books on the subject. In practice detailed text books will likely be only selectively reviewed to extract key assessment details, rather than read cover to cover. Subsequently these purchased text books are available for review and reference as needed. This obviously depends upon the depth and complexity of the technology under review.
- Plan and implement a modest experimental development effort around the technology, preferably one that can be completed in a relatively brief time-period: ideally no more than a day or two. In my practice I maintain a lab workbench area which facilitates such experiments. The effort should attempt to demonstrate some benefits of the technology and may expose limitations or awkwark features of the technology or its tools.
- If convenient attend a conference on the technology. This can be an excellent opportunity to learn first-hand from early adopters, and to network.
Once a technology has been initially screened and deemed a strong candidate for adoption as a service offering (rather than delegation to an external resource) then the following planning and preparation activities are considered
- Potentially enroll in a university course that covers or utilizes the technology. Courses are often available online, which can be quite convenient while actively operating one’s business.
- Attend associated technology conferences.
- Undertake a complete in-house project that uses the technology, such as implementing some type of utility application or a utility library which provides some useful benefit to the practice – while gaining more detailed expertise using the technology.
- Select and thoughfully review one or more publicly available source code projects using the technology, which will provide insight and a valuable learning exercise concerning many details and usage idioms of the technology.
- Consider offering friendly customer projects that are strong candidates for use of the technology, while providing a negotiated price discount with an understanding that you’re continuing to gain expertise with the technology.
The timing of when to begin promoting a new service offering is an interesting topic. Those who are business and sales focussed will prefer promoting immediately even while the evaluation and adoption process are underway. Engineers are generally more cautious and resist doing so until they have gained extensive experience with the technology. FABNexus leans towards the latter, once the emerging technology’s underpinnings and expertise have largely been integrated within the organization.