Culture / Sponsored

Remove What You Hate from Software Development

4 Mar 2019 3:00pm, by

As a developer today who loves to program and code, you will find that some, if not much, of the work you do can be unrelated to applying your skills and creativity to solving problems with code. You might instead find yourself struggling with more mundane tools and practices that might necessitate deployments to, for example, cloud native platforms.

Unfortunately, much of the job has to do with working with YAML and shell scripts, creating spaces and file names, etc. and devoting time and energy to “all of those things that has to do with getting your code running that actually has nothing to do with code,” Gene Kim, co-author of the seminal and still very timely books “The Phoenix Project” and “The DevOps Handbook” and advisor to Atomist, which offers a software-delivery platform for cloud native platforms.

“Over the last year, this has that has that elevated to me just how much I loathe those parts of being a developer,” Kim said. “It is so far away from actually solving a problem, which is something I like doing.”

Such is the life of a developer and software delivery today, but in the future, new tools will increasingly lend an increasingly much more purely programmable approach to software development and deployment. This was the theme of a podcast hosted by Alex Williams, founder and editor-in-chief of The New Stack, with Rod Johnson, CEO, Atomist and creator of the Spring Framework, who shared the guest spot with Kim.

Kim described how his typical work day consists of writing, programming, and “spending time with the best in the game.” However, he also noted how there is now often a blurred the line between configuration and code. “I, think in general, I was biased towards configuration. I mean why learn another language or another DSL?” Kim said. “But then I found myself struggling to write Kubernetes YAML or deploying YAML files and so forth — this was maddening. And so, in many ways, you would rather  compose these as code and not treat them as configuration.”

However, a move to towards repositories and taking an event-driven approach for software delivery is one way to remove some of the more mundane and often inefficient and unwieldy pitfalls of software development and delivery today. “As we move towards finely grained services,  we may find out we have hundreds or even thousands of different repositories,”  Johnson said. “Having a pipeline for each of these just does not scale and it produces massive duplications. You are not talking about one YAML file but you are talking about 500 or more.”

Instead, Atomist offers an event-driven approach, Johnson said. “So, instead of modeling these so that you have a pipeline for each repository, you have an event hub and create a push as an event,” Johnson said. “So, essentially, Atomist treats everything that occurs in your development team like a push or a field result or a deployment event and treats it like an event.”

Atomist’s platform also serves as a model to interpret event. “The good thing about having a pipeline per repository is that there is an implicit context,” Johnson said. In this way, it is possible to gain insight into the code and individual projects, see changes that were made and who made the changes.

Another key element of what Atomist offers is how “you implement the event handling and our view is that you should do it in code,” Johnson said. “So for [batch and YAML  files] or anything like that, you use a full-fledged modern programming language.’

In many ways, today, we are riding on the shoulders of giants, including Alan Turing and others,  and have the opportunity “to manipulate things using these concepts that have been built up through the work of incredibly smart people,” Johnson said.

With the right platform, software creation and delivery should thus purely about adding to that pool of knowledge instead of spending an inordinate amount of time and energy on filling in gaps with tools that might just serve to bootstrap code for deployments to cloud native platforms.

“It’s really about, the range of what you can do, which code has greatly increased greatly,” Johnson said. “We should all just make the most of it.”

In this Edition:

1:13: A brief introduction to Atomist.
10:21: How do you get them across that bridge, into and beyond YAML?
14:10: How do you bring these platforms to bear to help developers and not force them to have to learn all these things?
15:17: What are the complexities of the delivery, and what is your event-based approach that you are recommending to the people that you’re talking to in their daily work?
18:07: Gene, what for you is important about this approach?
23:24: What does that tell you about the direction that developers are finding themselves take based on what others are proving is effective?

Feature image via Pixabay.

A newsletter digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.