Blog Post

How serverless computing benefits businesses

  • By Akhlaq Choudhury
  • 12 Mar, 2019

You may have heard the term ‘serverless computing’, but do you actually know what it means? And, more importantly, do you know whether it’s something you should pay attention to in your business? This week we’re taking a closer look at the latest cloud trend and how it’s making ripples across the world, for big brands as well as small.

What is Serverless Computing?

The word ‘serverless’ may seem slightly misleading. In fact, serverless computing still uses servers – but they’re operating behind the scenes. It is an infrastructure that builds on the strength of many users sharing the same utilities and deploying code more efficiently, with all server-side operations being run as a managed service. Many people now use the terms serverless computing and FaaS (Function As A Service) interchangeably. While traditional software development is about creating and executing a series of functions which make up the operations of an application, serverless computing can split out the entire application into separate components which can connect to each other at any scale. These all run alongside each other in functional containers, which can all be replicated and scaled rapidly when needed, based on real-time demand. Serverless computing is offered by many cloud providers as a managed service, where the provider handles all the tasks around setup, capacity planning, server management and more.

The Benefits of Going Serverless

Many world-leading brands like Uber, Airbnb and Coca-Cola have applied serverless infrastructure to their services, in order to meet fluctuating, instant demand. But many smaller, up-and-coming apps and services have been able to benefit from the same technology to compete on the global scene. Let’s take a look at the main benefits that are driving the take-up of serverless computing.

  • Reduced Costs
    The cost-savings of serverless computing is two-fold. First of all, you are able to benefit from using a shared infrastructure, with the cost distributed across a large number of users. Secondly, you save on labour costs as you don’t need to have your own staff develop, manage and monitor your applications.
  • Agility and Time to Market
    For many organisations, it is crucial to be able to experiment and innovate. With the help of serverless computing, it’s possible to move very quickly from conceptual idea to first deployment – at a low cost. The nature of the shared functional infrastructure means that you can piece together the right elements of your application in a matter of hours rather than weeks or months.
  • Scalability
    In serverless computing, you only pay for the computing resources you need. This – in combination with the ability to scale rapidly based on instant requirements – makes it an attractive model for organisations that want to scale up at a predictable cost. When scaling down, the model is also cost-effective, as you’re not stuck with expensive equipment operating at low capacity.
  • Reduced energy footprint
    When managing servers manually, many organisations tend to over-provision in case of potential increased demand. This leads to inefficiencies that add up to a huge impact on energy consumption globally. But when we allow a serverless provider to manage computing capacity, we can be confident that we only get the capacity we need at the time we need it.
  • Improved user experience
    Slow operations and lag are among the biggest reasons for users abandoning an application, and network latency plays a big part in causing these issues. However, a serverless provider offers a huge range of regional points of presence that help to speed up performance by performing functions nearer to the user.

A serverless future

Here at DCSL, we are fans of all and any technological progress that allows us and our customers to care less about hardware and more about software. Serverless computing is still in its infancy but we’re confident that the future will bring many more levels of efficiency to the way we share the costs and maximise the resources of the world’s computing power.

By Akhlaq Choudhury 03 Apr, 2019

As a small business, it can be difficult to stand out in a competitive industry. But more and more small businesses are discovering how various   bespoke software solutions   can help them not only work more efficiently and be more profitable, but also reach more clients faster than ever.

In this blog post we’re taking a closer look at the competitive impact of having access to great, tailored business software at your fingertips.

The power of bespoke software

Here at DCSL, we’ve had the benefit and pleasure of helping businesses of all types and sizes to solve problems and become more successful with the help of software. There is really no limit to what software can do for an organisation, but most of the solutions we see typically fall into one of six broad categories:

1. Operations and Management

Business management software and   ERP systems   often hold the key to any organisation’s ability to grow successfully. Without a structured model for planning workflows and optimising resources, it can be very difficult to keep track of everything that goes on in the business on a daily basis. However, a powerful business management system will allow the leadership team to create and follow a structure for every department and ensure all areas of the business are performing well.

2. Retail and Commercial

Whether you are an online merchant or own a brick-and-mortar outlet, you will benefit hugely from the support of good software infrastructure. Payment systems, stock management, shipping, discounts, advertising and marketing – all these functions and more can be made highly efficient and profitable by using bespoke features. Most off-the-shelf retail systems are difficult to scale and will never fit your unique needs seamlessly, which is why many businesses now choose to have their own software custom built to work perfectly in line with their processes ( gak ).

3. Relationships and Communications

There are plenty of great ready-made CRM and marketing systems available, but they often come with a hefty price tag in the form of monthly or annual licence fees. The key benefit of   bespoke CRM software   is that is can allow you to individually shape all the functionality for email marketing, social media automation, publishing tools, user portals and more. This allows you to strip out any unnecessary functionality and instead add the specific features that you and your customers will value.

