Allcancode: from a coding game to a tool that simplifies software production

Allcancode: from a coding game to a tool that simplifies software production


Startup companies are a big trend everywhere in the developed world, especially among younger people. Trends generate hype, and hype creates confusion. Not every newly founded company is a startup and according to Paul Graham in his famous essay “Startup = Growth”:

A startup is a company designed to grow fast.

And in particular:

For a company to grow really big, it must (a) make something lots of people want, and (b) reach and serve all those people.

It is a big decision that you make from the beginning, to run a company as a startup because that means every step you make will be towards the direction of achieving significant growth rates. It also means that if that is not possible, you need to either shut it down or make a pivot. According to the Lean Startup Methodology, to pivot is to:

make a structural course correction to test a new fundamental hypothesis about the product, strategy, and engine of growth.

Many articles have been written on famous pivots. You can find some examples of successful pivots in this infographic. Sometimes pivoting is about targeting a different market with a completely different product, as Nintendo did. At Allcancode we had to make two pivots while sticking religiously to our vision:

Allcancode’s vision is to build a platform where anyone can learn how to code and get the tools required to turn an idea into a software product.

In parallel, all our products are based on an evolving technology foundation, so we never had to start from scratch.

But before talking about our new product (or 2nd pivot), I need to tell our story that includes graduating from Imagine K12 —in a sense the EdTech branch of YC — in Silicon Valley.

Historical context

Let me take you back to August 2011 when I had just exited from my first startup company (Evorad, advanced medical visualization), and I realized that the creation of software should not be the privilege of the few anymore. Just to put you in the context of that time:

That was only the beginning, as coding quickly became a new trend, and a tsunami of initiatives, teaching materials, and tools built up. Coding was soon named “the new literacy.” Big technology companies such as Google recognized an opportunity to increase the supply of software developers to reduce their costs and enable the production of even more software. They could now identify talent from school years and make sure they get the right training at their maximum learning capacity. Many people thought about learning this very well-paid art of programming computers and changing professions. Parents were starting to realize that their kids need new skills to become competitive in a quickly changing job market.

Being one of those guys who started writing code at the age of 10 back in the ’80s, I knew that those students who would fall in love with computers would find their way with or without the specialized training and tools. I was mainly concerned about the 95% of the students who would not become professional developers but would still use computers in whatever profession they would choose to follow. It was apparent to me that spreadsheets, internet browsers, and word processors would soon become obsolete and we would need to learn how to harness the power of computers in solving everyday problems without requiring a professional developer. In the future, after all, those guys will have more complex problems to solve. And believe me, the time when you will order a computer to “build a social network,” and it will utilize advanced AI technology to come up with a Facebook clone promptly… is far away in the future.

Allcancode - phase 1

It was in August of 2011 that the idea of Allcancode was born. I wanted to start with kids — the 95% of kids in primary school classrooms — and I knew it had to be playful, it had to be a game. I talked to a few people in my network, and I built a team. Unfortunately, until Spring 2012 we didn’t manage to produce even a proof of concept of the game. It was mainly my fault as I didn’t know what talent I exactly needed on the team and how we had to approach product development. Therefore I had to pause the project until I would feel ready for a second attempt. At least we had a nice logo:

Allcancode - phase 2

During the summer of 2013, I started teaching coding in Javascript at CoLab Athens, and that inspired me to restart the Allcancode project. In December 2013 a new team was in place and in January 2014, we started working on a coding game. By that time, I had a clear picture of how that game will work so I built a proof of concept using graphic elements I could find on the Internet to communicate the idea to the team. The following screenshot is from that prototype, and you can see it live here!

The very first proof of concept. (Now you know why “Run Marco!” was in a jungle!)

Three months later we had a working prototype with Bobo — the predecessor of Marco — and an initial version of our visual programming language. Kids would guide the character through a series of game levels by giving him step-by-step instructions such as “Move Forward” and “Turn Right.” Now we knew we could do it! The following screenshot is from that version.

The first working prototype of our game

In May 2014, “Run Marco!” was ready for testing and we ran our very first session using an alpha version with kids in June 2014 at the CoderDojoAthens. We also improved our programming language with an animal print texture. A screenshot of that version follows.

