I live in two worlds. First, I work in the technology space as a cybersecurity industry analyst. Second, I am a writer who self publishes non-fiction books. The Venn diagram below shows you the people this article is written for.

That said, I am hoping the two communities can take something from an exploration of this intersection. Paul Graham, the founder of tech incubator, YCombinator, is a computer geek who likes to write essays. All of them are worth reading but one is particularly germane. He described how a computer programmer needs to be able to hold all of a program in his head:

Your code is your understanding of the problem you’re exploring. So it’s only when you have your code in your head that you really understand the problem.

Your code is your understanding of the problem you’re exploring. So it’s only when you have your code in your head that you really understand the problem.

I like the way he describes in another essay why a coder needs big blocks of uninterrupted time to do their work. It can take more than 15 minutes for a programmer to get in the zone where all of the code they have been working on is front loaded into their brain and they can start focusing on the task at hand. Graham uses this to argue against meetings, phone calls, and interruptions from various messaging apps. He, like all of us, struggles with distractions.

This is good advise for a writer who has the same needs. In a talk given on Google’s campus the prolific science fiction author, Neal Stephenson, describes his process which is to spend time going over the ten pages he wrote the day before and then continuing to write ten new pages. Every day. It is common advice on writing forums to engage in this time of review, similar to the front-loading Graham describes.

So, if coders are like writers, what other cross domain similarities can be leveraged to assist both groups in their activities? I think it is worth taking a look at the term “shift left” used in the software developer world and see if it applies to the writing and publishing world.

First I need to describe the world of software development for the writers out there. Then I will have to describe the publishing world to the developers. Then I will introduce a twist on “shift left” which I call “collapse left.”

Notice that I used the word ‘developer.’ That is the industry term for people who create the software we all use, usually in the form of apps (applications.) You might hear the term app-dev used. Other shorthand being used: sec =security and ops = operations.

This is how it used to work, and sadly probably still works in many fields, especially government and military: A specification (spec) is drawn up that describes every single feature of the desired app. The spec is handed off to dev which breaks it up into a lot of chunks and assigns it to a lot of developers. A typical big bank may employ 2-3,000 software developers. All the code is “committed” to a software repository and assembled into a working app. Then the app is handed off to testing where a bunch of people test every single feature as described in the spec. Any problems (bugs) are sent back to dev to be corrected, recommitted, reassembled, and retested. When that process is done looping the app is sent to ops who are responsible for putting the app in production.

In the old days the ops team may have not even been aware that the new app was being worked on so they would have to scramble to figure out the plumbing. Plumbing includes the hardware the software runs on, the other systems it has to access (dependencies), the permissions to connect to databases, and it has to be connected to the backup and recovery process.

You can start to picture the linear flow of this process from left to right, with a loop for testing.

You can also imagine that this is cumbersome and must extend project timelines. You would be right. So, enter the world of DevOps. The idea is simple: get ops involved at the beginning of the cycle. Form teams that work together to launch apps on time and with minimum bugs. If you want to read a riveting novel about DevOps you have to read The Phoenix Project by Gene Kim.

That idea of moving the ops team earlier in the cycle, to the left on the timeline, was the beginning of the concept, or mantra, or rallying cry, of ‘shift left.’

But wait! What about security? When is the code scanned for vulnerabilities that could be used to exploit it? Don’t be shocked but the answer, for most projects, is never. It is just put out there because “who would ever want to attack our code? It’s just software for a CCTV camera.”

Those who develop internet facing apps quickly discovered that they had to incorporate security into their process. The early version of that was to scan the code, usually after it was in production, but in some cases before, and report security vulnerabilities back to the dev team using the same process that the testing people use to report bugs. So, security introduces more delays because the dev team has to fix those vulns and the testing team has to re-test everything to make sure the fixes did not introduce new bugs.

The solution? Put sec people in with dev and ops people. Thus DevSecOps was born. Another shift left.

