sdCloud project blog

Thoughts, stories and ideas on sdCloud and System Dynamics

We are LIVE!!!!

We released! I think that letters in this announcement should be bigger, but anyway, they will never as big as happiness brought to us by that fact.

It was really a long way from idea to what we pushed out in production few weeks ago and I think that it is a good moment to remember how this starts how we came to where we are. Some time ago we were talking with the team and we tried to define when was an official start of sdCloud as a real project. To set up an official project birthday we decided to pick an initial commit to our repository and we found that it was 15th of March 2016. In case someone will decide to send us a birthday cake - please, save the date :).

But besides official project start date, there was a story. I remember around Christmas Eve, my ex-colleague and a good friend, Robert Ward reached me and asked am I aware about system dynamics? I was totally not. Relying on my background in mathematical modelling, he gave me a brief intro into this approach and told that recently (in November 2014), system dynamics community release a spec about persistence of system dynamics models. It was a unified XML based format, called XMILE, that should end a war of proprietary formats used by different modelling applications vendors and allowing modelers to easily migrate from one modelling application to another. After three years, I would say that this goal is still far from being achieved, but another positive effect took place. Introduction of this new format rallied community and boost a lot of activities around tools development for System Dynamics. And Robert introduces an idea of a really cool project that was called sdXchange. Goal of this project was to build a models translator that will be able to translate models between new XMILE and existing available formats. About this approach article was written and Robert performed a talk on this topic on SD conference in Cambridge in 2015. It was actually a great time. I like conferences for bringing a lot of inspiration to people and for interesting moments happening here and there. For example, from that conference, I remember how we were sitting with Robert half an hour before his talk and we were putting together sdXchange web-site based on GitHub pages :).

On the same conference I met James Houghton, who was presenting his PySD project. PySD can also be counted as a kind of modal translator, but his goal was to translate model definitions in XMILE or MDL formats to an executable Python code. Talking with Robert, James and other conference participant we found that there are a lot of interesting tools and ideas around and a lot can be done in this area. While thinking on this further and trying to play with different tools I saw on a conference I was pulling them one by one from GitHub, compiling, adding packages to my Linux machine and finally I came to an understanding that all this things is a nightmare. There must be an easy way to pick a model, pick a tool I need and apply one to another. This results in an idea of creation of cloud-based platform where all these awesome tools can become easily accessible for the people who needs them without paying self-maintenance price when you need a proper OS, proper software and millions of other spare pieces to make thing working as they should.

More than year and a half it takes to build everything from scratch. In this case I'm trying to put in word "everything" as wide meaning as it is just possible. Besides the code we build our lab which is automated and configured, we designed and build continuous integration and continuous delivery chain which allows to build, test and deploy our solution to different environments in less than one click. sdCloud is not a certain amount of code in the repo, it is completely integrated development and delivery infrastructure which outpace many environments used and build by commercial companies.

Yeh... that's all impressing me. Personally, I spent more than ten years working for IT industry giants and, yes, I still impressed with the results and culture of our project.

Some time ago, I was talking with one of my friends and he asked me, what is the key outcome of sdCloud project? I was thinking for a little while, I thought about our process, achievements in science area with published papers and talks on conferences, our developed and released platform, remembered our teambuilding’s and my answer was a "Our team". We did this, we build a great team which puts tons of efforts to make the moment of pressing "Release!" button to come true, to bring the moment when I'm writing this post and many other great moments, for example when we are fixing blockers found by end-users on our production :) We are live-project, everything may happen in every single moment. That is why, the main part of this message - is an attempt to say thank you for everyone who was anyhow involved in this first release.

I don't think that I can enumerate everyone one who crossed our path during recent year and a half, but I'll try to list at least some names. Alexey and Tatiana, made a great contribution into platform internals. Unfortunately, Tatiana decided to pursue opportunities outside our team now, but we will always be thankful for her efforts. Thanks to Timofey and Ivan, our UI developers, who build almost everything end-users can really touch in our products. During whole time we were glad to have Maria on board as a team manager, who helped us to stay on track of our own plans and Olga who was our first end-user who stated to solve real problems with our platform what helps us to realize what kind of issues we have and which complications may user face using our solution. I'm also glad to say thanks to Alena, who helped us a lot with our project logo and style. Special thanks for the people who inspired us to do what we have done, Robert, James, Todd Fincannon (SDEverywhere project)

So, we did it. We gone live and we are ready to go further. Today I checked our design wikis and issue tracker and we do have a lot of cool stuff we are going to deliver. Some ideas look surprising even for ourselves, but we will try. We will try to drive the changes and to bring more new outstanding services that will bring working with modelling on a new level.

Мы выпустились! Я думаю, что буквы в предыдущем предложении должны быть больше, однако, какого бы размера они ни были, они будут несоизмеримы с тем счастьем, которое это событие дарит нам всем.

Это был действительно долгий и не простой путь от идеи до того продукта, который мы выпустили и сделали публично доступным пару недель назад, и я думаю, что это весьма подходящий момент, чтобы вспомнить, как всё начиналось и как нам удалось прийти к этому моменту. Не так давно, мы решили определить, когда именно sdCloud начал развиваться как проект. В качестве официального дня рождения нашего проекта мы решили взять дату первого комита в наш репозиторий, как оказалось, это было 15 марта 2016 года. Так что если кто-то захочет прийти к нам в гости с тортиком - эта дата будет всегда одной из самых подходящих :)

