The R&D Tax Credit Aspects of Automated Coding
Automated-Coding
In a February 2015 interview with
technology news website Re/code, President Obama asserted that
“everybody has got to learn how to code.” Until very
recently, this would be an undisputed affirmative. Fostering
programming skills was considered a logical, necessary step in
the country’s efforts to lead the world in technological
innovation.
Today, however, emerging technologies question this idea.
Code-writing solutions promise to automate the time-consuming,
repetitive task of programming and free up skilled labor to
focus on more groundbreaking work.
The present article discusses the latest trends in automated
coding innovation as well as the R&D tax credit
opportunity available for companies engaged in making the
technology world accessible to those with no programming
skills.
The Research &
Development Tax Credit
Enacted in 1981, the
federal Research and Development (R&D) Tax Credit allows a
credit of up to 13% of eligible spending for new and improved
products and processes. Qualified research must meet the
following four criteria:
- New or improved products,
processes, or software
- Technological in nature
- Elimination of uncertainty
- Process of experimentation
Eligible costs include employee wages, cost of supplies, cost
of testing, contract research expenses, and costs associated
with developing a patent.
On
December 18, 2014 President Obama signed the bill extending
the R&D Tax Credit for the 2014 tax year. As of this
writing, proposed tax extender legislation would extend the
tax credit through December 31, 2016.
Software is Eating the
World
In a recent Bloomberg Businessweek article,
“What is code?” , writer and programmer Paul Ford points to
the difficulties in understanding the world of software
development. Though ubiquitous and an essential part of our
daily lives, coding remains mysterious for most of the
population. As the article brilliantly puts, the first thing
people must understand is that “there’s no magic, no matter
how much it looks like there is. There’s just work to make
things look like magic.”
Mr. Ford refers to International Data Corporation’s research
according to which there are 11 million professional software
developers worldwide, plus 7 million hobbyists. This is a
direct result of the fact that an increasing number of things
are or will be computers, from watches and cameras to toys and
airplanes. In this context, the importance of software cannot
be understated. In the words of American entrepreneur and
software engineer Marc Andreessen, “software is eating the
world.”
By
creating reproducible units of digital execution, known as
software, programmers successfully use machines to satisfy
human needs. Consequently, the exclusive community of those
who master machine language seems to have more power than
ever. As pointed out by Mr. Ford, “if coders don’t run the
world, they run the things that run the world” and this
scenario is not changing any time soon.
In
Mr. Ford’s words, “data management is the problem that
programming is supposed to solve.” Given that we live in a
time of unprecedented data generation, it is safe to say that
there is no way around coding. It is and it will continue to
be everywhere. The issue, however, is how to make programming
more efficient and inclusive.
Code-That-Writes-Code
Software can make virtually anything more
efficient. In the era of automation, we already use software
to make business decisions, monitor our health, and even turn
on the heat at our homes. Ironically, however, one field seems
to lag behind: the business of writing software itself.
Writing code is a repetitious, time-consuming, and rather
inefficient task. In addition to being labor-intensive (it
requires a designer and/or project manager as well as a
developer to work together), it frequently involves beginning
from scratch, even if similar work has already been done in
the past.
Automated coding researcher, Scott Barstow, points out that
many programmers get paid $160-$200 per hour to write pretty
much the same code. In his words, “(…) many companies paying
outside firms or even in-house teams to start from scratch on
apps, which have so much overlap. If you pay a ‘dev house’
typically $75,000-$100,000 or more to build an app, I’d say at
times 50 per cent of the money is wasted because the same
stuff is being written again and again.”
Aiming to change this scenario, innovative computer scientists
are beginning to look at how software can make programming
more efficient. This groundbreaking work could eventually
transform the role of programmers, making them computer
trainers - responsible for “teaching” computers how to write
code instead of doing it themselves.
Experts believe that software writing automation could open
the way to a new era of personalized applications in which
people tell their devices what they want and it immediately
writes the code that fulfills their needs, no programming
background necessary. People will create their own solutions
to their own problems.
Automated Code-Writing
Startups
The creation of code-writing software is an
important step in demystifying the world of technological
innovation. According to a recent Financial Times article, the
work of pioneering companies promises to empower “both the
developer class, who understand the computer language that
powers the invisible workings of the modern world, and the
vast majority of people who do not.”
The following sections present three important features of the
work developed by innovative, automated code-writing startups.
I. Natural Language
The idea is to allow people with no programming knowledge to
explore the world of coding. British startup Bloomsbury Ai’s
mission summarizes it well - “enabling computers to understand
human language so that humans don’t have to understand
computer language.” Created in April 2015, the company is
currently working on a virtual agent that will allow people
with no coding skills to perform complex data analytics in
just a few minutes.
II. Necessities and Intents
Raleigh, North Carolina-based Queue Software is at the
forefront of software-writing automation. The company is
currently working on a code-writing platform capable of
capturing the users’ necessities and intents. The so-called
Dropsource utilizes users’ inputs to determine the best design
and development approach. Based on this information, it
generates commented and editable native source code, allowing
users to accelerate development cycles and focus on other
tasks.
Queue Software started as a development house that built
applications for a wide variety of clients. Upon realizing
that most of its programming efforts were repetitive –
building the same thing over and over – the company understood
how automation could translate into major efficiency gains and
cost reductions. Queue Software estimates it will be able to
automate nearly 90 percent of writing code.
III. Visual Programming
New coding experience. York startup, Bubble, is also engaged
in enabling people with no coding skills to create their own
software. To do so, they developed a visual programming
platform for building web and mobile apps. With a drag and
drop, cloud-based interface, Bubble introduces a new
layer of abstraction on top of programming technologies,
making them completely accessible to people with no prior
The platform has no predetermined templates, so that each
application can be unique. With workflow logic, it offers
video tutorials and click-by-click lessons that help users get
through the creative process.
Though there are no costs for building an application with
Bubble, however the company charges to host it once it is up
and running and the platform is considered a cost-efficient
solution by over 3,500 Bubble users.
Democratizing
Innovation
By helping overcome the dependency on
skilled developers, code-writing automation will boost
innovation and reduce costs. The current shortage of skilled
programmers raises the value of their work and discourages
company loyalty. In addition, it holds back innovation making
it intrinsically dependent on technical expertise.
A
recent TechCrunch article points out how automatic coding can
democratize innovation and accelerate the pace of product
development. It is the first step towards a new paradigm in
which “anyone with a great idea anywhere in the world can
build a billion-dollar tech company.”
Emmanuel Straschnov, co-founder of Bubble, stated that
accessible programming could change the way we do virtually
everything. It could enable farmers to create intelligent
robots, capable of tending crops based on soil conditions;
teachers could use uniquely tailored software to teach each
group of students according to their needs; and even chefs
could create personalized applications that buy fresh food as
orders are placed.
Simply put, the potential for innovation is limitless. People
from various backgrounds become the agents of a technological
revolution in which software tools are designed by their
users, to fulfill their specific needs. One can only imagine
the tremendous economic impact of this new paradigm.
Software Deployment
Automation
Automated code-writing solutions are not
the only way to make software production more efficient.
Initially released in 2013, Docker has gained increasing
attention for making developers lives’ easier. It consists of
an open-source project that automates the deployment of
applications in software containers.
In
simple terms, Docker encapsulates all application dependencies
in a single container. The package carries everything a piece
of software needs to run: code, runtime, system tools, system
libraries, etc. This innovative configuration makes sure
Docker containers run on any computer, any infrastructure, and
any cloud. It also guarantees that the application will always
work as designed locally.
Docker eliminates the need to setup developer environments,
spin up new instances, or make copies of production code to
run locally. It enables users to easily copy their entire live
environment and run it on any new endpoint. This portability
creates a common framework for developers to collaborate and
share applications without worrying about different
environment dependencies.
Docker containers running on a single machine share the same
operating system kernel so they start instantly and make more
efficient use of RAM. However, each container runs as an
isolated process in userspace on the host operating system,
which enables developers to use any language and tooling they
want, without the risk of causing conflicts. Resource
isolation makes Docker architecture significantly faster and
more efficient than virtual machines.
This groundbreaking new paradigm can yield major gains in
efficiency, particularly when it comes to packaging and
distributing software, tasks that can represent up to 90
percent of enterprise IT budgets. Gains in speed are also
remarkable - users on average ship software seven times more
after deploying Docker.
In
April 2015, San Francisco-based Docker, Inc. concluded a $95
million funding round. According to the company, its
increasingly popular service has been downloaded over 300
million times.
In
the words of Docker creator Solomon Hykes, "This is about the
mass commoditization of the production of software. Docker can
have the same impact on software that shipping containers had
on world trade."
Conclusion
The nascent field of automatic programming
promises to someday make coding obsolete. Pioneer companies
are engaged in enabling computers to understand our language
so that everyone has access to the power of creation. This
revolutionary work will democratize the technology world,
allowing those with no technical background to become the
agents of innovation. R&D tax credits are available to
support companies working on automated coding and software
deployment solutions.