Only one more point to make to get from “shift left” to “collapse left.” While the process side of the problem was evolving, technology took a giant leap. The cloud was born, thanks in large part to the ability to quickly create and deploy virtual machines on standard hardware. This means ops people are no longer specifying and configuring (let alone ordering, unboxing, and loading into equipment racks in the data center). All that is taken care of by AWS, Google, or Microsoft. (Yes, yes, Oracle, IBM, Rackspace, and Digital Ocean too.) Virtual machines, VMs, are an abstraction of a computer. They do all the same things a computer does including running apps. But now there is yet another abstraction called a container. A container has a much smaller footprint. It does not have all the overhead of a full VM, but it too can run an app. So dev teams can design their apps to run in containers. This means that the ops team does not have much to do. The architects may be involved in specifying the types of containers that can be used but once those decisions are made the dev team is responsible for spinning up containers as needed to run their apps.

That’s what I mean by ‘collapse left,’ and now companies like Snyk, Chef, Puppet, and others, are building security tools that dev teams can use to help ensure they are building secure apps. To some extent the full DevSecOps team is not needed. The dev teams are being empowered to do it all.

Publishing Paradigms

Publishing does not have as many cool terms as application development but it has a lot of similarities. Paul Graham pointed out how a dev and writer are similar in their approach to work. Here is the old way a book got published.

I am going to skip the frustrating and gruesome task of snaring an agent and getting a contract.

-An author sits down and writes a manuscript.

-One or more editors read the manuscript and report any errors they find.

-The author fixes the errors.

-The publisher creates a cover and “type sets” the interior of the book.

-The book is printed, bound, and shipped.

-The publisher markets the book and delivers to a distributor which makes it available to bookstores.

You can see the parallels already. Author = dev, editors = testing, publisher = ops. If you question the marketing and sales part just think of a game publisher which does all that too. If the writer, editors, and publisher worked closely together we could call this WriEdPub, but they don’t, so we won’t.

Before Amazon created the cloud (Amazon Web Services) they created a market place for books. And in parallel with the rise of the cloud, Amazon created a platform for both ebooks and print on demand (PoD) books, where each book is printed and bound only when a customer orders it. This opened up new possibilities for writers.

Just as the cloud allowed devs to free themselves from the constraints of ops, Amazon Kindle Direct Publishing (KDP) has freed writers from needing publishers. The term ‘self-published author’ is giving away to ‘indie.’

Indies are revolutionizing book creation. They write the manuscript. They hire their own editors and designers. They market their own books, and they make them available through Amazon or Barnes&Noble. They have ‘collapsed left’ all the dependencies.

Indie publishers don’t realize that they are so similar to software developers but the results are just as amazing. Collapsed left DevSecOps creates better code faster. Indie publishers are pushing out new books at an astounding rate.

The 20Booksto50K® FaceBook group has over 38,000 members, all devoted to cracking the challenge of supporting themselves as writers. The formula is straight forward: Write to market. Have a cover design evocative of your genre. Rapidly release books in a series.

Craig Martelle, one of the founders of the group says “I’d like to think that 20Booksto50k® is a business paradigm based on philanthropy that helps its members realize increasing levels of success.” Martelle is one of the best examples of this new breed of writer. He is prolific and abides by the formula, writing 3,000 words a day or more, all while helping to manage the group and organize an annual conference. As he develops that paradigm he explores more efficient ways to create more and more books and extract revenue for them. He is the pioneer of ‘collapsing left’ in the world of publishing. As Martelle points out, like an app, the story has to work: “ Consumers are the final arbiter of the quality of one’s efforts. Either the app works or it doesn’t (although it may be buggy). Same with a story – quality AND quantity can be quite lucrative.”

Book publishing has been around for 581 years and has seen many revolutions. Software development in the enterprise has yet to see its 100th year. But both industries are benefiting from ‘collapse left.’ Expect DevSecOps and Publishing to experience rapid change in the next two years.



Source link

You must be logged in to post a comment.