1. Emerging Trends in Software
Development
By Nevill Nguyen – CEO & Solution Architect
August 2019
nevill.nguyen@powergatesoftware.com
2. Microservices
Microservices architecture (MSA) is a distributed network architecture that enables horizontally
scaling and network redundancy.
A microservice implementation will break an application in to separate deployments that
correspond to business needs. Some examples of these business needs are: payments,
authentication, and analytics.
The migration from monolithic software stacks to serverless microservices is the path many
software companies are taking to better isolate and compartmentalize software development.
Breaking apart code in this manner allows small dedicated teams to focus exclusively on
specific areas with minimal impact on the whole. Many large companies have already achieved
this. The rest of us should follow. - Chris Kirby, Retired
3. Serverless-functions as a service
A developer can write and upload a simple code function that takes input and
returns output.
The serverless platform will then expose this code function on a URL that can be
accessed to utilize the function.
This new process greatly simplifies the development-to-production release
pipeline.
4. Containerization
Containerization is an emerging trend that automates
hosting and deployment responsibilities in DevOps
Before containerization gained adoption developers
would have no guarantees that their application
would behave the same on different machines.
Moving applications around between cloud machines or
hosting providers was a risky and tedious move.
Teams can now package complete system-level
dependency stacks into a portable container which
can then be initialized on any other machine.
In many ways, I think this may already be true for a lot of
organizations, but I think this is just the beginning of a
widening trend. The Docker and Kubernetes
ecosystem definitely help with moving forward as
well, but I expect that within the next few years it will
be more uncommon to see teams not using
containers. - Zach Bruhnke, Halleman Bradley
5. Continuous integration and continuous delivery
CI/CD puts in place guardrails that allow developers to push new code and features that
then automatically deploy to production environments
Before CI/CD gained popularity merging code and deploying were a much more
cumbersome process.
Deployments were risky affairs where teams would manually copy files between servers
and the network could fail or desync a deploy across a cluster.
The guardrails that enable CI/CD are version control systems, automated tests, and
monitoring tools.
6. Multiplatform UI Development
Many companies end up needing frontends for
web, iOS and Android. Doing these three
different ways is ineffectual. Several
solutions exist to address the last two
(e.g., Flutter, React Native, Xamarin), but
few handle all three in a reasonably
successful fashion. On the back end,
serverless solutions will be popular for
certain use cases. Containers and
microservices will proliferate. - Manuel
Vellon, Level 11
7. Feature flagging or feature toggling
Feature flagging reduces the risk for deployments
by allowing safe validation of features in a
production environment before exposing them
live to all live customers
Once a feature flag rollout has been successfully,
privately, validated it can be rapidly rolled out
and change live customer experience.
8. Functional programming – formally verified software
Functional languages can provide these higher
quality offerings with features that lower
the cognitive overhead of developers
interacting and maintaining a code base.
Organizations are finding that higher quality,
well designed, user empathetic programing
languages can lay a foundation for higher
quality, well designed user empathetic
business product output.
This leads to less bugs and higher quality
software.
Discussions like maybe Object Oriented
Programming was a mistake?
9. Outcome-driven development
Outcome driven development (OOD) is a
workflow process that encourages rapid,
lightweight software development.
ODD defines goals instead of tasks and assigns
ownership of those goals to a team which
will be responsible for meeting that goal and
implementing.
If you’ve ever experienced a team planning
meeting where the general consensus was
“why are we building this?” It might be time
to try outcome-driven development.
10. Increased Third-Party API Integrations
A rising trend of customers choosing to use external API instead of custom development. It
takes less time for development and helps save money at the beginning. In a few years,
developers will be working mostly on integration between different services instead of
developing a custom software solution
11. Native Analytics Modules
More and more products will include business
intelligence and analytics modules natively
in their solutions, reflecting the need to
drive more value from the data these
systems generate. Involving development
to include natural language generation
(NLG) in these BI and analytics modules will
become a fundamental requirement as
well. - Marc Zionts, Automated Insights
12. Blockchain
Blockchain technology holds incredible potential for many industries, especially
when used in tandem with internet-of-things (IoT) data, artificial intelligence (AI)
and fog computing. Software developers will be focused on building disruptive,
new solutions that leverage blockchain ledgers such as solutions to enable
micropayments and smart contracts or end counterfeiting in the supply chain. -
Maciej Kranz, Cisco Systems
13. AI-First Software Development
AI and machine learning-driven product
features are already an integrated
part of software development for e-
commerce, movie watching and social
media. Now AI-first software, from
conversational virtual assistants to
self-driving technologies, are
becoming mainstream in software
development. - Mitul Tiwari, Passage
AI
14. Cybersecurity - Earlier And More Frequent Security
Testing
The inevitable evolution of DevOps will be to include
security testing earlier and at more points in the
development pipeline. Security testing is
currently a bottleneck for delivery, and the cost
is highest to remediate code when done late in
the cycle. Providing developers with real-time
feedback on the security of the code they are
writing is the ultimate goal to avoid delays and
expenses. - Travis Greene, Micro Focus
According to a research by Alert Logic, 18% of the
organizations reported at least one security
incident in the last one year. Protecting data loss
and leakage (67%) is the biggest concern for
cybersecurity professionals, followed by threats
to data privacy (61%) and breaches of
confidentiality (53%).
15. Progressive Web Apps
The websites or web pages that look and
act like native mobile apps or
conventional apps are known as
progressive web apps (PWAs). The
PWAs provide benefits of mobile
experience along with the features of
browser technology.
Gartner had counted PWAs as a software
development trend in 2017 and it is
likely to continue as a trend in 2019 as
these apps are less complex to
develop and maintain as compared to
conventional mobile apps.
16. THANK-YOU!
By Nevill Nguyen – CEO & Solution Architect
nevill.nguyen@powergatesoftware.com
https://powergatesoftware.com/