Freelancer Devops Process Tips16 May 2017
I come across the same basic issues time and time again, Its surprising how many setups don’t have basic processes in place. I thought I’d start to share my observations and processes I have put in place personally to improve the development process, client relationships, professionalism and personal sanity.
This article is aimed at developers who find some of the below familiar, for example, when you are progressing through a project and you have started to deliver testing builds, client feedback starts to come in;
“Hello, I’ve have a look at the app, and here’s a few issues I have found, I’ll list them below.. ”
“Dear Mr Client, I have addressed your issues and redeployed the app, please let me know if you have any other issues”
“Thanks, I still seem to be getting the same issues. Also, I have added a few extra issues I spotted below”
“Apologies, I have redeployed the app. See my responses below in Red”
“Thanks, All good. I have added my responses in Blue”
You get the idea, perhaps this seems familiar, and weeks later there’s many different email threads, perhaps a very colorful excel document once the emails got out of hand, some lost changes, outstanding issues, 10 folders of code, config files everywhere.
“This bug seems to be back again, it worked in the last version but its not working again”
I’ve worked at this end of the spectrum, a lot, as well as large enterprise waterfall PMO controlled projects, and all the bits in between.. But for when I’m calling the shots, here’s some of the processes I put in place;
Simple Task/Feature/Bug tracking
I usually use Trello, with a few simple lanes (For example; To Do, In Progress, Ready to Test, Closed) and labels to separate system areas (For example; App, Backend) and find clients understand it pretty well, and within a few days are happy to raise bugs this way. Discussion on each task or bug is kept within that ticket.
For a progress update, a client can simply log into Trello anytime and see whats being worked on, whats ready, whats up next. Every time you modify a card, they get an email, keeping them continually informed and involved.
It’s also useful to defer tasks for later without forgetting, for example, create a lane for pre-production tasks to remember.
Note: You can get a Chrome extension to number Trello cards, this is much easier when you need to reference issues over the phone with a client for example
Unit Testing / Regression
If you are not unit testing, you need to have at least a basic unit test in place for regression testing. Deploying to clients for testing with recurring bugs is sloppy and unprofessional.
When you deploy a new version, you probably already have a click around to check that everything is working as expected, Why not automate at least this process to save time, improve thoroughness, and ensure you don’t forget to test some areas.
Why not send the client a test report along with the deployment to show that you have some basic checks in place.
Why not send release notes too?
If you are not using source control, you can sign up at BitBucket (Unlimited private personal repositories)
As well as the obvious benefits, You can tag each release and generate a list of changes that are included in the build. If you commit with the Trello card number, you can reference this back to the requirement. There’s lots of plugins and integrations between Git and Trello already.
BitBucket allows you to send an email out on Commits, you could add your Clients email to this list so they see regular updates. They don’t have to understand the code, but it adds to the feeling of involvement and being updated, as well as your professionalism.
By having BitBucket set up, the client already has all the code. This may be useful for handover purposes, but worth bearing in mind should your payment structure not allow handing over any code until later.
Hopefully some of this is useful, please let me know. In the next article, I’ll cover some thoughts around automation
Agree? Disagree? I’m not a writer, nor a world class expert on what I write about. I write this blog for many reasons and welcome anyones opinions or advice. Please do leave a comment or drop me a mail with any thoughts!