Save Time and Money with AutomationPresentation Transcript
Save Time and Money with Automation
Who am I?Chris Jean@chrisjeanchrisjean.comDeveloper for iThemes.comCode WordPress themesDevelop needed internal solutionsWear funny shirts and hats
What is this about?This presentation is about how we at iThemesimproved our workflow by using automation.We did this by putting together some existingtools, adding some customization, andimplementing a standardized workflow.This has saved us hundreds of man hours andcreates a more consistent product for ourcustomers.
Why should you care?I believe that every business can reduceneedless waste of man hours by simplyspending a little bit of time putting in smartsolutions.This not only saves money but can reduceworker stress and make your customershappier.
Old iThemes development workflow● Need to make a change● Check with everyone working on the project to ensure that they are not making changes● Download the latest release● Make modifications● Create zip file● Upload zip file to server
Problem 1: Checking with everyoneis slow and wastes timeSometimes I would have to check in with fourother people. If one was away for a meeting ora personal appointment, I might have to waithours before I can start my work.Sometimes a miscommunication would happenand I would overwrite someone elses changesthat I didnt know existed. If they didnt keep acopy, the work they did had to be recreated andretested.
Solution 1: Use Git to remove thesocial requirementsGit is a kind of version control software. Itkeeps a full history of every change made tothe project and doesnt allow people toaccidentally overwrite the work of others.We no longer had to contact everyone in thecompany and wait to get permission to work.We no longer had accidental loss of work dueto miscommunication.
Solution 1: Use Git to remove thesocial requirementsWe got additional benefits from switching to astandardized workflow using Git:● Full account of when each change is made and who made it. We can see who made the last change to a specific line of code.● Ability to control who has access to the projects and who can modify them.● A Git feature created the ability to automate processes when projects were updated.
Problem 2: Consistency of zip filesI was the only non-Mac user in the office.Macs have a bad habit of adding junk to zipfiles. This junk created problems for our users.Since my machine didnt add junk to zip files,zipping projects became my responsiblity.Every time any project needed to be updated, Iwould get an email with a zip file that needed tobe cleaned up and rezipped.
Solution 2: Make the machines dothe work via automationGit has a feature that allows for automation. Itcan be set up to do specific things when anyproject is updated.I added code that would automatically generatea nice clean zip file each time a project wasupdated.I lost my title of "best zip creator." I didnt mind.
Problem 3: Uploading the zip filetakes time and can be forgottenRather than hosting our own zip files, we useda service that did this for us.Their interface was horrible and took too muchtime to navigate. So each time we had anupdate, we would have to load up their site, login, navigate their slow back-end, and thenmanually upload the file.It was a time sink.
Solution 3: Automate zip file uploadsWe already had an automated process tocreate the zip files. It just made sense to onceagain let the machines do the work for us.We moved the zip file hosting to one of ourservers and added an automation process thatwould automatically upload new zip files to theserver.
Taking full advantage of automationAfter we started automating things, we just keptgoing.We added an automation step thatautomatically added translation support for allof our projects. This could have been donebefore, but required a very specific process andwas time consuming. Now its automated.
Taking full advantage of automationWe added a feature where our projects couldeasily share sections of code. When thesecode sections are updated, all of the projectsautomatically get updated with the changes.For each project, the code is updated, thetranslation support is regenerated, the zip file isrecreated, and it is uploaded to the server...automatically.
Taking full advantage of automationWith our system, when sending an update, ifthe version number isnt new (and higher), thesystem will refuse to do the other automationsteps and will tell the developer about it.This prevents us from releasing confusingupdates with duplicate or old versions.This is a form of automated process control.
Benefits of automationOur automation system is around three yearsold now.In total, all of our projects have received 7,137version updates. If automation saved just 1minute for each version release, that is asavings of nearly 15 8-hour business days oflabor. This is far less time than was put intocreating and maintaining the system.
Benefits of automationWhen this automation system was first created,we had only two developers and one supportperson.We currently have 5 developers and 5 supportstaff spread across two brands. Wecommunicate frequently, but not because weare afraid of stepping on the other developerstoes.
What you can do1. Inspect your workflow and processes to identify the tedious manual steps.2. Talk to your coworkers/staff to see if any of these tedious processes could be automated or improved by using better tools.3. Be willing to invest in creating these better processes.4. Rinse and repeat as opportunities for improvement can occur at any time.