“Run Marco!” Alpha

We now also have a new logo! (much better than that of Phase 1)

The summer of 2014 was crucial for the following reasons:

  • I joined the local Founder Institute program (Athens) which helped me understand the Silicon Valley way of going from an idea to a product and a startup company around it. Additionally, I learned how to grow a user base from zero.
  • We incorporated as a Delaware C-Corporation: Allcancode Inc.
  • I engaged many ambassadors of EU Code Week in translating our visual programming language to their mother tongue voluntarily.
  • We built the beta version of the product and got ready to scale distribution.

"Run Marco!" launch

In the fall of 2014, we officially launched our product through an open day that we organized in InnovAthens, where about 1000 people (parents, kids, and educators) came over a weekend to try our game and talk to us. The following photo is from that event.

“Run Marco!” Official Launch (October 2014)

In the fall of 2014, we participated in the international Creative Business Cup competition in Denmark where we did not win, but we established a relationship with the Lego Foundation’s Capital of Children and a new initiative of that time in Billund — the city of Lego — to support products for kids that promote learning through play.

By the end of 2014, we achieved a few more things:

  • the game was available in 14 European languages and featured in EU Code Week’s resources page.
  • “Run Marco!” was certified for kids’ safety.
  • We got featured in Rovio’s initiative for education (not available today).
  • More than 40K kids had played the game.
  • We ran several sessions with kids in schools and special events.

The year at Silicon Valley

2015 was a landmark year for Allcancode. I realized that game production was too slow and we needed a tool with which the artists could lay out game levels, and the game designer could define the rules. A kind of Unity for this specific type of game, which I called “the game editor.” Based on my experience with computer graphics, I knew that was doable, so I started working on a prototype. I admit it was a bad decision at that time because it took longer than I anticipated (always multiply developers’ estimates by three!) and slowed down the production as the team was more or less waiting for me to complete the game editor! However, judging my decision today, it was a good one in the long term because it paved the way for the 2nd pivot.

We managed to present a very rough prototype of the game editor at a CounterPlay ’15 workshop in Denmark while continuing our discussions with the Lego Foundation and the Billund initiative. Those discussions never concluded in any agreement but I need to mention that our interactions with the Lego ecosystem, the Danish people, and their culture were invaluable.

In May 2015 we had reached 100K kids that had played our game, and we joined SETDA as an Emerging Private Sector Partner. SETDA is an association of state education leaders that helped us understand how public education works in the US and build our network of state officials. In June we raised a small angel round, and we participated in the SETDA conference in Philadelphia, where we presented a more functional version of the game editor and our vision for educational games. A couple of days later we attended ISTE 2015 in the same city, where we had the chance to talk with industry leaders and even some of our competitors at that time.

In July 2015, we got accepted by the prestigious Imagine K12, which at that time was in a sense the independent EdTech branch of YC and a few months later (just after our graduation) merged with YC. It is difficult to describe the experience of being in Silicon Valley for about five months and having the chance to meet and talk with some of the people behind the magic happening there. It completely transformed the way I think.

Up to this point, all team members including me had some part-time job to survive. That changed for two of us as we had to relocate to attend the Imagine K12 program.

A summary of what we achieved while two of us were attending the Imagine K12 program:

  • We dropped our visual programming language and switched to Google Blockly, which was rapidly becoming a standard. We had the chance to meet the creator of Blockly Neil Fraser and get feedback and insights on their continuously evolving language. We also got featured in the “Built With Blockly” section of their official page.
  • The first working version of the game editor was ready (it took nine months instead of three…) and “Run Marco!” v3 was built with it.
  • We became partners with Code.org, the official Hour of Code organization.
  • We became partners with BrainPOP, the most popular source of educational games in the US.
  • We presented at the EdSurge Silicon Valley Summit. EdSurge is the TechCrunch for education.
  • We won the iHub Pitch Game of the Silicon Valley Education Foundation
  • We reached 217K MAU in December 2015 following exponential growth.

A slide from our investor deck for Imagine K12 Demo Day

