How Continuous Delivery Powers Agile Development Strategies

The software market is changing. In the past, new features came out a year to a year and a half apart. There might have been a patch released to fix glaring issues, but for anything significant customers had to wait.

These days, that isn’t good enough. Companies have more information to work with and the intelligent tools to analyze that data faster. They know within days if there’s something they could be doing better.

The problem is that traditional deployment methods are too slow to take advantage of this knowledge. Having to wait until a project is fully complete to release any of its parts drags down Agile processes, weakening the impact of AI-powered insights.

To get around this, top developers are turning to continuous delivery.

What is Continuous Delivery?

Continuous delivery is a development model where software is continually built, tested, and packaged for release to get it into the hands of users quickly. It requires that engineers share code to a central code repository.

The goal is to always have a deployment-ready product. Multiple pipelines of continuous delivery can be running at the same time to allow for more complex features.

This is different from the closely related practice of continuous deployment, where release happens automatically when code is committed. Continuous delivery requires the additional step of manual approval. Software is moved to a testing or inactive environment after completion but is ready to deploy on approval.

Agile Delivery for Agile Processes

Continuous delivery is right in line with Agile methodologies.The process is dynamic, responsive, and iterative with lots of room to accommodate user feedback. It has a laundry list of benefits, including:

Shorter time to market

A minimum viable product (MVP) gets to market quickly, with updates released as they’re finished. The constant activity keeps the product fresh and exciting. It allows for feedback sooner than would be possible with traditional delivery.

Highly responsive to feedback

When feedback arrives earlier in the development process, developers have more options for improving future releases. They can also tweak new features to maximize their effect while the post-release excitement is still high.

Lower risk

Smaller releases have less disruptive potential if something goes wrong. Plus, with the product always ready for deployment there’s no high-pressure release dates to stress over.

Better product

Another advantage of smaller regular updates is more frequent testing, which translates into fewer bugs. Errors are easier to fix when caught early. There’s also the fact that incorporating feedback earlier leads to an end that’s more closely aligned with market demand.

Higher team satisfaction

Continuous delivery is an easier development process overall, with less stress and more interaction with customers. When developers get fast reactions to their work they have a better idea of exactly what does and doesn’t work for end users.

Getting Around the Limitations

There are some drawbacks to continuous delivery, but these can be minimized with careful planning and strong leadership support.

Problem: Organizational hurdles

Building out a new continuous delivery pipeline can be complex. There may be organizational barriers that make continuous delivery difficult, like assets only one department can access. From a human perspective, some managers resent taking time that could be spent building features on reorganization.

Solution: Make a clear case with employees for the value of continuous delivery and demonstrate executive commitment. Actively foster a culture of collaboration, to include breaking down operational bottlenecks wherever possible to enable richer cross-departmental cooperation.

Problem: Feature branching

Some developers have had trouble with “feature branching”, where they don’t want to merge their current work with the main code because the full feature is too large to finish in one session.

Solution:Build in the ability to turn a feature on or off, like activator genes in DNA. This way engineers can still merge their code, but the feature under development is hidden as a default. It doesn’t go live until intentionally activated.

Problem: Initial Investment

Executives may hesitate to commit the resources necessary to change workflows and build continuous delivery pipelines.

Solution:Compare the cost of restructuring with the savings from lower cost deployments and faster time to market. In many cases the potential benefits will get the team on board.

When Continuous Delivery Doesn’t Fit

Using continuous delivery is harder- even entirely unsuitable- in some cases. It’s very hard to develop monolithic architectures this way. Some companies don’t have the resources to invest in workflow reorganization.

Finally, special care is needed when using continuous delivery in fields with heavy legal or regulatory standards.

Those limitations aside, however, continuous delivery has a lot to offer. It’s a practical way to allow the kind of constant collaboration and iterative development that lies at the heart of Agile development.

In the right hands, it can make the difference between an app that does okay and an app that shoots past the client’s most optimistic goals.

Curious about continuous delivery? Wondering how it would affect your next development project? Set up a free consultation with one of Concepta’s experienced developers to learn more!

Request a Consultation

How API Gateways Enable Agile Applications

api gateway microservices

The growing popularity of microservices has led to some interesting technical challenges for developers.

One of those is how all users access the same microservices regardless of device.

The average digital consumer owns 3.64 connected devices and switches between them throughout the day.

For example, a user may access the same content via a laptop at work and a smartphone while travelling.

An application that splits its components into microservices needs to provide consistent performance across devices.

To do that, developers funnel incoming traffic through a single “point of entry”: an API gateway.

Microservice-Based Applications

Monolithic applications may be faster to build, but otherwise microservice architecture offers a lot of advantages.

Rather than designing one large application with everything in one data store, components of the application are divided into self-contained web services that communicate through HTTP or REST.

Developers tend to prefer to build large applications using microservices.

They’re simpler to test and refine. Also, since individual components can be scaled individually scaling is much easier.

Challenges of a Microservices Architecture

While it is an incredibly functional architecture style for building scalable apps, using microservices does add a level of complexity.

The client has to fetch data from several different services, which requires knowing where those services are in the first place.

The central problem is the one mentioned earlier, that users come to the application through a wide variety of devices.

Network performance varies widely due to device capabilities and connection type.

Each device needs a difference amount and style of data.

A desktop would get more details on a product landing page than a smartphone.

