VMblog
recently sat down with Sreedhar Veeramachaneni, founder and CEO of System Soft
Technologies, to discuss, as we start a new year, how the shortfall in
application development skills can be addressed, and why enterprises are
increasingly choosing to outsource their application development requirements.
VMblog: Which
application development skills are in short supply, and why?
Sreedhar Veeramachaneni: Application
development used to be based on a technology stack closely aligned to a single
device and an associated user experience. Also, applications were fairly data-static,
meaning that specific data inputs and outputs were well defined and
consistent.
But
today's applications are quite different as they must adapt to and support user
experiences that span a diverse variety of devices and interfaces, for example
browser, mobile, wearables, chat, text to name a few. Moreover, they must work
with and complement artificial intelligence systems - which are often
cloud-based - and which "learn" and improve functionality and insights.
So
unfortunately, architecture skills will be in short supply to create the
application development environments that allow code to be shared across
different modalities, leverage cloud-based AI and integrate with disparate and
evolving data sources.
For
good reason, software development is undertaken to support a user journey and
deliver an innovative user experience. What is happening in the world of
digital transformation is morphing to expand the expectations of users who may
be consumers, prospects, employees or business partners, and expectations are sky-high.
There
is another fundamental difference between the applications of yesterday and
those of today: a wide range of user
consumption variability that is difficult to predict and respond to. Web views,
mobile app downloads, content-heavy user experiences are all very difficult to
predict as regards capacity and consumption of application resources. And so,
application development skills and the corresponding technology stack must
align to, and support, operational functions that are typically the province of
non-programmers, such as containers, micro-segmentation, autoscaling, and load
balancing.
Therefore,
application development skills must adapt to and support a more diverse and
complex set of the objectives that include user experience (UX) and user
interface (UI), artificial intelligence, big data, containers, load balancing
and infrastructure scaling. The net result is an explosion in the application
development outsourcing market, as enterprises seek to remain competitive even
though they may not have the skillset or budget to develop the apps they need
to continue being so.
VMblog: But isn't
it too risky to outsource application development rather than continue to keep
it in-house?
Veeramachaneni: That
truly depends on the integrity and partner philosophy of who the outsource
vendor is. A good line of questioning for an outsource vendor should focus on
their experience and process model for how they enable knowledge transfer to
their clients.
The
best vendors actively design an exit strategy into their project approach from
day one. They are vigilant about ensuring that the work outsourced and
knowledge gained is actively communicated back to the client for subsequent
takeover.
Technology
employed via application development outsourcing is often beyond in-house
capabilities and is reliant on tools, techniques and architecture that is
beyond the "sweet spot" of internal resources. In some cases, this capability
is exactly what the customer is buying.
However,
today's systems are often built with an agile methodology where functional
iteration during software development is the norm, not the exception. So, it's
imperative that knowledge management processes be "baked into" the work plan,
communications strategy and relationship structure between outsourced vendor
and customers.
Customers
may want their vendors to own the design, build and run the functions, but most
contracts are not (and should not be) signed in perpetuity. Options should always
exist for transfer of ownership and responsibility from vendor to customer.
Regardless of accountability for design, build and run, it is the
responsibility of the customer (not the vendor) to set the tone and demand
knowledge transfer, collaboration, documentation and transparency. In so doing,
the risks are reduced, and the options are expanded.
VMblog: What
budgets are companies setting aside to meet their ADaaS demands?
Veeramachaneni: They
aren't setting aside a specific and fixed budget. That said, it may be part of
the budgeting process to allocate a certain percentage of budget to buy outsourced
development services, as driven by dynamic factors impacting the business and
the IT strategy. A better question may be: "what are the variables and criteria
that impact the budgets for outsourced application development, and, there are
many.
First,
there's technology strategy and architecture evolution, which provides the
tools and platforms that companies use to build the application and data
services required to meet employee and customer demands, but which have always
been fluid. But never so much as today. New technologies, platforms,
cloud-based delivery models of infrastructure, software and data are allowing
companies to forge new frontiers of innovation and better meet the demands of
new business models and fluid geographic expansion.
Digital
marketing technology, employee collaboration, personalization, artificial
intelligence, IoT and robotic process automation have moved from "interesting"
to "critical" to many organizations. The adoption of these new technologies
correlates to the pace of change for the business. The greater the pace of
change, then the greater the allocation of budget to outsourced application
development.
Then,
there's consumption variability - where the end-user consumption of services
from prospects, customers and employees that spawn from innovative digital
business strategies is very difficult to predict. New business models, customer
support services and global fluidity make it very difficult for IT leadership
to predict and budget for infrastructure, application development services and
network. One way to handle this variability is to employ a "scale and rent"
approach, which aligns well with outsourced development.
Finally,
there's corporate finance strategy - where some industries prefer
capitalization (e.g., utilities) to pay for application development services,
while some prefer to pay with operating expenses (e.g., retail). Outsourced
application development is usually priced in a way with those that prefer
operating expenses, and moreover, using an outsourced model enables greater
flexibility to align operating expenses with revenue. Effectively, this means
that more customers mean more need for outsourced development, which in turn
means more revenue to pay for it.
VMblog: Can outsourced
application development help drive DevOps?
Veeramachaneni: For
sure, and the positive business results of this are not uncoincidentally
similar to DevOps, specifically the:
- Ability to deliver more reliable code
- Faster time to design, build and deploy
- Agility to meet dynamic business demands
- Resiliency and scalability
- Better user experience due to higher application
availability and stability
- Outsourced resources can be scaled to drive more rapid
and higher frequency code releases.
Customers
should look for outsourced vendors who have deep experience with DevOps and
look for the engagement and/or relationship construct to include knowledge
transfer in association with specific project requirements.
DevOps
configuration needs should be defined as a complement to traditional business
and technical requirements and could include provisioning regulations, database
instances, network addressing and the arrangement of software instances. Either
define the DevOps tool chain skills required by the vendor, or look to the
ADaaS relationship to support the strategy and design of DevOps, including
definition of deployment processes independently from development processes.
VMblog: Why is the
‘no-code/low-code' development growing, and what's driving it?
Veeramachaneni: Providing
non-programmers with a visually Integrated Development Environment (IDE) might
be viewed by IT leadership as scary. But, there is immense business value and
added agility that arises when less technical resources can use drag-and-drop
application components, connect them together and create applications with less
or no code.
No-code/low-code
isn't just about moving work from one part of an organization to another. There
is substantial productivity, enhanced agility and time savings that arise as
well. No-code/low-code tools and environments will not replace the need for
programmers. In fact, demands will increase for programmers to build code and
also for non-programmers to use no-code/low-code too. And, the pace of digital
transformation, the need to integrate applications and data, more complex
architectures and the fluid nature of competition will drive demand for both.
They
are not competitive platforms. They are complementary. Even with all that said,
there is a more supply-demand and macro reason why there will be no-code /
low-code growth. The U.S. Bureau of Labor Statistics expects software
development jobs to grow by 24% through 2026. The gap between the demand for
programmers and supply is expected to exceed 1.5 million jobs by 2020.
Therefore,
the need to employ less-technical approaches to build software where
programmers are complementary and not critical to the development is critical
to bridge the labor gap. But most importantly, no-code/low-code is being
employed to meet the rigors and fluid nature of organizational competitiveness,
so growth will continue and expand.
VMblog: What's the biggest change
we expect to see in application development outsourcing in 2020?
Veeramachaneni: Greater adoption and increased vendor integration will
be the biggest changes to positively impact the growth of application
development into the future. Similar to - and enhanced by - the cloud, it's
quickly moving from a "suspect" to "validated" as a means for organizations to
build and deploy technology solutions at the speed required by competitive
forces. Many companies have always looked at external resources to complement
organic capabilities for specific projects, strategic direction and staff
augmentation. That trend will only increase as more and new technology
challenges arise which drive organizations to look for external capability or
capacity.
Increased vendor integration will arise as a result of
the acceptance of cloud services as a seamless extension of internal
infrastructure and capability. Back in the day, there was a mindset that
technology (infrastructure, applications, data and people) was either
on-premises or it was not. Perhaps there
were VPN and networked connections from internal systems to shared services,
but the world of IT was basically binary, meaning that everything was defined
as internal or not. But now the ubiquity of the cloud has changed all that.
VMblog: Is it possible for application
development outsourcing to be a lever to transform business operations and/or
results?
Veeramachaneni: For sure. The bigger the ship, the more difficult it
is to change direction, of course, but the pace of change with technology is
unrelenting. New tools and platforms are delivered, improved and commercialized
for broad adoption every day. Many companies look to ADaaS as a means of
addressing skills gaps and capacity limitations to select, design and integrate
technology that can transform the business.
Vendors that provide outsourced application
development services may have numerous project credentials and a scaled team of
resources with experience on these new technologies. As such, risks can be
reduced by leveraging people who have "been there and done that". Furthermore,
these vendors can (and should) focus on knowledge transfer so that the ability
of organic resources to also deliver transformative business capabilities grows
over time.
VMblog: How can technologists and
the business leaders they support prepare for and leverage outsourced
application development?
Veeramachaneni: Preparation is not a difficult challenge if working
with the right vendor because the services they provide, and the delivery model
is based on a seamless and collaborative approach. It should be unimportant
that some resources (people, tools, infrastructure, etc.) aren't on-site.
Moreover, tools should be employed to ensure that collaboration occurs with the
frequency to guarantee transparency of delivery and knowledge transfer.
Leveraging outsourced application development should
be a byproduct of two potential requirements:
capacity and capability. Simply put, these are the primary reasons that these
services may be a viable "solution" for most organizations. Capacity gaps may
exist due to spikes in demand for technology services, which could arise due to
global expansion, business growth, acquisition or strategic initiatives that
eclipse internal availability of resources.
On the other hand, capability gaps often arise as new
technology and platforms become critical to execute business transformation
initiatives, yet internal knowledge and abilities are limited. Whether driven by gaps in capability or capacity,
outsourcing does provide the ability to enable technology and business
transformation.
VMblog: How does cloud impact application
development outsourcing?
Veeramachaneni: Cloud enables application development outsourcing
along two dimensions. First, the stability and acceptance of cloud services has
strengthened organizational acceptance that cloud-based services can be levered
and scaled with a low risk profile and viewed as a seamless and secure
extension of internal resources.
Second, the cloud provides a palette of technology and
tools that are often greater than those maintained internally. Outsourced providers
often maintain capabilities to exploit the cloud-based services that extend
beyond an organizational knowledge base. As long as those cloud-based services
are on the strategic roadmap and knowledge management is provided, then the
cloud coupled with outsourced development allow organizations to engage with
more transformational technology that delivers more innovative business
services.
##