Development process and automatization
AUTOMATE WHAT YOU CAN – it’s about „how to simplify the programmers work”
Currently the development process is not only related with coding. Nowadays is related with many other fields like: testing processes, staging and production server updates, taking care of application security, teamwork, project progress monitoring, contact with the customer, cooperating with a team, managing and following with the development process, contact with clients, working with repository and following other team members updates and many other small things. To relieve developers and project managers it is necessary to automate some processes and adoption of certain standards.
At DevPark due to expansion of the development team we decided to use some tolls to support team in their daily duties as well as creating development environment which is using modern available tools.
WHAT IS GOING ON – about project management
It’s quite important for each party (Client, Project Manager and programmers) to have possibility to review the current development status, so see what is done, on what we are currently working and what it is planned to do- mostly when you work remotely! At DevPark we decided to use Atlassian software called JIRA.
JIRA include very clean way to display the development state with a feature called AGILE BOARD. This board can be highly customized and it’s connected with „backlog”, so you can create all things from SCRUM methodology. Thanks to this table, each of team members can check the work progress, what others do and what is assigned to them. It’s also very valuable for the testers, so they can easily report bugs. Finally it looks, like the app is build from small bricks.
WHERE IS MY CODE – about code repository
The code repository this days is the most important part of development process. There is no sense to describe it, as currently each programmer should be familiar with it. The point is, that at DevPark we decide to use bitbucket, becasue it can be easy integrated with JIRA and also with other services, like SLACK.
HOW TO MAKE IT LIVE – about development environment (servers)
Why it is so good to have a dedicated servers administrator in your team? Because dedicated person will do two times faster than regular programmer! He will also know about solutions, which will be unknown by others.
It’s a common mistake, that at many companies the programmers are responsible for servers administration – which mostly is not a part of their knowledge. It also takes them more time and the result of theirs work is not always the best solution – which is obvious, because they are experts in programming NOT in servers administration.
Server admin will do this much faster and better. Also with his knowledge, he will advice the best possible solutions and will tell you about theirs weakness. He should also be able, to automate some development processes.
The most frequent process to do is publishing code changes on staging and production server. Mostly, this process doesn’t take too much time, but because of its frequency, it should be automated.
Another reason is the time required to prepare the working server environment. If you will have to do this from scratch – it will take some time, to make it work – and you have to remember about many things to do. If you are working with one or two frameworks, most of this work is repeatable.
At DevPark we decided to use JENKINS for the continuous integration and DOCKER to setup new environment.
With Docker we have reduced not only the time required to setup new server but also the required hardware resources consumption. Now each programmer can download the docker image configuration and easily setup his local environment.
Thanks to Jenkins, the code deployments is automated. It’s also integrated with our communication software, so we can follow with Jenkins messages about the deployment process (if it’s done successfully or not). At each deployment process, Jenkins also runs tests (Unit and Integration tests) – which from the other hand forces programmers also to take care about them (which many times is a problem when there is a time pressure).
LET’S TALK – about team communication and system monitoring
When you work remotely with a team members or clients, it is very important to have good communication – and here is a place where SLACK can help you. It allows you to create separated channels for projects for your internal discussions and also create dedicated „teams” to contact with clients. SLACK is quite powerful and can be integrated with many services. We have integrated it with Bitbucket, Jenkins and JIRA. This integration allows us to follow with all automated processes which are done.
All what we have mentioned above is not everything which is required to make high quality development process. It’s also important to have proper working methodology and to train your programmers. But for sure – above things will help you a lot to organize your team work.