I recently came across drawio, and I’ve been using it to make Wardley Maps. In addition to the online version, there’s also a desktop version that you can download and use.
It doesn’t require me to sign up for an account; it integrates well with common cloud storage options (dropbox, google drive, onedrive). As a result, I find myself using it more than I thought, especially when it comes to layers.
To see what I mean, I’ve placed the maps from the previous article on AWS S3 to try out. The output/export of drawio was a single html file that can also be saved locally and opened in the browser.
Interact with the map – using buttons
To interact with the Wardley Map mentioned above, you can use the buttons present or select which layers you’d like to see. The disadvantage of using the buttons is that pressing them out of sequence messes up what’s displayed.
Use the “fullscreen” option to view the map. This abstracts away browser-specific behaviours.
The click through the buttons at the top in this sequence:
1, 2, 3, then on 3 again (to make the selection disapper)
5a, then click “back to map”
6, then click “back to map”
Interact with the map – using layers
To select the layers, hover your mouse over the map’s page to reach the icon for layers. There, you’ll see several checkboxes that can be selected.
Using drawio online with icons/symbols for Wardley Maps
If you’d like to try out drawio online for drawing Wardley Maps, I’ve created drawio specific template, or a set of icons, that should save us time. These are are saved online and made available through a URL  because draw-io online gives us the option of specifying URLs from which to load icons/symbols – see step 3 in the image below. For a quick try, see section titled “P.S. Update on 09-April 2019“
I’m still discovering what drawio enables. E.g., with this link , the stencils are now linked to the corresponding github repo, meaning that you’ll always get the latest version of the stencils. After updating the repo, I don’t need to copy them to s3 and dropbox. Whereas you, by getting the stencils from github (if you’re using the desktop version), always have the latest version. Win-win for all. wohoo!! 😎
I’ll be mapping a few important chapters of Lou Gerstner’s book, Who Says Elephants can’t Dance , as illustrating Wardley Mappings. Not that Gerstner draws maps for us but his descriptions and narratives embody much strategic thinking that I couldn’t help recall Wardley’s Strategy Cycle, which led to an attempt at visualising them using Wardley Maps.
Justifying my application
But, before we explore the maps from Gerstner’s book, I’d like to explain why I think it’s the best that I’ve come across that illustrates Wardley Mapping, looping through the Strategy Cycle within a business context.
When I say “the best,” I mean it in the sphere of what I’ve come across and read. This sphere is naturally quite narrow.
Of all the materials out there, a subset have been published or made public. Of these, I’ve read a small portion. Of those that I’ve read, I see two that are relevant to Wardley Maps. I’ve restricted myself to books. Articles are too short for this purpose. On the other hand, I could wade through documents, such as annual reports of publicly traded companies – this I occasionally do – but these make for dull reading, let alone function to impress the mind with vivid illustrations.
First are the series of books by Peter Krass. These consist of a collection of articles from the leading business men and women of the time, articles arranged around varied themes within the broader categories of Business, Management, Leadership, Entrepreneurship, and Investment. I mention these series because, in them are many articles contributed by several contemporaries of Gerstner — such as Bill Gates (Microsoft), Larry Ellison (Oracle), Andy Gove (Intel) — contemporaries that he speaks of.
The book has two parts. The first portion highlights companies that have struggled to solve matters within their respective businesses while the second part features firms that successfully overcame obstacles.
From my perspective, the scope of what they did and didn’t do is too narrow when compared to Gerstner’s book in the following sense: with Gerstner, he described to us the context (the market, customers, competitors, employees, culture, leadership) followed by his actions whereas in “Denial,” it’s Tedlow (the author) who tells us the context and then explains the actions or inaction of the business leaders at that time. This gives the impression (at least to me), that the companies spoken of didn’t know (or didn’t make explicit) the context (at least the critical parts relevant to them) in which they operated, i.e., didn’t know their landscape. Of those that did, their landscape and corresponding value chains described were small – made up of a few components – in comparison to Gerstner. If you don’t know the landscape, how can you apply doctrine, climatic patterns, and gameplay on an industry/market level ?
Regarding learning to map, the task is two-fold: to find materials ample enough to cover all the elements of Strategy (in business), and on the other hand, to express them on one or several Wardley Maps. Relevant books and articles furnish us with materials. What’s left, for us learners, is to map them. Laying aside how true they are and to what degree, these materials become common ground to those learning. Imagine a book club, with the added twist that the selected book is mapped, and the subsequent discussions revolve around the maps produced.
Gerstner’s book/memoir furnishes me with such materials with a large enough scope – that of a big, mutlinational corporation – and an acknowledge of the role luck plays in succeeding.
Assumed knowledge and how I’ll quote
Before I proceed to the parts of the Strategy Cycle, I hope you’ve already read Gerstner’s book. Otherwise, I might spoil it for you. I’ll take it apart (figuratively speaking) and place chapters/sections where I think they’d fit on the Wardley Map and the Doctrine cheatsheet without much regard to their sequential order in the book. This is a poor man’s version of Boyd’s “analysis” and “synthesis,” which he taught through a mental exercise that ends up with snowmobiles. I’m hoping this ends up as useful regardless of being small in degree.
Secondly, to keep the article as short as possible, I’ll assume that you’re already familiar to some extent with Simon Wardley, Wardley Maps, and the corresponding terms and symbols (see Figure 60 and 61 in Chapter 6)
Thirdly, to use Gerstner’s words to illustrate Wardley Maps would require quoting from him extensively. E.g., to illustrate the point of “removing bias and duplication” within the “Development” category of Doctrine, I’d show the current state with the appropriate quote (in RED), followed by the decisions reached and actions taken, and finally how this point looked like afterwards (in ORANGE). Limiting myself to only those descriptions of the current state, he says this about “duplication” on page 42:
I returned home with a healthy appreciation of what I had been warned to expect: powerful geographic fiefdoms with duplicate infrastructure in each country. (Of the 90,000 EMEA employees, 23,000 were in support functions!)
Then again on page 64 (note he uses “division” instead of “geography” – the difference is huge especially in the context of a global company):
Today (circa 2001) IBM has one Chief Information Officer. Back then we had, by actual count, 128 people with CIO in their titles—all of them managing their own local systems architectures and funding home-grown applications. . . The result was the business equivalent of the railroad systems of the nineteenth century—different tracks, different gauges, different specifications for the rolling stock. If we had a financial issue that required the cooperation of several business units to resolve, we had no common way of talking about it because we were maintaining 266 different general ledger systems. At one time our HR systems were so rigid that you actually had to be fired by one division to be employed by another.
There are 15 more page numbers (in different parts of the book) that correspond to the different points of Wardley’s Doctrine to show us the situation at the time (what I’m referring to as the “current state”). And that’s just the first part – the current state. There are many other passages on the decisions and actions he took, and what the corresponding result was. To reproduce all that here would definitely overstep the “fair use” policy of copyright in books. Unless one of you know him and can ask permission form him – after all, it’s for educational purposes 🙂
Therefore, I’ll state the page numbers in the relevant sections, which should help you find your way. As seen above, his descriptions are excellent. I know it’s cumbersome to read an article on the one hand, and on the other, to look up pages in another book. Nevertheless, I’d still recommend it. Who knows, you might find even more that I’ve probably missed. I’ll restrict myself to quoting where it matters to make an impression on the mind.
Looping around the Strategy Cycle
I’m referring to Wardley’s Strategy Cycle below:
In this book are, what seems to me, several loops around it:
The first loop consists of chapters 3 to 7.
The second loop consists of chapters 8 to 10.
Another is in Part II of the book.
Yet another is Part III of the book.
Other parts of the book contain more iterations around the Strategy Cycle. For this article, I’ll start with the first loop.
First map and corresponding Doctrine
The map below shows the current state of IBM – recall it’s in the mid-1990s. I’ve kept it simple. I’ve placed the map of Wardley Maps on top of, or next to, what I’d represent as IBM’s map.
Because of this overlay, Point 1 in Figure 2 below shows what has an effect on Doctrine, that is, the internal and external processes on Doctrine, and the most important of all, the messaging – whether it’s something important to the CEO, senior leadership, and to the company. If restricted to the CEO, this shows itself in the what he says, the decisions he makes, and the actions he takes.
An example of this is when Gerstner, having decided to stop milking the Mainframe, re-invests in it in order to lower its prices – good for the Customer; risky for the company in improving cashflow and remaining profitable.
I’ve added the component of “Messaging and Communication” because of Gerstner’s estimation of it during transformational efforts, namely:
The sine qua non of any successful corporate transformation is public acknowledgment of the existence of a crisis. If employees do not believe a crisis exists, they will not make the sacrifices that are necessary to change. Nobody likes change. Whether you are a senior executive or an entry-level employee, change represents uncertainty and, potentially, pain. (p. 77)
The importance of this “Messaging and Communication” component is felt today in other companies. Consider the effect that Jeff Bezos’ letters has had on Doctrine at Amazon. Or the effect from Warren Buffett’s annual letters for Berkshire Hathaway.
Point 2 in Figure 2 above is supposed to show what happened to cause the company to lose market share and money. This made most of the components have the characteristics and properties found in the “Custom” phase.
Point 3 is to show that a lot of uncertainty surrounded the major three components but not “Moral Imperative.” This uncertainty made these components risks. There was no guarantee, as Gerstner explains, that the company would succeed in stopping the bleeding, let alone be profitable. Nevertheless, the “Moral Imperative” was felt keenly and strongly – in the board members, in Gerstner, in the senior leadership team, and in many of the employees.
I’m taking liberties with where I put Doctrine. When I see it in the “Genesis” and “Custom” phases, I interpret it to mean that the Cheatsheet will contain lots of red. As we move through the stages of Evolution, it becomes orange, then green. As I mentioned earlier, I’ve added the page numbers in the relevant boxes, which should help you find your way.
Add Decisions and Actions to the map
The map below shows Gerstner’s decisions and the affected components. This corresponds to the “Decide and Act” part of the Strategy Cycle.
Besides the two decisions that he made early on — keeping the company together instead of splitting it and repositioning the mainframe — Gerstner introduces three initiatives that are shown in the map below.
Keep in mind that I’ve oversimplified the components “External facing” and “internal facing.” What I quoted at the beginning of this article is one of the things that Gerstner says about them.
He further added, that:
Reengineering is difficult, boring, and painful. One of my senior executives at the time said: “Reengineering is like starting a fire on your head and putting it out with a hammer.” (p.64)
Areas of Doctrine affected by Initiatives
These initiatives affected these areas of Doctrine. I’ve kept them colour-coded with the parts of the map.
Initiatives change the map
These initiative, running in parallel, took many years to complete. Nevertheless, even after one year, there was much improvement. Gerstner summarises some of them (see pp. 65-66):
By addressing some of the obvious excesses, he had already cut $2.8 billion from our expenses that year alone. Beyond the obvious, however, the overall task was enormous and daunting.
The map below shows how the components have moved. One point to note is that the dotted red arrows start from where a component was before the initiatives started.
He goes on to tell us:
From 1994 to 1998, the total savings from these reengineering projects was $9.5 billion. Since the reengineering work began, we’ve achieved more than $14 billion in overall savings.
Since he doesn’t mention the time period, I’m assuming a time period of approximately 8 years — from 1993 to 2001 — to improve the area of Doctrine of “Optimise Flow” (in category “Operation”)
Hardware development was reduced from four years to an average of sixteen months—and for some products, it’s far faster. We improved on-time product delivery rates from 30 percent in 1995 to 95 percent in 2001; reduced inventory carrying costs by $80 million, write-offs by $600 million, delivery costs by $270 million; and avoided materials costs of close to $15 billion.
Doctrine is also changing
Some areas of Doctrine are no longer “red” but “amber.” They’re not “green” because the Doctrine component is not yet in the Utility phase and there are also more iterations to come around the Strategy Cycle.
Preparations for the second loop
We’re now in a position to start looping around the Strategy Cycle a second time. Describing it all might be too much for this single article. If you, dear reader, have read thus far, I’ll leave you with the starting point of the next iteration in the map below, where the node “previous Wardley Map” encapsulates the aforementioned maps.
I’ll admit that reading this book several times in order to follow the threads of each point of doctrine, pattern, and gameplay has been weary at times. For the repetitious readings, like the repeated use of sharp knife, often blunts the impact of these impressions on my mind.
On the other hand, by the same repetitious process, I engrave again on my mind those traces that are bound to easily fade.
 – Page numbers are based on the edition, “HarperCollins e-books. Kindle Edition”. Complete title is “Who Says Elephants Can’t Dance?: Leading a Great Enterprise Through Dramatic Change” by Gerstner Jr., Louis V.
