What is bespoke software development
Bespoke software, also called custom software, is rather like getting a piece of furniture hand crafted by a skilled carpenter over buying a flat pack from IKEA (other furniture shops are available). Both will do the job, but one is built to your exact requirements out of the finest materials, the other isn't.
Why bespoke software
Why go to the extra expense of getting something custom built if you can buy something off the shelf
Benefits of a Custom Solution
- Built to match your requirements and business processes
- Flexibility, bespoke software can be built to do whatever you want it to do
- Competitive edge, custom software is exclusive to you, your competitors can't buy or use it
- Ease of use, it has been built around you and your company to fit how you work. You don't need to change your processes to match it
- You have ownership of the softwares source code
- The software is an assett to your company and will add value to it
Ultimately bespoke software can give you a major competitve advantage over your competitors and add value to your company.
What bespoke software do we build
Enterprise cloud software
Our developers have years of experience working for large enterprises including AXA and Manchester Airport. We know how challenging it can be to deliver complex software solutions, to help meet these challenges we use both Amazon Web Services and Microsoft Azure to deliver cloud solutions.
Amazon Web Services
We leverage Amazons infrastructure as a service platform to give you scalable environments so you can easily carry out systems integration testing, user acceptance testing utlise a staging environment. Whatever your requirements AWS is up to the challenge
If you prefer platform as a service we can help you leverage Azure web apps, SQL Azure, automated deployments and much more
Microsoft ASP.net MVC applications
"The ASP.NET MVC is an open source web application framework that implements the model–view–controller (MVC) pattern."
"A server-side web API is a programmatic interface to a defined request-response message system, typically expressed in JSON or XML, which is exposed via the web—most commonly by means of an HTTP-based web server."
We build web API's that can expose your business's services to other applications via the internet. By using HTTP (the protocol the internet runs on), Web API's can help your business scale, you can have a single API that serves web sites and mobile apps. As your business grows you can add more applications that reuse your existing API's without having to reinvent the wheel.
"Behind every good app is a great API."
We believe that web applications are the best way of developing bespoke software today. If you have a device that runs a web browser you can use your application on it, your staff can access your systems anywhere in the world.
Web apps are cheap to maintain and can be updated with new features easily and regularly.
Angular JS web apps
Document composition systems
Rockweb has a wealth of experience developing XML based document composition systems. If you have a system that needs to produce printed output such as
- Rich Text Documents
We can help, using opens source technologies such as Apache FOP or CSS Paged Media we can build beautifully functional documents for your customers.
How we develop software
DevOps (development and operations) is a relatively new approach to software development (within Continuous Delivery) that aims to tackle the last mile in software development, between completing development and going live. The last stage of development is easily the most difficult, most of the issues we face come from lack of communication between development teams and operation teams. The old argument from developers is that operations have built an unreliable platform and vice versa operations generally think that developers write unreliable software. With these prevailing attitudes and the simple fact that most development and operations teams spent little or no time together it’s easy to see why things go wrong or systems underperform.
DevOps tackles these issues by creating a multi-disciple team that understands both operations and development. It requires developers who can work on infrastructure or sys-admins that can code. Ideally a mix of both delivers the best results.
By creating one team we remove the barriers and start to think as software systems as more than just the code. A system is the sum of its parts and includes the servers it will ultimately run on. DevOps aims to maximise the predictability, security and maintainability of systems.
Agile / Kanban
Kanban simply means Signpost in Japanese and is a way of visualising a team’s workflow and limiting work in progress. Toyota pioneered the technique back in the 50’s and more recently it has been adopted by practitioners of agile software development.
The core of Kanban is the board, similar to a SCRUM Task board it shows all the teams work (tasks) and what they are currently working on. In an ideal world this would be on a wall in the office and would be a physical board with task cards showing what people are working on. The simplest board would have 3 columns / lists with the titles: To Do, Doing, Done. This can be customised to match the teams’ workflow.
Kanban daily meetings
Unlike traditional agile meetings, the purpose of the Kanban meeting is to highlight issues and progress. It doesn’t involve a round robin approach with each person giving the traditional "yesterday I did... today I’m going to... blockers are ..." Instead it focuses on the things that have moved, so the other team members get visibility, and discusses any blockers / issues that may need the teams involvement.
Continuous Delivery is focused on automating and improving the process of software delivery. With Continuous Delivery we shift from large high risk releases to regular, frequent low risk releases. This enables us to continuously adapt software in line with user or customer feedback.
Continuous delivery principles
- The purpose of CD is to reduce the cycle time between an idea and usable software
- Automate (almost everything) to create usable software
- Version complete software systems (not just source code) for every change committed to version control system
- Employ a deployment pipeline in which the entire system is recreated whenever a change is committed to the version control system and provide continuous feedback
- Create one delivery team to build, test, deploy. Following a DevOps model so that the environments are part of the product
Blue / Green deployments
Automated deployments help reduce delays between software being done and its release. One of the challenges with automating deployments is the cut over from testing to production. Ideally we want to do this with as little down time as possible.
Blue-Green deployments facilitate this by having two production environments as identical to each other as possible. We would then have one of the environments, say Green set as live and Blue as staging. This would allow us to test our changes on Blue before promoting it to live and demoting Green to staging.
Source control (Version Control Software)
Version Control Software is simply a way of storing a copy of our code along with a history of the changes made to it. This allows us to work in sync with other developers on the same code and to revert changes should we find an error. With distributed version control each developer has their own copy of the code which is then merged with other developer’s code when pushed to a central shared repository.
At Rockweb we use Git.
If you are considering your next project contact Rockweb today to find out what we can do to help.