4. Intelligence and Analytics

As businesses, we often generate a large amount of data that never actually gets used for evaluation or forecasting. A bespoke software system can allow the organisation to   capture, analyse and report   on any type or combination of information. With the help of highly specific user data, statistics and performance measurements, you can create reports that support smart decision making and strategy development.

5. Internet of Things

One area of fast growth at the moment is the   Internet of Things (IoT) , which is the concept of using wireless communications to collect and send data from and to devices anywhere. By using bespoke software, a business can create very specific mechanisms for   communicating with machines   like manufacturing tools, robots, surveillance equipment, thermostats – even vehicles. This opens up a whole new world of smart operations, where software allows machines to operate “intelligently” based on a number of patterns or criteria. Internet of Things can make a huge difference to the bottom line when used to optimise resources and make the most of hardware investments.

6. Mobile apps

For many organisations a mobile app is just as useful as a desktop one, if not more. Most of us tend to carry out work and communications while we are on the move, and we often want to have the ability to access the same systems wherever we are. Field workers often rely on mobile apps to complete tasks, log their work and report issues, but there are no out-of-the box mobile app solutions that can be customised enough to suit every organisation. Creating a   bespoke mobile app   is by far the best way to create a tool that gets the job done and that users love.

The economy of bespoke software

A monthly software licence fee for a ready-made, off-the-shelf solution may seem attractive for a cash-strapped business. However, using a general software solution means you can’t have the technology designed around your processes. Instead   you   need to adapt   your processes   to the software, which can also cost money to do.

For many businesses, the initial investment in a bespoke software solution offers better value in the long term, thanks to the ability to scale and tailor the system whenever you want. (Also, you never risk getting unexpected end-of-life announcements!)

By Akhlaq Choudhury 18 Feb, 2019

In the age of  GDPR , a data breach may seem like your worst nightmare and one you’d rather not think about. But if you do find yourself in a position where a data breach has occurred, it’s important to have a clear plan of action for dealing with it. In this blog post, we’re taking a look at what the most important steps are for dealing with a data breach and limiting any potential damage to the business.

What constitutes a data breach?

A data breach is what we typically refer to as a security incident where confidential or sensitive data is exposed or released to a person or organisation who is not authorised to see it. Of course, a data breach is not always malicious. It can simply be a result of an accidental release of information. However, the legal implications can be just as severe regardless of whether the breach is caused by malware, a targeted attack, a lost laptop or a stray email.

The steps to take after a breach

So what do you do once the unimaginable happens? In an ideal world, your business should have a detailed incident response plan that you can immediately launch and follow. But whether or not you have access to a plan, we want to share some of the key elements that should be part of an overall checklist for taking action to deal with the aftermath of a data breach.

  • Contain the breach
    Once you’ve discovered the breach, you should work to immediately identify the compromised system and fix any data leaks. It’s important to ensure that your critical systems are out of danger. Now is also the time to change passwords across the organisation and enable multi-factor authentication wherever possible.
  • Do a damage assessment
    Before moving on, you should assess the extent of the damage. You may want to set up a team of internal or external resources to evaluate the situation, putting an action plan in place to resolve the issue.
  • Communicate
    Communication is key after a breach. Once you have a clear view of the incident, you should notify anyone affected by it – potential victims, employees, and other stakeholders. If it’s a major incident, you should also communicate proactively to relevant media. Don’t wait – and don’t allow rumours to take over. Be prepared with statements and answers to questions. State future action and prevention going forward.
  • Do a security audit
    To understand the root cause and issues of the data breach, you may want to consider bringing in a third-party specialist – different to any existing IT security partners – to allow you to get an unbiased reflection of the incident without covering anything up. This would be someone who can uncover exactly what data has been compromised, identify the vulnerabilities that caused the breach, and help you find remedies to prevent the issue from happening again.
  • Make a recovery plan
    Unfortunately, many organisations don’t actively work to improve their data protection strategies until after an incident has occurred. But by having a solid procedure for managing a data breach from day one, the business can save a great deal of money and time in sanitising the incident.
    Ensure that you have a recovery plan that allows the business to rapidly go back to normal operation while learning valuable lessons from what’s happened. According to security software company Avecto, a company should consider a  multi-layered strategy  that includes things like patching, application whitelisting and privilege management, limiting the pathways for malware to obtain sensitive data.
  • Notify the ICO
    The Information Commissioner’s Office require you to report certain data breaches to them when they involve ‘the accidental or unlawful destruction, loss, alteration, unauthorised disclosure of, or access to, personal data’. Not all breaches qualify for letting the ICO know, but many do. Once a data breach has taken place, it’s important to quickly establish whether the ICO needs to be notified. If unsure, use the ICO’s  self-assessment tool.