What I’ve found helpful in maintaining my ardor as I get to grips with complex topics has been a Wardley Map of a “Cognitive Hierarchy,” a hierarchy I came across a while ago. Even though it’s explained in the context of war, I’ve found it useful when also applied to my studies. Perhaps it might do the same to yours.
Many subjects that I’d like to get into require time from me to understand, even if I limit myself to Hamerton’s definition of “soundness,”  which is below:
The best time-savers are the love of soundness in all we learn or do, and a cheerful acceptance of inevitable limitations. There is a certain point of proficiency at which an acquisition begins to be of use, and unless we have the time and resolution necessary to reach that point, our labor is as completely thrown away as that of mechanic who began to make an engine but never finished it. . . .
Now the time spent on these unsound accomplishments has been in great measure wasted, not quite absolutely wasted, since the mere labor of trying to learn has been a discipline for the mind, but wasted so far as the accomplishments themselves are concerned. . . .
I should define each kind of knowledge as an organic whole and soundness as the complete possession of all the essential parts. For example, soundness in violin-playing consists in being able to play the notes in all the positions, in tune, and with a pure intonation, whatever may be the degree of rapidity indicated by the musical composer. . . .
A man may be a sound botanist without knowing a very great number of plants, and the elements of sound botanical knowledge may be printed in a portable volume. . . .
Suppose, for example, that the student said to himself “I desire to know the flora of the valley I live in,” and then set to work systematically to make a herbarium illustrating that flora, it is probable that his labor would be more thorough, his temper more watchful and hopeful, than if he set himself to the boundless task of the illimitable flora of the world. . . .
Lastly, it is a deplorable waste of time to leave fortresses untaken in our rear. Whatever has to be mastered ought to be mastered so thoroughly that we shall not have to come back to it when we ought to be carrying the war far into the enemy’s country. But to study on this sound principle, we require not to be hurried. And this is why, to a sincere student, all external pressure, whether of examiners, or poverty, or business engagements, which causes him to leave work behind him which was not done as it ought to have been done, is so grievously, so intolerably vexatious.
Since some of these topics are not necessarily related to my job, it means spending some of my spare time on them. Suppose that to acquire soundness in topic ‘X’ requires 40 hours; if I have 2 hours per day that are free from interruptions, I would need 20 days (almost 3 weeks) for such an acquisition. This also assumes that I’m pursuing only that one topic. I leave it you to imagine what happens when tackling other topics at the same time, varying them to break the monotony. After the initial enthusiasm wanes, is endurance called for, so as to maintain the consistency of working on it daily; or like John Foster once called it, “this indefatigable patience of exertion.”
For that, having an assurance that it’s worth it for me is encouraging. This is where having maps that I can frequently review maintains my ardour. They also help me decide whether to pursue a particular subject, and, most importantly, to what extent. After all, “the time given to the study of one thing is withdrawn from the study of another, and the hours of the day are limited alike for all of us.”
What would the map of an individual (in this case, me) look like ? Some aspects are applicable to groups/teams, but I wanted to keep the scope as narrow as possible. Because it’s for an individual, most components are in the “Custom” phase, e.g., the person has to perform analysis; it’s not something that can be delegated/outsourced.
1. The first user need is to understand a topic, especially, as it relates to either help in arriving at a decision (perhaps “to decide” should be the top-level user need) or to see patterns or to anticipate the consequences of others’ (or my) actions. To decide, to see patterns, to anticipate consequences — all these are applicable in many contexts — at work, at home, and in the community. If a topic does not help me with these, I often lay it aside. I’m excluding those that are for amusement — but even with these, it’s almost an impossibility for them not touch those three points.
2. Having selected, and committed to, such a topic, there’s the need to apply “judgement,” which is not only knowing that something is but why it is so. Based on one’s experience, expertise, and intuition, one also develops principles (or the inner workings) that can explain what’s going on. Yet without such experience or intuition, so do they need be built up. One cannot apply the judgement he/she does not posses. Therefore, there’s the need for the next component: if I practise applying these cognitive functions to the processed data, I’ll be able to construct a mental model/picture of the current situation/environment and be able to make decisions that anticipate what others might do, owing to the principles/laws/patterns that have caused the situation in the first place.
3. Once we have various processed data that have been evaluated (either by oneself or by others), there’s the need to apply those “cognitive functions,” to harmonise them. If applied to studies, “comparing text with text,” as Sertillanges encourages us, “making the different sources of information complete, illustrating one with the other, and draw[ing] up your own article.” As he concludes, he reassures us, “It is an excellent gymnastic, which will give your mind flexibility, vigor, precision, breadth, hatred of sophistry and of inexactitude, and at the same time insure you a progressively increasing store of notions that will be clear, deep, consecutive, always linked up with their first principles and forming by their interadaptation a sound synthesis. ”  Such links to first principles lend themselves to drawing Wardley Maps 🙂
That’s where the difficulty manifests itself — where does one begin, and end, with the many resources (print, video, audio, etc) on a topic ? Which of them to gather? How many of them can one get through, knowing that each differs in style, breadth, depth ? How to bring them to terms, to find and state their propositions, their arguments, and their solutions, if any ? Mortimer Adler and Charles Van Doren  help us here. This calls, once more, for that “indefatigable patience of exertion.”
There’s also that feeling that John Foster  so aptly describes:
Is it, then, in the first place, that a man can instantly place himself among the subjects of knowledge, and begin to take possession, without the cost of any tedious forms of introduction? No; he must consume in all a number of years in the acquisition of mere signs; in the irksome study of terms, languages, and dry elementary arrangements. Is it, that having thus fairly arrived within the boundary of the ample and diversified scene, he is certain to take a direction toward the richest part of it, and with the best guides? He may happen to be led by some casual circumstance, or to be attracted by some delusive appearance, to a department where his mind will exhaust its strength in endless toils, to reap nothing but a few vain and pernicious dogmas. He may be as if Adam, when “the world was all before him where to choose,” had been deserted by “Providence his guide,” and beguiled to wonder into what is now Siberia.
Or if a man in quest of knowledge should have directed his view to a more valuable class of subjects, he may waste a great deal of labour and time, and be often tempted to renounce his purpose in disgust, through an unfortunate selection of instructors and guides.
Hence the reason to be severe with those who profess to instruct; and the necessity of critically reviewing each work, such that the criticism serves as a signpost to encourage other travellers to the helpful, or as a warning sign advising them not to approach. This is where Simon Wardley’s “Tomb of Tomes” would come in handy 🙂
4. For that sifting to occur, these have to evaluated based on some criteria — e.g., their importance, relevance, and reliability. But then, the question becomes “important” to whom ? What’s important to me may not be important to you. Moreover, even if I limit this check to myself, what’s important to me now may not be what’s important to me a few months/years’ time. Because I have to apply these criteria frequently, I’ve left this activity in the “Custom” phase.
5. At this point, only one book is under consideration. For it to have been produced required someone to apply the processing functions to raw data.
What limits do I see in such a map have ? Firstly, this map is for a cognitive hierarchy. It’s generic. It’s not specific to any subject nor to any industry/company/team. In order to apply it to something specific, e.g., to learn about AWS or Azure or Bash shell scripting, you’d need to map your industry/company/team to see where such knowledge sits in the phases of evolution. This, in turn, determines how much to invest and what the expected return is. Next is to overlay one map on the other. If the lower components of the chain are seen as commodities in their respective markets/industries, then you can focus on steps 1 and 2 only.
Secondly, this map doesn’t show any higher-order activities that result from, and build on, more commodotised components.
How does such map help me? Firstly, because of the constraint of time, I’d prefer to only perform activities in step 1 and 2. But, lacking those, I have no choice but to continue descending the value chain. For topics that can be traced back to a few excellent books, I skip (or rather, defer) tackling the many books — the second pipeline — and focus on the books that expressed the initial idea. Sometimes, I find it necessary to descend lower, and apply the processing functions to the author’s raw data, if appropriate/applicable. This is one reason I read, with keen interest, the bibliography or references sections of books and article. And why, I, too, include them in what I write.
Secondly, I’ve noticed that the further down the chain I go, the more time I’ll need to ascend up again. I may be on step 5 for months (according to the 2hr per day metric), making some progress, but still at the bottom of the chain. Looking at the user need repeatedly refreshes, renews my vision of the goal and sustains me in my pursuit.
This, I’ve found to be a pleasant side-effect.
 – pp. 20–23 of “Naval Doctrine Publication (NDP) 6”
 – pp. 93-96 of “The Intellectual Life” by Philip Gilbert Hamerton
 – p. 113 of “The Intellectual Life: Its Spirit, Conditions, Methods” by A.G. Sertillanges, translated from the french by Mary Ryan, 1987 edition, reprinted in 1998
 – pp. 114–136 of “How to read a Book” by Mortimer J. Adler and Charles Van Doren
 – p. 118 of “The Improvement of Time” by John Foster, edited by J. E. Ryland (1863) — Google Book
