CKEditor

Staramy się optymalizować nasz czas na każdym kroku. Historia CKEditor

Przeprowadziliśmy wirtualną rozmowę z Frederico Knabbenem, założycielem firmy CKSource i twórcą CKEditor, znanego na całym świecie edytora tekstu open source w języku JavaScript (który ma już ponad 30 mln pobrań!), programistą-samoukiem i marketingowcem z wykształcenia. Pochodzi z Brazylii; mieszka w Polsce od 2005 roku i tutaj rozwija firmę. Zapraszamy do lektury!

Frederico Knabben

Kiedy zaczęliście komunikować społeczności, że powstaje projekt CKEditor?

CKEditor został zakomunikowany społeczności w 2003 r. Z jego sukcesu narodziła się firma CKSource, która powstała 3 lata później.

Opowiedz coś więcej o nich obu. Czym jest CKSource i jak działa CKEditor?

CKSource to firma, która ma w swoim portfolio takie produkty, jak CKEditor 5 (wraz z dodatkami kolaboracyjnymi podobnymi do tych z Google Docs), CKEditor 4 (wcześniejsza wersja edytora oparta na zupełnie innej architekturze) czy CKFinder (menedżer plików i zdjęć). 

CKEditor 5 z kolaboracją jest obecnie unikalną propozycją na rynku – pozwala wzbogacić dowolną aplikację pracującą w przeglądarce o takie funkcje, jak: komentarze, śledzenie zmian (Track Changes) czy kolaborację użytkowników w czasie rzeczywistym (real-time collaboration).   

Edytor można też rozbudować o własne funkcjonalności oraz bezpiecznie przechowywać dane na swoim serwerze.

Jakie wtedy spotkaliście reakcje? Już wtedy wiedzieliście, że projekt wzbudzi zainteresowanie?

Na początku byliśmy zajęci zaspokajaniem własnych potrzeb związanych z edytorem pracującym w przeglądarce. Wystartowaliśmy jako projekt open source, publikując CKEditora w SourceForge, czyli GitHubie tamtych czasów. Zainteresowanie rosło szybko. Po roku zgromadziliśmy wokół naszego projektu całkiem sporą społeczność i zdobywaliśmy coraz większą popularność. Po trzech latach CKEditor miał już ponad milion pobrań.

Opowiedz o przygotowaniach do premiery. Po prostu opublikowaliście informacje w SourceForge? Co Twoim zdaniem przyciągnęło społeczność do CKEditora?

Naszym głównym narzędziem był SourceForge. W tamtym czasie krajobraz open source był dużo uboższy i strony typu SourceForge czy Freshmeat (której już nie ma) były najważniejszym źródłem nowości.

Dużo komunikowaliśmy się ze społecznością i często zamieszczaliśmy newsy o postępach w projekcie. A przede wszystkim byliśmy aktywni w issue trackerze. To wszystko oraz jakość naszego software’u przyciągnęło do nas wiele osób.  

Po premierze to zainteresowanie wzrosło? Co daje zainteresowanie społeczności?

Tak, wzrosło. Myślę, że o rosnącym zainteresowaniu zadecydowały przede wszystkim jakość projektu i działania wokół niego. 

CKSource

Na jakich funkcjach CKEditora skupiliście się na początku i dlaczego właśnie na nich?

W tamtym czasie ciągle nierozwiązany pozostawał problem edytora, który działa poprawnie w przeglądarce. Było niewiele propozycji na rynku, z czego większość bardzo niskiej jakości. My chcieliśmy tworzyć nowoczesny, kompleksowy i solidny rich text editor. Na tym się skupiliśmy.

Dlaczego wybraliście JavaScript i dalej rozwijacie projekt właśnie w tym języku?

Zwyczajnie dlatego, że JavaScript jest językiem przeglądarek. Ale stanowił dla nas duże wyzwanie, ponieważ był jeszcze wtedy mało rozpowszechniony oraz daleki od standaryzacji i całego ekosystemu, który za nim dzisiaj stoi. W zasadzie służył głównie do walidacji formularzy. 

Pamiętasz problemy/wyzwania, na jakie wtedy napotkaliście pracując z JavaScriptem?

JavaScript jako język sam w sobie nie był największym problemem, choć oczywiście daleko mu było do dzisiejszego ES6. Prawdziwym problemem były przeglądarki. Mówimy o okresie, kiedy królował Internet Explorer 6 (pierwsza wersja CKEditora była pisana tylko pod IE5.5!), a oprócz niego liczył się jedynie Netscape Navigator. Nikt nie przejmował się standardami. DOM w przeglądarkach i CSS to był jeden wielki bałagan. Edycja tekstu w przeglądarkach dopiero raczkowała. Patrząc wstecz, myślę, że wykonaliśmy robotę na miarę Supermana, tworząc świetny software pod okropną platformę.

Na czym zarabiacie? Kiedy udało się pozyskać pierwszego partnera/klienta?

Kiedy pracowałem nad projektem sam, traktując go jako swoje hobby, otrzymywałem darowizny, popularne w środowisku open source w tamtym czasie. Wraz ze wzrostem naszej popularności zaczęliśmy dostawać coraz więcej zapytań o pomoc i wsparcie. Wtedy też wprowadziliśmy licencje komercyjne, co miało natychmiastowe przełożenie na finanse firmy. Zaczęliśmy pozyskiwać dużych klientów, takich jak Oracle czy IBM. A wszystko to bez teamu sprzedażowego. Mieliśmy tylko stronę internetową i… wysokiej jakości produkt. Dziś mamy 30 mln pobrań i 25 tys. klientów. 

To chyba marzenie – sprzedawać jak w e-commerce. Kiedy do zespołu dołączył pierwszy pracownik?

Nasz obecny CTO, Wiktor Walc, dołączył 13 lat temu. Dziś mamy na pokładzie ponad 45 osób.

W jaki sposób wtedy zarządzaliście zadaniami, a jak wygląda to teraz?

Ciekawe, że jeśli chodzi o kodowanie, wygląda to podobnie. Zawsze mieliśmy centralny system do zarządzania projektami (wtedy SourceForge, teraz GitHub), repozytorium kodu źródłowego (wtedy SVN, teraz Git) oraz wewnętrzny chat (wtedy Skype, dzisiaj Slack). Dzięki temu współpraca zespołowa szła nam gładko. Stawaliśmy się coraz nowocześniejsi, ale jednocześnie zachowaliśmy dobre praktyki z początków.

Na początku byłem tylko ja – sam programowałem i robiłem wszystko wokół rozwoju projektu. Później CKSource zyskało strukturę profesjonalnej i poukładanej firmy z działami odpowiedzialnymi za poszczególne obszary. 

Dziś CKSource jest rentownym projektem?

Tak! CKSource jest rentowną i prężnie rozwijającą się firmą z CKEditorem jako jej flagowym produktem. 

Czy utrzymanie projektu jest dla Was uciążliwe (czy dużo bugów/propozycji zgłaszają użytkownicy i czy wymaga to dużo pracy ze strony autora projektu open source, aby utrzymać rozwój projektu na bieżąco)?

Duża część pracy naszych programistów polega na rozwiązywaniu problemów zgłoszonych przez użytkowników na GitHubie. Organizowanie tego nie jest proste, ale rozwinęliśmy procedury i narzędzia, które ułatwiają nam zarządzanie projektami. I sprawiają, że dobrze się przy tym bawimy.  

CKEditor

Procedury i narzędzia – opowiedz o nich, to na pewno zainteresuje innych twórców projektów open source.

To temat rzeka. Staramy się optymalizować nasz czas na każdym kroku. Na przykład zauważyliśmy, że zdarzało się kilku osobom naraz pracować nad odpowiedzią na GitHubie do tego samego ticketa zgłoszonego przez społeczność. Programista dowiadywał się o tym dopiero po tym, jak wysłał komentarz i po odświeżeniu strony widział tam dodany minutę temu komentarz od swojego kolegi, co było oczywiście frustrujące, szczególnie w przypadku długich analiz i wypowiedzi. Napisaliśmy rozszerzenie do przeglądarek (nazwaliśmy je HangHub), które pokazuje, kto aktualnie ogląda dany ticket czy też pisze w nim odpowiedź. Każdy z naszego zespołu ma je zainstalowane i problem się rozwiązał.

Tworzymy narzędzia do optymalizacji powtarzalnych procesów, jak np. wydawanie nowych wersji oprogramowania (CKEditor 5 to ponad 60 osobnych pakietów na npm!), mamy oczywiście CI. Utrzymywanie bazy kodu w dobrym stanie przez wiele lat wymaga też ogromnej skrupulatności. Podejmując decyzje, zawsze dokumentujemy na GitHubie nasz proces decyzyjny, rozkładając go na czynniki pierwsze, żeby po jakimś czasie rozumieć czemu coś zostało zrobione tak, a nie inaczej. Ogromną wagę przywiązujemy do dokumentacji – pomaga to społeczności zrozumieć nasz projekt, co automatycznie też przekłada się nam na oszczędność czasu. Nie musimy wyjaśniać w setkach ticketów jak zrobić X czy Y.

Ile procent czasu poświęcacie na testy? W jaki sposób organizujecie je?

Testy są dla nas priorytetem. CKEditor 5 ma 100% pokrycie w wysokiej jakości testach. Mamy infrastrukturę zarówno do automatycznych, jak i manualnych testów oraz dedykowany zespół QA. Wysoka jakość naszego produktu zawsze była jego kluczową zaletą.  

Co mogłoby pomóc w rozwoju Waszego projektu?

Więcej programistów z pasją dołączających do naszego zespołu. Niestety na rynku dominują programiści specjalizujący się we frameworkach takich jak React czy Angular, podczas gdy my poszukujemy osób, które chcą i są w stanie programować w czystym JavaScript. Mamy wspaniały zespół i chcemy, żeby rozwijał się dalej. Obecnie to nasze największe wyzwanie.

Czym praca nad projektem open source różni się od pracy nad projektem np. dla klienta?

Trochę się różni, ale jedno uzupełnia drugie. Nasi klienci są świadomi tego, że praca, którą wykonujemy dla nich, jest przekazywana dalej do społeczności open source. Aspekt open source ma dla nich pozytywny wymiar, bo zapewnia transparentność projektu, jakość oraz zaangażowanie społeczności. To sytuacja win-win dla obu stron.

Jaki jest Wasz cel? Co chcecie osiągnąć w ciągu najbliższych lat?

Chcemy wejść na kolejny poziom biznesowy jako firma i dostarczać rozwiązanie, które śmiało zastąpi Google Docs czy Microsoft Word w większej liczbie organizacji. Chcemy współpracować z partnerami. A przede wszystkim chcemy nadal pozostać grupą ludzi, którym dobrze się ze sobą pracuje i którzy mają z tego “fun”.     

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Me at the zoo – czyli nic samo się nie zrobi. Poznaj historię YouTube