Moving on as a business

A data breach – when handled well – does not need to mean complete disaster for an organisation. It’s important to start focusing on the future as soon as possible and use any lessons from the incident to build a stronger, safer data security policy going forward. And remember: You don’t have to do it alone! Find a solid, dependable  IT security partner  who can give you all the confidence you need.


By Akhlaq Choudhury 04 Jan, 2019

All industries are being impacted by Artificial Intelligence (AI) and software development is no exception. Every part of the   software development process   can benefit from the input of AI, from software design and testing to decision-making and automated code generation. Today, many AI applications focus on improving existing processes and development tools. However,   research firm Forrester predicts   that AI will eventually completely re-write the way that the sector works, as it starts to seep into every part of the software lifecycle – improving processes that are traditionally inefficient and prone to mistakes.

Redefining how software development works

Historically, developing a computer program would require a developer specifying what they wish the system to do, and then hand-engineering all desired features. However, there are many tasks that are too complex to code using traditional rules and algorithms. As an example, it would be virtually impossible to hand-engineer software to correctly identify photos of dogs. There are simply too many variables, such as fur colour, size, tail length, ear shape and much more. That’s where AI techniques like machine learning and deep learning can help.

Machine learning in action

In a recent example, developers succeeded in teaching a computer to differentiate between   a chihuahua and a muffin   using AI. With machine learning, a computer isn’t given rules on how to make decisions and complete certain actions. Instead there is a set of curated, tailored data that teaches the machine what to do. Positive feedback can reinforce certain actions, whilst negative feedback will stop other actions from recurring. In many ways, this is how the recommendations work on Amazon and Spotify. A customer buying a recommended product or adding a song to their playlist acts as positive reinforcement for the machine-learning algorithms behind each platform.

The future of programming

We expect to see software development increasingly shifting towards a machine-learning model, where programmers will rely less on traditional programming methods. The software developers of tomorrow will most likely move away from writing code to instead doing more scientific tasks like collecting, processing and analysing data for an AI engine to use. As author and Google research engineer   Pete Warden predicts : “In ten years, most software jobs won’t involve programming.”

Current uses of AI in software

Before this AI-driven future, however, there are more commonplace applications of the technology that are being used now. Let’s take a look at some examples!

  • Predicting project timelines
    AI can help to predict development timelines by using historic project data such as feature definitions, project estimates, actual timings, employee profiles, and more. While it may be nearly impossible for a human to take all variables into consideration affecting a project, AI can do this quickly and easily. By creating a digital profile of decisions and consequences, a development team can estimate costs more accurately and avoid unnecessary delays.
  • AI programming assistants
    More advanced developers can benefit from AI programming assistants, such as   Kite for Python . This is a tool that can offer just-in-time support and recommendations to developers when they are reading documentation and debugging code. This could include suggesting relevant documents to read, or highlighting best practices and code examples. Through these assistants, developers can drastically cut their workload and focus on more creative and strategic tasks, such as improving user experience.  
  • Routine testing and identifying errors
    AI can analyse historical project data to identify common errors and automatically flag them. Once the software has been developed, AI can quickly alert the team to any errors – before the issue becomes worse and causes system downtime or customer complaints.
    Software tests often have to be repeated every time the source code is modified, which is time-consuming and costly. However, AI can automate much of this, saving time and resources while allowing human testers to focus on more sophisticated tests.
    We expect to see testing become more or less AI-dominated in the future, where software errors can be automatically identified and fixed by machines without the need for human intervention.
  • GUI testing
    These days, every consumer interacts with software in a graphic and visual way. This makes Graphical User Interfaces (GUI) incredibly important to the long-term success of a software product. Testing GUIs is vital to ensure that the user experience is as expected, and error-free. However, a lot of GUI testing methods rely heavily on human knowledge and intervention.
    With AI, testing becomes more precise and efficient.   Applitools   is an AI-powered GUI testing tool that automatically checks whether or not visual code is functioning properly. Developers can see how their software looks via multiple screen layouts (including smartphones and tablets) to quickly identify any visual errors. They can also test the visual user experience and the functional behaviour of their software.
  • More informed decision-making
    Many organisations spend a lot of time prioritising different products and features when making decisions for future development. This process can become more data-driven and informed by using AI for analysing the success of past development projects and released software. This can help business leaders to focus their resources on projects that will provide the most return on investment and discard the ones that are too risky.

AI is a work in progress

Much like software itself, AI technology is constantly evolving and improving – which holds exciting potential for software development. While the current benefits of using AI come from efficiencies in the development process and improved decision-making, it will most likely alter our very notion of software development in the future.

One day, AI will be better at coding than the best human programmers – which is a good thing for the entire industry.

Share by: