Starting a software development R&D lab can be very laborious if you want stick in your old and maybe a bit outdated habits and on the other hand deploy best practices. R&D lab is like any other production environment and process, and you want keep it up and running all the time. You can build seamlessly working R&D lab, which supports your new business needs by choosing working methods and technical solutions correctly.
During good old days servers were big, slow and expensive physical devices, which required constant love and care. Quickest way to add capacity to the servers was to remove some of the existing service and free capacity. Nowadays you can buy server capacity from cloud and focus on your core business. By buying correct service from the cloud provider, you can also be sure that your business complies EU GDPR.
No matter whether you are using your own servers or servers of cloud provider, you need to prepare for worst; server can fail or vanish. If you have decided to invest to high availability, there is hardly any impact to your R&D lab. If you don’t have high availability mechanism, you can still survive from the accident really quickly if you have followed infrastructure as a principle. At minimum you should have fresh backup from your data. Without backup, accident turns pretty quickly into disaster.
Next you want to ensure that your software development environment is secured. If you are using cloud services, then you don’t have to do everything by yourself. Cloud provider takes care of hardware, virtualization software, network and many other things. Your work is to ensure that virtual machines are configured correctly, software versions are up-to-date, connections are safe and user management is done properly. Existing disaster recovery mechanisms makes you feel more secure as you can ramp up the lab pretty quickly if your current lab is no longer safe or available because of attack. Of course you need to remember to fix security problems in your infrastructure code.
Software Development Tools and Practices
Nowadays Continuous Integration is a must have thing in software development and more advanced companies have done Continuous Delivery for years. Idea behind CD is simple, the more often you deliver changes to production the less risky single delivery is. Moreover, feedback loop gets dramatically shorter when you introduce new features every week instead of doing it once or twice a year.
Shorter feedback loop enables true agile and lean software development as you can make decisions based on real feedback, introduce new features in small increments and try new things quickly.
You can start with small and add stages to your CI/CD pipeline incrementally. There are lots of CI/CD tools and solutions on market from different vendors and really good open source alternatives as well. You can build your CI/CD pipeline from pieces or choose ready solution from various alternatives.
One thing that is good to keep in mind is that your CI/CD pipeline code is part of the software you are developing and you don’t get it free just by choosing nice CI/CD toolset. The bigger the software stack is the more important it is that you adopt CI/CD practices as part of your software development work.
Processes and Way of Working
Your brand new and shiny R&D lab is just a set of tools if people who don’t know what they are doing and how they should work. So we need methods for managing the work. Even innovating can and should be done in a systematic way if you want to get some results, which help your business to grow.
The more people and teams we have working on the same area the more important it is to define plans together and make work visible. Common planning increases commitment and visibility builds trust and speeds up collaboration. Agile software development methods promote visibility by nature and there are several ways get multiple teams working with same software stack. By choosing tools and technological solutions correctly, your software development process integrates seamlessly with CI/CD pipeline and people don’t have to spend unnecessary time to reporting they work results to some external system.
Efficient and smoothly working R&D lab is a place where happy and motivated people can focus on the essential, developing new innovation and solutions for your business needs.
Writer is Chief Solution Executive Henri Laamanen, who is passionate about solving customer problems with sustainable and effective digital solutions. We can increase customer satisfaction and profitability by making correct choises already in the beginning of solution development without extra costs.