Однако, помимо официальной даты начала проекта, была ещё история. Я помню, как под Новый Год мне написал мой бывший коллега и хороший друг Robert Ward. Он спросил меня знаю ли я что-либо о системной динамике или нет. У меня эта комбинация слов не вызывала никаких ассоциаций. Полагаясь на мои знания и опыт в моделировании, он кратко рассказал мне, как работает этот подход и в каких областях применяется. Также он рассказал, что не так давно, в ноябре 2014 года, сообщество системной динамики выпустило открытый стандарт описания моделей на основе XML, который назвали XMILE. Этот стандарт призван был положить конец войне форматов моделей, которая не позволяла пользователям легко переходить с одного инструмента моделирования на другой. Спустя три года, я могу сказать, что, на мой взгляд, эта цель так и не была достигнута, так как наиболее крупные решения не спешат пока полностью поддерживать новый стандарт. Однако, появление стандарта привело к другим позитивным изменениям в сообществе: активизировалась разработка различных бесплатных решений с открытым исходным кодом для различных задач в области системной динамики. Тогда в самом конце 2014 года, Роберт предложил идею очень интересного проекта, суть которого заключалась в разработке транслятора, который мог бы переводить модели из существующих форматов в XMILE и обратно. Проект получил название sdXchange. Об этом проекте была подготовлена статья и летом 2015го года в Кембридже, на конференции международного сообщества системной динамики, Роберт сделал доклад об этой разработке. Это было очень интересное время. Мне нравятся конференции, потому что они обычно вдохновляют людей. Более того, на них всегда происходит что-то интересное. Например, мне запомнилось, как мы с Робертом за пол часа до его выступления делали сайт проекта sdXchange на основе GitHub pages. :)

На этой же конференции я познакомился с Джеймсом (James Houghton), который представлял свой проект PySD. Этот проект тоже можно рассматривать как специализированный транслятор для моделей, только не из формата в формат, а из описания модели в исполняемый код на языке Python. Общаясь с Джеймсом, Робертом и другими участниками конференции, мы поняли, что существует большое количество интересных идей, реализация которых могла бы принести пользу сообществу. Обсуждая и изучая различные инструменты, представленные на конференции, я пробовал их скачивать с GitHub, собирать, попутно добавляя различные новые пакеты на свою Linux машину и, в конце концов, пришёл к выводу, что этот процесс становится всё более и более трудоёмким. Необходимо дать пользователям возможность получать доступ ко всем этим инструментам более простым способом, чтобы пользователь мог просто взять и применить необходимый ему инструмент к своей текущей модели. Это могло бы сделать использование всех имеющихся инструментов значительно более простым и доступным, от чего выиграли бы все: и их разработчики, и конечные пользователи.

Более полутора лет потребовалось, чтобы спроектировать и построить решение, которое бы решало поставленную задачу. В этом контексте в слова "построить решение" я стараюсь вложить максимально широкий смысл. Помимо разработки самого решения, была с нуля построена наша лаборатория, использование которой автоматизировано для решения практически любых требующихся для нашего проекта задач, включая построение и разворачивание релизных и просто текущих сборок. Был построен полный конвейер, обеспечивающий непрерывную сборку и тестирование, а также автоматизированная система сборки, тестирования и выпуска новых релизных версий с последующей публикацией их на продуктовых серверах. Имея достаточно богатый опыт работы в индустрии, я с уверенностью могу сказать, что процесс, разработанный и автоматизированный в этом проекте, существенно опережает по своей зрелости многие коммерческие компании.

Некоторое время назад, один мой друг спросил меня, что является главным результатом работы нашего проекта? На какое-то время я задумался. Я подумал о нашем процессе, достижениях в области науки, выступлениях на конференциях и написанных статьях, о самой разработанной платформе и наших командных тимбилдингах. Было действительно очень много всего и в каждом этом даже маленьком шаге были мы, все вместе, как одна команда. Именно нашу команду я и считаю нашим главным и общим достижением, команду с которой мы сделали первый коммит 15го марта и команду, с которой мы выпустили наш первый и такой долгожданный релиз.

Я не думаю, что я могу перечислить всех тех, с чьими путями пересекалась дорога нашего проекта. Вне зависимости от того чему нас научили и чем помогли, мы благодарны всем и каждому. Спасибо большое всей команде sdCloud, Алексею и Татьяне, за огромный вклад в разработку нашей платформы, написание статей и участие во многих других активностях. Спасибо Тимофею и Ивану, нашим UI разработчикам, за то, что они предоставили нашим пользователям красивый и удобный интерфейс. Практически с самого начала нашего проекта с нами была и остаётся Мария, которая помогает нам организовывать нашу работу обеспечивая внутренний менеджмент. Отдельное спасибо Ольге, которая стала первым человеком, который начал решать практические задачи на нашей платформе ещё до её выхода, что позволило существенно улучшить качество и удобство нашей системы. Также мне очень приятно высказать слова благодарности Алёне, за обновлённый логотип и креативную поддержку нашего проекта во всех наших начинаниях. Отдельное спасибо всем тем, кто своими работами и поддержкой вдохновлял нас, чтобы мы продолжали делать то, что мы делаем: Роберт, Джеймс, Todd Fincannon (проект SDEverywhere)

Что ж, мы сделали это. Мы выпустили наш первый релиз, и мы готовы двигаться дальше. Сегодня я просматривал вики странички с проектными планами, и у нас ещё очень много того, что хочется сделать и реализовать. Признаюсь, некоторые идеи удивляют даже меня, но мы попробуем воплотить всё это. Мы обязательно продолжим двигаться дальше, меняя процессы моделирования и способы работы с моделями, чтобы вывести их на новый, более совершенный уровень.