Also, some services may use protocols that aren’t usually accessible by all clients.

Consider an enterprise app that technicians use on service calls.

The app needs to access customer records, but that system could have a non-mobile friendly interface.

Benefits of an API gateway

API gateways solve most of these problems.

An API gateway is a “wrapper” that provides a single point of access to all clients.

It shouldn’t be confused with API management; the gateway can incorporate a management layer but it isn’t necessary.

The most obvious benefit of API gateways is that they insulate clients from internal partitioning.

Upon reaching the gateway, each client is met with the right API.

Clients don’t need to know the location every every microservice, and they can retrieve data from multiple microservices in one round trip.

If engineers need to rearrange or make changes to the microservices they can do so without affecting how clients interact with the app.

Microservices are popular because they allow developers to use their preferred technology or experiment with new technology.

API Gateways are what make that possible.

Engineers use whatever whatever protocols work best internally, then the gateway translates the client-facing web-friendly API to match internal protocols.

API gateways enable microservices to be more simple and focused, as well.

They handle common concerns like access control enforcement, so individual microservices are less complex.

Limitations of API Gateways

API gateways are necessary for microservice architecture, but they do come with some limitations.

They need expert configuration for scalable applications, and (while users of most devices won’t notice) there’s a slight increase in response time due to the extra network hop.

Greater overall structural complexity can lead to increased development time.

There are more moving pieces involved, meaning additional points of failure.

This is generally considered a good tradeoff for later scalability and performance.

Future-focused Apps

API gateways enable agile, future-focused applications.

Scalability and flexibility are core values of strong digital strategy; using microservices leads to apps that are flexible enough to meet the ever-changing needs of modern enterprise.

Are you having trouble getting your field techs and the office on the same digital page? Concepta has experience building mobile fleet management and field service solutions that will save your leaders time and resources. Contact us for a free consultation!


Request a Consultation

Best Software Development Trends of 2017

software development trends

Developers have been pushing two goals this year: efficiency and customization.

The most popular trends have been those that either streamline the development cycle or offer features tailored to the changing needs of end users.

Mobile technology is beginning to take center stage for developers (you can read about our top mobile trends here) but there are some exciting trends brewing in the general software community, as well.

Here’s a closer look at the ones drawing the most attention:

Chatbots

Consumers have heavy expectations of customer service.

When contacting a company via the in-site messaging service or social media, nearly half expect a response within an hour.

A third want a reply in thirty minutes.

Rather than maintain a twenty-four-hour customer service staff, companies are adopting chatbots and chatbot-enhanced technology to keep customers happy after hours.

Chatbots employ Natural Language Processing (NLP) to let programs understand free form questions and reply in natural speech patterns.

Gartner predicts that by 2020 customers will manage 85% of their brand interactions without speaking to a human.

Macy’s has programmed their On Call feature to provide some more custom services: personalized product recommendations, directions to items within a store, and responses to common shopping questions.

Platform as a Service (PaaS)

PaaS is a cloud-based solution for developing, operating, and managing applications.

PaaS providers supply both hardware and software services to developers, who can log in via a web browser and begin building with a minimum of setup.

Some experts predicted it would fizzle out due to concerns over security risks and lack of developer control, but it’s been enjoying a resurgence in popularity in 2017.

Open Source

Open source databases like MySQL and MongoDB have long been popular because of the lower price point.

Now software built on other open source technologies is increasingly in demand for other reasons: scalability and innovation.

The exploding collection of available plug-ins lets companies create software that meets their exact needs.

Agile

With technology changing at such a rapid pace, agile methodologies are more important than ever.

Agile emphasizes responding to change on an ongoing basis, listening to client feedback, and delivering many small portions of a project as they’re finished rather than holding everything until the end.

This year Agile is being praised for one byproduct of iterative development: security.

Bugs which might cause vulnerabilities in the finished software can be fixed after every mini-deliverable instead of waiting for the end.

Doing so keeps the development timeline short while improving the quality of the final product.

Automation

Automation has been edging onto the development scene for a while.

Automated actions are often confused for intelligent software, though unlike AI programs automation doesn’t use past experience to refine its algorithms.

It involves maintaining a list of processes which are triggered by specific conditions.

Some common processes are spam filtering, offering to resolve an error message rather than simply alert to the error, sorting new customers, and sending follow-up emails after a comment or complaint.

Though it lacks the responsive nature of a chatbot, automation does give end users an additional suite of partially customizable features.

Artificial Intelligence/Machine Learning

With cloud computing and storage becoming widely affordable, experimenting with artificial intelligence has never been easier.

This year the focus is on using AI to improve the customer experience.

Consumers want personal service around the clock, and AI is a cost-effective way to provide that service regardless of time zone.

Look for AI and ML-powered customer-facing features like online assistants, website design tools, facial recognition, and recommendation engines.

Data science

Data is being created at a faster rate than ever before, and companies are looking for solutions to make sense of their data.

Those solutions may be custom software, embedded analytics, testing procedures, or simple process changes.

Whatever the form, data science is becoming an essential part of software development.

Experts predict the drive for customization will continue through the end of the year and beyond, so we can expect more emphasis on features like chatbots, intelligent programs, and automation in the coming months.

Read about more industry trends from our blog. Here are the best web development trends and best mobile app development trends of 2017.

Can these trends help modernize your digital presence? Drop us a line to ask about your own software development needs.

Request a Consultation