Just as it’s now the norm for applications and systems to run on public cloud infrastructure and platforms, perhaps so too should be the norm for Integrated Development Environments (IDEs) and the corresponding configuration — those tools that help us write software applications — to reduce the yak-shaving.
I recently got a new Samsung phone and didn’t have to reinstall all my apps. I signed in, was asked to confirm my previous handset, and all my apps with their settings were automatically retrieved and setup. Previously, the process involved remembering all the apps and their settings (especially security and privacy settings), downloading them, changing their settings, opening each one of them to check, and then using the app.
Is such a convenient “user experience” too much to ask for a developer’s workspace ? Do we still need to setup our developer environment/workspace again and again each time we change laptops or change teams or projects? Is there a way to have, what Ryan Boyd, in the context of creating a sandbox for Neo4J graph database, so aptly phrased, “fast time to first line of code”?
To explore this, I’ll use a Wardley Map — something I’m learning from Simon Wardley and the community. Because a map, once created and discussed among relevant people, helps one gain awareness of one’s current environment (situation awareness), which gives direction to actions that lead to serving users’ needs effectively and efficiently.
A word on terminology: writing software requires more than an IDE. Besides downloading it, one also needs to configure it, to obtain the project/program files to work on, and other settings/configurations that make it possible to run the program under development. I’ll refer to all these components as a “developer/development workspace”, just as Codenvy uses the term. It differs, naturally, from what the term means in the context of an Eclipse IDE or in the context of “Amazon WorkSpaces.”
Users, User Needs, and User Journeys
Users and their needs, being the anchor of a Wardley Map, will be my starting point. Who uses IDEs and what do IDEs help them achieve? So far, I can think of 5 categories of users and the corresponding “transactions they’re likely to have with the program/application” (by application, I mean any piece of code that’s made available — from simple programs to learn from, such as those in books, to big applications.
The categories are:
Category A — the developer(s) writing the application and making it available;
Category B — those who might contribute to it, i.e., help fix open issues on it or extend it;
Category C — those who’d like to play around, experiment, with it;
Category D — those who’d like to use the application but have no interest in looking at the code — I’ll not go into much detail as far these are concerned. However, this is, in most cases, why the application is built in the first place;
Category E — those who, having found that it solves a problem partially, want to incorporate it into their own application as a 3rd party library dependency.
We have a few needs for different users, whose needs I’ve grouped into “primary” and “secondary” in Table 1 below.
Users’ needs and their relations
The “secondary” needs are the ones I’ll be focusing on. Figure 1, drawn with the Atlas Wardley Mapping Tool, that shows the relationships between the “secondary” needs.
A few notes on this map:
The different users, depending on what they’re working on, can be found in either of the 4 stages of evolution. I put them in “Product” because it’s the most likely.
Depending on the idea, or programming language, “Programming an Idea” can take place in either of the 4 phases of evolution. Ideally, I’d represent this as a pipeline.
A convention for naming needs that’s worked for me so far is to add the past tense suffix if they are required by other components. E.g., from the Programmer’s perspective, the need is to “program an idea;” but when this need is required by “Play/Experiment,” I read it as: “Play/Experiment” needs “Programmed Idea.”
I’ll focus on these 3 users: “Programmer”, “Contributor”, and “Experimenter”, and on the 3 needs: “Program(med) Idea,” “Enable(d) Contributions,” and “Play/Experiment” because they have to setup their developer workspace for the program. One of the underlying components these three need is “Developer Workspaces.” Figure 2 shows this.
Starting from the top of Figure 2, all three users need to have a workspace. All three, in order to fulfill their needs, have to prepare their own workspace. Hence, why I’m placing the component slightly after the custom phase.
In a non-job context (e.g., at home), a developer sets up his own local development workspace. I, like many others, do this several times: every time I have to replace my laptop, or when trying to build and run different projects on my laptop.
Depending on how complex these projects are, so do the setup instructions. As a developer, excited to get, build, and run the code, I would read as accurately as possible, follow each step thoroughly, sometimes all steps work the first time (always an unexpected but delightful surprise), most times not (maybe a specific setting is required on the operating system, etc), which leads to attempts to undo every change in order to start afresh on a clean canvass, until it works.
To give up one project and start on another means undoing all the previous changes, but the effort is sometimes not worth it. And so they stay; configuration for project upon project keeps piling up.
For a new project, the setup process is similar. After a few projects and repetitions, a simpler way is always welcomed.
From the project’s perspective (supplier/provider), any users interested in running the project’s application code will also go through the same process, unless it’s been somewhat automated/created for them (e.g., as a Virtual Machine). From the user’s (demand) perspective, for each different project our developer/experimenter/contributor, is interested in, they’ll have to go through this again and again because each project is likely to be on a different technology stack that relies on different underlying components and versions.
For users, this on-boarding experience is slooow. Doing it for different projects turns the initial delight to tediousness. But then, after several repetitions, we’ve become so used to it to be numb.
On the job, the process is similar but the scope is much wider. Depending on the technical hats I wear (developer, team lead, technology architect), I’m both a user and a provider/supplier.
As a developer, I use what’s available on the project — if it’s automated, great. Otherwise, do it manually & automate it over time.
As one responsible for a team, one component I’m responsible for is the on-boarding experience of new team members — to make it fast and smooth — in terms of tools, access, etc. The worst case is for every new team member to go through the process already described above.
As a technology architect [one definition about the scope of their differing responsibilties is defined on the company website], joining a project, one of the activities is to, if not already done, take care of (describe, specify, define upgrade path of some components, build) the developers’ workspace in the context of build, deploy, release, and operational processes (including tools and the underlying infrastructure) beginning with the project files in source control, onto a developer’s machine, all the way to different development, test, staging, and ultimately production environments.
If I could somehow provide that workspace so that other developers didn’t need to install anything but use existing components (e.g., their browser), then on-boarding would be much faster; and keeping the components standardised, up to date, secure, would simplify this step of the developers’ workflow.
Fast time to first line of code
This is what Eclipse CHE, and its SaaS version — Codenvy (which RedHat acquired in May 2017) — makes possible. Figure 3 shows a simplified value chain.
To start working on a project, I now need to have a browser or a desktop to start working on a project’s codebase. The URL to the workspace is provided by the project (the provider/supplier provides).
“You might find that you’re forced to treat the operating system as more of a product than a commodity because some essential business application [in our case, the build tools and runtime environments] is tightly coupled to the operating system. By understanding and breaking this link, such as forcing the application into a browser, you can often treat a wide number of other components as a commodity.”
As far as I know (and I’m happy to be corrected), other “Cloud IDEs” — Microsoft’s VSCode, AWS’ Cloud9 (which AWS acquired in July 2016)— don’t deal with this problem of developer workspaces. But they do solve the problem of working on the desktop and the browser.
So, as User A (developer/programmer), having created a workspace for a project and made it available via a URL, the other users, User B (contributor) and User C (experimenter), can have a very “fast time to first line of code,” which removes the friction of their meeting their primary needs (job to be done, leisure, or learning).