Automation and the Future of Software Development
By Jamie Wright — October 11, 2018
One of the tenants on which Kinship was founded is the idea of embracing automation in software development. Automation is penetrating all areas of our lives and careers and this certainly includes the software development industry. We need to get out in front of it and ideally, we want to be leaders in this area.
Automating software development will increase quality and productivity. This is already commonplace in our industry by automating quality assurance tasks with continuous integration as well as automating releases with continuous deployment. We believe we have some pretty radical ideas in automating the development of software in order to constantly deliver high quality software. More on this later.
Automating our agency will improve customer service, value, and profits. This is not so commonplace in our industry but we believe it has the ability to provide a huge payoff. There is a lot of time spent in agency work by communicating how the project is going, teaching clients how to use the tools we all use in software development, and providing the same legal and tax documents time and time again.
Houston, we have a solution…
We have been working on a few automation solutions. One that will help run Kinship as an agency and another one that will help us automate some of the most common software development tasks we face today.
Our first solution is named Houston. Houston will be both a client dashboard as well as an internal bot we deploy to handle our most common issues and it will improve over time.
The idea we are working on right now is solving the common communicate questions that we receive, “How is my project doing?”. We want this answer to be available 24 hours a day, 7 days a week in our client dashboard. Our goal is to give our existing clients the answer to how their project is doing budget-wise and how it is doing schedule-wise. We have answered this question several times through tedious spreadsheets and calculations based on all the data we track via issues, story points, timelines, and previous histories. Houston will automatically perform these calculations on the real time data and provide the current answer to those that want to see it.
The Houston dashboard will be a one-stop shop for all the communication a client requires. We spend a lot of time teaching clients how to use the tools we use everyday like GitHub, Waffle, Pivotal Tracker, Trello, Basecamp, Slack, email, etc. Clients often ask “How do I file a bug?”, “Where do I go to see what people are working on?”, “What tasks are coming up?”, “Where do I send this request?”, etc. This communication on how to use these tools is tedious and time consuming. All these questions will be answered on the Houston dashboard.
Finally we will be using the Houston dashboard for is on-boarding potential customers. We get sent a lot of clients and leads and we spend a lot of time and effort qualifying these leads and passing those leads out to friends whom may be better suited to help them if we cannot. Houston will onboard these potential customers and allow us to chat with them at the exact right time. Once they become customers, the dashboard for their new project will be waiting for them.
The other part of Houston will be an internal bot we will use to allow us to easily access automation tasks. Imagine instead of adding a chore in GitHub issues to setup a new Elixir Phoenix project for an API, we just had Houston do this by telling the bot in Slack “Set up a Phoenix API repository called tps-reports for the Office Space project”. Alternatively, we could just assign the Houston bot in GitHub to that chore and having the bot go after it. This will save us hours on end and help us get to the actual work.
Here are some other commands we think Houston will be able to handle:
- “Send the PSA to Dan at Action Corps”
- “Send our 1099 to Sarah in accounting at Fresh Works”
- “I am planning vacation next week”
- “I am working on the TPS Graphs story for Data Gig”
Another Step in the Right Direction
Another ambitious goal that we have is to automate the actual code that we write. I realize we are in the business of custom software but a lot of the time, that software starts from the same spot and we rewrite a lot of boilerplate code to get us started. This is the low-hanging fruit we think we can automate.
How many times have you built a login system or a registration system? Sure, it may end up different to some degree and you certainly will right it in multiple different platforms and languages but the ideas are the same. How many times have you written a JSON API or a GraphQL API? We have written both the client and the server by starting with the same process. Remembering how you did it last time.
What if you could script this? How would it look? We are currently calling this Step Stool and here is an idea on how we think it could go from a command line interface:
\> step-stool build login \> Do you want to build this in (1) Ruby, (2) Elixir, or (3) Node? \> 1 \> Great, thanks. Do you want to use (1) Devise, (2) Clearance, or (3) Sorcery? \> 3 \> … \> Here is a link to your project: ….
Currently, this is just a concept and we do not have anything concrete yet but our goal is to build out an open source project that can script projects for any sort of language and provide a marketplace where the best scripts can be used and even purchased from companies that know their craft, including Kinship.
The Future is Bright
Thanks for listening to our crazy ideas. We think these crazy ideas have the potential to change the landscape just a little bit. Stay tuned and we will chronicle this ride on our blog.
One thing is for sure, they will be a hell lot of fun to build.
Do you think you would like to help be a pioneer on one of these ideas as a customer? Hit us up to tell us about your project at firstname.lastname@example.org and perhaps you can help beta test some of this automation.