Automation of Product Development Processes
In this article, the author takes the reader through the step-by-step process of automation of a product in macOS applications.
Join the DZone community and get the full member experience.Join For Free
HI! My name is Volodymyr Nuzhdin, and I have been developing iOS and macOS programs in the Nektony team for over five years. We create utilities for cleaning up space on Apple devices.
When I need automation of some processes, I usually go through the following stages:
- After working for a long time in one company, I begin to see many types of activities that take up a lot of time in the long run.
- As soon as I start to get annoyed with doing the same thing over and over again, I start to realize that it's time to automate it.
- Then I estimate the amount of time needed to automate and the time saved over, for example, a year.
- If I understand that the automation effort takes less time than doing it manually, I ask management to add the issue to our sprint.
Or sometimes I can do it on the weekend and find a solution. It satisfies me in a certain way =)
Next, I will give examples of which processes my team and I have automated and saved our time. I hope my examples will be useful for you.
A Tool To Create DSYM in a Few Clicks
At work, sometimes you have to work a lot with crash log and spindump files. Previously, each time it was necessary to spend about 20 minutes reading and parsing one file. And if there are certain utilities for automatic decryption of this data for iOS applications, DSYM does not have a standard tool for macOS applications.
For macOS programs, there are specific instructions on the Apple website for developers with steps on what to do. Apple suggests using only the Terminal command-line interface, which is usually very inconvenient. You have to write many commands, which takes a lot of time, and the worst thing is that if you make a mistake in even one character, you will not get the result.
Perhaps you can recommend some third-party software, but everything I tried to download from the App Store did not suit me. Third-party solutions didn't always work properly, had constant crashes, or didn't have a full DSYM.
So I decided to make my own application for DSYM Mac CrashLogs. I spent about three hours on this, and as a result, I freed up a lot of time when working with crash log and spindump files.
A certain measure of the effectiveness of this solution for me is the fact that this tool is now used not only by myself but by our entire development team. If earlier we spent 20 minutes studying a file, now it can be done in a few minutes.
To Sum Up
Problem: It took a lot of time to create DSYM
Solution: Development of own program to create DSYM. Ability to create DSYM in a few clicks instead of using the Terminal.
Time spent: 3 hours
What I used: Here is a link to the document.
Adding New Metrics to Jira
This decision made life easier not only for the development team but also for testers and product management.
Previously, once a week, we got together and "did arithmetic"; that is, we counted together how much time we needed to do this or that task. It usually took about 30 minutes. After many such team meetings, we realized it was time to automate it. The main motivation was not so much inconvenience, but, firstly, in saving our time. But as a result, they got 2-in-1.
So I created a program that adds metrics to Jira. I used the Jira API in my work. The work was not as small as in the previous example. It took about a week, and we are now continuing to maintain and update it.
In general, for us, Jira is not only a tool for monitoring tasks but also for monitoring the efficiency of employees' work and their ability to evaluate tasks. Each developer independently estimates the time needed to complete the task. And then, we get an indicator of the efficiency ratio of this work. If a person has a stable ratio between how he estimates time and how much time he actually spends, then we can more effectively plan goals in the future.
What's cool about the program for adding indicators to Jira is that, thanks to our program, we can add as many indicators as we need without any restrictions. Third-party applications do not provide this possibility and flexibility.
To Sum Up
Problem: We spent much time calculating the time to complete the tasks. We did not find a solution on the market that would fully satisfy us regarding functionality and price.
Solution: Creating our own program for adding metrics to Jira.
Development time: 1 week
The result: more than 130 sprints have passed since the transition to automation, so if you do the math, that's already about 65 hours.
What I used: Jira Api. Here is a link to the document.
Advantages of the solution: You can easily add new functionality to the program. For example, we have added the ability to export data to Google Docs. And you don't need to write anything by hand every day.
Figma Plugin for Exporting Styles to Swift Code
Previously, when developing products, we had to write all parameters manually (colors, fonts, light and dark themes, etc.). It happened when, for example, the designer changed the application interface and forgot to inform the development team about it. You can imagine how much time we had to be spent to update all this. So after repeating such cases, I found an effective solution.
I’ve created a plugin for Figma that allows all these parameters to be exported in a few clicks.
How it works: The plugin generates the text, the text is transferred to XCode, and it is all generated into colors, fonts, and other parameters. The developer does not need to think about all these parameters. You just write the code and uses autocompletes.
To Sum Up
Problem: We spent a lot of time writing parameters in the program code manually.
Solution: We’ve created our own plugin for Figma and an additional program that is used as part of the project. That is, we got the automation of this process.
Development time: 1 week
- The probability of typographical errors has decreased
- All design changes are automatically applied to the code
- Saving time on development
- The ability to check the presence of a light and dark theme
That is, as you can see, there were many benefits, and the decision paid for itself many times over.
So, What’s Important?
- Think about what exactly the same type of actions you perform many times and what takes up a lot of your time.
- Estimate how much time you will save in the long run (a year or even two) if you automate this process.
- If you see sense in this, then even spending a week on the automation of some work may not be so much compared to how much time you will free yourself.
When automating some processes, firstly, I proceed from what I personally do not want to do in the future and what actions I want to simplify for myself. I don't understand metrics, and I don't know how to estimate the value of a developer's investment of working time for process automation. But if you simply calculate the amount of time saved in the cost of the developer's time, it is easy to see that the result is worth it. Thanks to automation, you start working more efficiently, and monotonous work becomes less, and as a result, the possibility of burnout and fatigue from work is minimized.
Opinions expressed by DZone contributors are their own.