One of the things we realized while we were in the US, is that the game was not enough and we needed to build a platform around it with class management, assessment, and a comprehensive curriculum. Apart from a coding game, we also needed a tool with which kids could create their own games to apply what they have learned in coding and computational thinking.

Presenting Allcancode to select Silicon Valley investors (at Computer History Museum)

In the meantime, we failed to raise VC money, and the capacity of our angel investors to support us was limited. Therefore, I had to choose between:

  1. Creating more content (game levels) and selling it to schools. It was apparent to me that this would bring some cash in but in the long run, we would just be yet another coding game studio in an already over-crowded market.
  2. Or build the platform based on the feedback we got from educators and domain experts in the US market. The platform was aligned with the long-term vision of Allcancode and would give us a chance to get and stay ahead of the pack.

I chose the second option, and we delivered class management and assessment by late February 2016. By June 2016 a prototype of the platform was ready and included the 2nd generation of the game editor as shown in the following screenshots. I was not satisfied with the result and schools closed for summer vacations, so we would not have the chance to test it in the classroom.

Allcancode Platform v2 — In the middle: the game editor

Allcancode Platform v2 — In the middle: the game editor

At this point, I need to provide some background information regarding MAU and exponential growth in Education and coding for kids in particular. We are talking about a challenging market for the following reasons:

  1. Seasonality: Schools are not open 12 months a year and coding, in particular, was not a core subject such as math and science at that time (it still isn’t despite related announcements by government officials around the world). Therefore, there was always a peak around the global Hour of Code event in December and around the end of the school year but in between the numbers were not that good.
  2. Limited budget: The second consequence of coding not being a core school subject is the limited budget for related tools. When that is the case, even teachers committed to teaching the new skills need to prefer free or near-free tools to do their job. Additionally, any budget available for technology had to be first allocated to infrastructure since most schools did not have enough computers and proper internet access.
  3. Overcrowded space: The good part of being in the overhyped market of teaching coding to kids is that everybody understands what you are doing. The bad part is that new products are announced almost every single day, and there is so much noise. We have teachers preferring free tools due to their limited budget, and on the other hand, we have parents preferring tangible toys such as programmable robots since kids appreciate more a shiny big box than an intangible software license.

All those issues were fully justifying my decision to invest in building the platform instead of creating more content, however, we still didn’t have a validated business model. Almost two years after the incorporation of our company, a new major decision was around the corner for the first pivot.

Allcancode - phase 3 (1st pivot)

One of the online platforms that had attracted my attention was Teachers Pay Teachers, a marketplace of traditional paper-based teaching material. Based on statistics we have from our network, 10% of teachers are original creators, 20% are remixers of existing content, and 70% are consumers. All we had to do was to find that 10% and convince them to use our tools to create educational games for coding or other subjects such as math and then sell them to other teachers through our platform. Initial feedback on this assumption was positive so we started working on the 3rd version of the Allcancode Platform that included — guess what — the 3rd generation of the game editor! This time it would allow the end-user to build not only “Run Marco!” but also any other game for coding or any other subject. It took us four months to build a prototype and present it to different groups of teachers, and another two months to make it stable so that users could start creating content. A few screenshots follow.

Allcancode Platform v3
What I could not anticipate at the time the decision was made was:

  1. Teachers would need months to decide the subject they would like to work on, do the instructional design, create the content, and test it in their classrooms to make sure it delivers the promised educational value.
  2. From that 10% of teachers who are original creators, how many have the right skills to create sellable educational games?
  3. Building a marketplace requires enough funding to survive until sufficient supply and demand have been built up. We did not have that cash.

At this point I need to note, that we could not afford an extra developer, so all the software was being built by me while I was the CEO. That is, in general, a bad practice but we had no other choice.

By March 2017, it was apparent that the marketplace would not work anytime soon, and we could not finance it. In the meantime and as the ultimate goal for the Allcancode platform was to enable anyone to build any type of application and not just games, I was working on a proof of concept for an application maker (I got bored building three versions of the game editor, so I needed something more challenging!). The good news was that it did not only work but we also had our first customer and our first project to be built on it. That customer was the reason I rushed to build the application maker in the first place. We now had a Minimum Viable Product (MVP) and it was about time for our second pivot!

