How Technology Can Impact the Speed of Software Development
The technology that is currently available to us plays an incredibly important role in the velocity of any software development project. For any new software project, developers use multiple technologies to assist their work. These days there are tools that can write the majority of the code for a piece of software!
More on this later, but if you are thinking about what Sundar Pichai, CEO of Google, said recently about Software writing itself, (“over time these could be learned systems that automatically writes itself”) then yes, that will eventually impact the speed of software development in the future.
However, the AI capabilities that we currently have access to are not quite there just yet… For the time being, we still rely heavily on skilled Software Developers and Engineers to build software, but you may be asking, what is currently at our disposal to improve this process?
Below I will cover off some of the more common technologies being used at the moment and how they are impacting the speed of software development.
Does your software need a payment gateway like Paypal or Afterpay? Are you looking to onboard subscription-based customers? Or do you need to show data from a government agency on your website? All of these are examples of third-party integrations.
The most common method to implement these within your software development is using an API (Application Programming Interface) provided by the relevant platform. Without getting bogged down in too many technical details, you can think of APIs as a bridge between your application and the other platform’s servers.
Depending on how well these APIs or extensions are written and documented, as well as the level of familiarity of the development team with these platforms, such integrations can take anywhere between half a day to a few days.
Benefits of using APIs :
- They save us from writing the whole functionality from scratch
- The providers of the API are usually focused on improving the features
There are not many disadvantages, however, the time and complexity needed for each of these integrations have to be accounted for. This ultimately has a pretty big impact on the overall time taken to develop your software project.
Rapid application development platforms
Nowadays there are platforms available on the market that lay the groundwork when writing a new software code. As you can imagine, the use of a platform like this accelerates the whole software development process by providing extra velocity and saving time.
In software development, time equals budget. The amount of time that can be saved by using a platform like this directly translates to cost savings. Not only do these platforms help in speeding up the development process, but they can also help to bring consistency in the development standards across teams within a company. However, these platforms do come with a subscription fee of their own.
One such platform is Codebots but with added advantages. Codebots is essentially bots that write code. The benefits of Codebots vs other rapid application deevlopment platforms are:
- No vendor lock-in. You own the codebase and can easily download or use it without depending on the platform.
- Flexibility to customise the code and use creativity
- AI Lab is the new feature at Codebots that allow the organisation to create their own bots using Artificial Intelligence
Here at WorkingMouse, we leverage the Codebots technology for our software development projects with great success. Reach out to us, if you would like to learn more.
Available libraries and tools
Another thing to consider when building custom software projects is what you can leverage that is already available. Why reinvent the wheel when you can utilise an existing tool and save yourself some time? There are pros and cons involved in this, of course. But we can attest to the use of existing libraries and tools being helpful in certain situations.
In one of our recent AI projects, we were working on building a proprietary computer vision engine for our client. To achieve this, we utilized OpenCV libraries to build capabilities on an on-premises system. We also used Azure Cognitive Services to make use of their pre-trained engine for object recognition on the Cloud. Pretty cool right? Using these technologies that are already available and fully functioning saved countless hours in building something similar from scratch.
Similarly, there are more open-source (as well as paid) libraries that can be used to fast-track AI projects. Another example is GPT-3 API provided by OpenAI, which offers general-purpose AI capabilities for any language task.
There are so many possibilities!
DevOps and CI/CD
DevOps is the use of tools, processes and people to improve an organisation’s ability to deliver digital products and services at a high velocity. The term DevOps is a mashup of Development and Operations. It primarily relates to the stage between those two areas.
One of the most frequent acronyms within the DevOps space is CI/CD. CI stands for Continuous Integration which is the practice of merging all code changes into a central repository where a pipeline validates those changes through tests and builds.CD could stand for Continuous Delivery or Continuous Deployment — they are similar concepts but differ on their extent.
DevOps and CI/CD technologies play an important role in achieving higher velocity. With an effective user code repository, testing and automation technologies, a software development team can improve the efficiencies in software deployments. The added bonus is that the feedback is also instantaneous.
At WorkingMouse we use tools like Gitlab (code repository), Selenium (testing), Confluence (reporting and project documentation) and Mattermost (internal messaging) along with a few other tools that are integrated with each other for effective updates and communication. For example, Gitlab updates automatically notify the project team on Mattermost, informing them of whether or not the release was successful (and why).
Through these automations in DevOps, software teams can reduce risks, save costs, improve quality and speed up the software development projects.
There are many factors that can impact the length of development for a software project and as you can see from the above use-cases, technologies available today are definitely one of the major factors. The list above is not exhaustive and is only growing longer each day.
However, it is important to note that speed should not be the only deciding factor when selecting the team or the technology for your project. Apart from the costs, employing the right processes, the quality of development, proper documentation and maintainability should also be considered in the decision-making process.