Stepsize is a UK startup focused on developer tools. The firm is aiming to put a degree of Artificial Intelligence (AI) into DevOps. Stepsize Layer is a desktop application for developers that automatically adds context to code bases. It does this by hooking up tools used to develop software, structuring historical data and attaching this to the piece of code.
Users can select the code, view a timeline and run smart logic to determine the true author. Fully integrated with Slack, developers can contact the author and find the relevant context.
Co-founder & CEO of Stepsize Alex Omeyer spoke to the Computer Weekly Open Source Insider blog to explain how his firm’s technology has evolved.
CW: Where did the genesis for this idea come from?
Omeyer: While taking an online course on deep learning for natural language processing, [we] started wondering about whether we could apply similar techniques to programming languages which have more structure and less ambiguity than English or French.
Being self-taught developers, we started bouncing ideas on how to apply machine learning to the software development process and Stepsize was born.
After playing around with neural networks using publicly available data from Stack Overflow and GitHub, we concluded that the right approach was to gather and generate the right data that would allow us to iteratively streamline and automate various parts of the software development process. With this approach, programming languages would eventually be abstracted away.
So we set out to figure out how to help developers with their daily work while performing this data collection exercise. Speaking to many developers working in teams, we came to the realisation that every day they have to contribute to codebases they’re largely unfamiliar with, but no tool specialises in helping them understand the past – the who, why and when of any given piece of code. We started building Stepsize Layer to contextualise code and allow developers to work on shared codebases perfectly informed.
CW: How does it actually work?
Omeyer: As detailed above, Layer hooks up with all the tools devs use to build software, structuring the historical data contained in these tools and attaching it to the code.
Users can simply select a snippet of code, hit a shortcut and our open source editor plugin will send the code selected to the app which will then run some logic to surface the information relevant to this code. It uses information contained in Git and other tools to identify the author of a piece of code, and provide a full history of the evolution of his code.
This includes displaying all the commits, pull requests and associated user stories / issues on a timeline. We plan on adding information from continuous integration, code review and many other tools, as well as analyse test coverage and link it back to the code. Our aim is for all the information relevant to a piece of code to be directly tied to it so developers never have to dig through a bunch of tools to understand it.
Layer also integrates with Slack, a tool that many developers use to communicate and discuss all aspects of software development. Users can send a Slack message to the author of the piece of code they’re investigating directly from the app. Layer uses the Slack API to push a message in the selected channel and embed all the context necessary for dev teams to have a productive conversation about the code.
CW: How will this change the way developers work?
Omeyer: By providing developers with all the context they need to understand a piece of code at all times, Layer allows devs to make better judgement calls, make less mistakes, collaborate with their colleagues and overall be more efficient.
They no longer have to solely rely on static software documentation, disturb a colleague (who might no longer work at the business or work in a different timezone), or spend months getting familiar with the system to understand the codebase. Instead of checking the interfaces of the numerous tools they use before contributing to the code – a task so daunting that devs would rather take a stab at the job without the necessary information and risk introducing technical debt or breaking something – devs can open Layer without leaving their workflow to shine the light on the code.
Layer allows us to collect rich metadata describing code – the intent behind the code in the form of a ticket and commit message, the corresponding design mockup, how the code is tested to ensure it works as expected, how it was reviewed by peers, technical issues in production and how they were subsequently fixed, etc. As we build out this dataset of contextualised code, we’ll be able to develop and train machine learning algorithms that leverage this data to make devs’ and their businesses’ lives easier.
Think automatically scoping out features, assisting with sprint planning, assigning tasks in the most efficient way, estimating delivery dates, templating code for common logic and features, truly automatic and accurate code review and estimates of risk for pull requests and much more. We’ll keep pushing this concept further until we’ve simplified the development process to such an extent that more people are able to build software without having to go through years of trial and error.
CW: What’s the feedback from software engineers so far?
Omeyer: Early versions of the tool reminded many of our users of a ‘souped-up Git blame’ (a Git command that allows devs to identify the Git username of the last person to modify a line of code so that they can then contact him or her with any questions). Unlike git blame, Layer runs some smart logic to identify the person truly responsible for several lines of code and surface the rich history of this piece of code. This in itself was enough to get some devs to use the app every day at work.
Our users engage with us on a regular basis to request more integrations with other dev tools that contain info relevant to their code, and smarter features (e.g. adding “sticky notes” to their code, matching a piece of code with the relevant tests, automatically matching a ticket with a commit etc.).
CW: How will AI change software development?
Omeyer: With the current rate of technological change and the sheer size of some of the software projects out there, we can’t expect developers to process all the information necessary to make optimal decisions during the development process. In the medium term, AI will reduce the cognitive load on developers by making the information they need available when they need it (think Google Now for devs), as well as assisting them with their daily tasks. They will become much more efficient and effective.
This in itself would already be a huge boost to innovation, but we think AI can do even more for software development. Stepsize is working towards a future where software development is available as a service thanks to AI. Literal software as a service. Code will be abstracted away completely and anyone will be able to collaborate with an intelligent agent to bring their ideas to life.
This will have an unprecedented impact, not only on software development, but on the world. Think about what roughly 20 million developers have been able to accomplish in such a short period of time. They represent less than a percent of the global population, and yet, they are central to modern day human progress. Imagine the impact on the world if it contained as many people capable of developing software as there are people capable of reading and writing today.
You can visit Stepsize here.