Allcancode - phase 4 (2nd pivot)

I have spent most of my career (24 years) in software product development — in industries such as healthcare, engineering, entertainment, education, finance, banking, and logistics — trying to maximize the productivity of programmers at different levels of expertise while ensuring top product quality and end-user satisfaction. Maximizing productivity means fighting the two major enemies of software: time and cost. My approach was to build frameworks of reusable and well-tested software components that would accelerate production by:

  1. allowing developers to focus on implementing the application logic
  2. hiding complex and sometimes dull technologies behind black boxes that exposed a high-level interface that even domain experts could understand

Now you may understand my obsession with the “game editor” that led to the development of the “application maker”. Furthermore, Allcancode is about this passion of simplifying software production extended to apply to anyone and not just professional software engineers. Professionals will never meet the increasing demand for new software, and their scarcity should never hinder new ideas from being realized and tested.

Now the pointer in our timeline is in June 2017. We became recipients of the Hellenic Entrepreneurship Award that apart from the glory could fund our operations — with careful cash management — until we could bring the new product to the market. The big decision is made to pause the coding game and the game creation platform for educators. We didn’t and still don’t want to abandon education for several reasons. But we had to change our focus and business model. There will be a separate post on education as we are planning a few things for 2018.

I formed the new team in September 2017, and an aggressive plan was laid down to turn our initial prototype to a real product by January 2018 while we still use and maintain it on existing projects. That was probably one of the longest living MVPs in history.

So what this new product is all about? Software products can become complex as new technologies emerge and their users’ needs increase and extend. One way to manage complexity is to build software in the way we build Lego models. In this case, the Lego bricks are components, and model parts that can be combined with others to form a model are modules or sets of components that work together. Different people can work on different components and different teams of people on different modules. One person can do this depending on the size of the product or the available time. Ideally, those components could be reusable so that as our software product evolves or as we build new products, we can produce faster as we don’t need to create everything from scratch. This approach is not new; this is what I and many others have been trying to accomplish for years.

The new thing that we introduce with Allcancode is a unified platform that covers from initial design to prototyping to delivering to end-users to measuring the effectiveness and efficiency of the software to returning to any of those steps to make improvements. We are talking about the full cycle of the Lean Methodology delivered through one tool. Moreover, professional developers can utilize their expertise to build specialized components, that are specific to the problem in hand while not wasting their time on more boring ones, and non-technical people can still create applications by reusing existing components and wiring them with some business logic.

It looks like the Holy Grail of software development, and it surely is. Apparently, an impossible feat considering the issues of past attempts such as 4th generation languages, domain-specific languages, and low-code development. Add to that mobile and web applications and suitability for both professional developers and non-technical people and you already have a very complex problem to solve. However, building on decades of experience makes it at least doable.

Providing a set of basic building blocks is not enough. We moved on to building a set of reusable and highly customizable modules starting from Marketing. Our first module collects user interactions from different sources including existing tools one may have (such as current websites, e-shops, mobile apps, etc.) and then automatically analyzes them using machine learning to find user behavior patterns and optimum segmentations.

Our new platform is something like Unity or Wordpress for applications, or even SAP for anything non-ERP related although one could also build an ERP on it. I prefer the Lego analogy. We provide the fundamental building blocks (components) or bricks with which anyone can create anything. In parallel, we offer models built with those blocks (modules) that perform a specific function. At that point is where we make the difference. As in Lego models, one can remove or add components (Lego blocks) to a module (Lego model) to customize it or to turn it into something different! And this is possible because we use those same components to build the module in the first place.

Now that I have built enough hype on our new product, I can challenge you to try it as we are close to launching later in 2018. Feel free to register on our website as there will be a private beta starting from March 2018.

By the way, we also have a new logo:

Epilogue

Allcancode is both a passion and a big adventurous journey for me. My personal goal is to see more people turning their ideas into software products. The abundance of technology and it’s exponential evolution is important. However, for humanity to make the next leap, we need to make that technology accessible to more people and build the tools that will unleash their creativity to its full potential. Robots, take that! :-)