07 септември 2008

Диктатурата в Опън Сорса

Днес се замислих върху един аспект на разработката на софтуер, върху който в последните месеци не съм се замислял особено. Преди няколко години открих концепцията на отворения код и свободния софтуер. Като цяло идеята ми хареса, но какво разбира едно 16 годишно пишлеменце без понятие от програмиране? Преди близо 13 месеца преминах напълно на Линукс, и разбира се започнах да попивам още повече информация относно тази култура, която дойде с операционната система(културата в последствие се оказа много по благотворно за мен, от колкото самата система, всичко което правя на Линукс, го мога и на уйндолс, но я няма културата). Гледах всеки възможен документален филм, четох много туториъли, както и статии за културата, също така и технически такива. Най- важното от тях се оказа Как да стана хакер. То се оказа важно, защото ме вдъхнови отново да се занимавам с програмиране, дейност с която бях решил да не се занимавам, поради тъпи причини, най- важната от тях беше че ще ми се наложи да работя в офис, зад компютър докато се пенсионирам, със шеф и ще трябва да пиша код по цял ден и общо взето че ще имам скучна работа. Разбира се опън сорс-а ми отвори очите, че има и забавна страна на нещата, всички тези хора пишат код за без пари, най- вероятно е забавно? Защо ще го правят иначе. Това есе беше общо взето началото . По късно следваха есетата на Поул Греам. От тях открих още един начин да избягаш от така наречената “Ферма с кубчета“ , той говори за малки компании, стартирани от хакери, в които те имат контрол, а не мениджърите и хората в костюми. Тези компании наречени “Start-up's“ Са малки, езиците на които се пише софтуера са забавни и мощни(python, ruby), а не скучни и корпоративни(java,C#). Продуктите са интересни и полезни(reddit, youtube) а не скучни(windows, IE). Опън сорс софтуерът и старт-ъп компаниите имат много общи черти, и нерядко са полезни един на друг. Някой от общите им неща са:


  • И двете в повечето случаи се управляват от хакери

  • Като цяло са интересни технологии

  • Създателите им се интересуват повече от това да изкарат добър софтуер, от колкото да печелят пари(старт-ъпите имат интерес от качеството, защото ако е качествено, ще печелят пари, те нямат преимуществата на големите компании)

  • И двата типа модели на разработка имат голям интерес от това потребителите им да са доволни, и често разчитат на това хората да им пращат мнения и препоръки, първите имат нужда от това, защото искат по добър софтуер, и искат софтуера им да се използва от повече хора, същото искат и вторите, но те имат и нуждата да задоволяват клиентите си, клиентът е шефът, те не могат ад си позволят да имат скапана система за съпорт, и много често на телефона на такава компания ще е някой от разработчиците, който познава системата и може дори да оправи проблема ви докато сте на телефона, някой други компании имат некомпетентни телефонистки, които се консултират с мениджърите си, които се консултират с мениджърите на разработчиците, които се консултират с разработчиците, които се консултират със...

  • И двата вида организации са очевидно непрофесионални. При опън сорса това е очевидно, повечето от тези хора са аматьори, които пишат код през свободното си време, всъщност това не е съвсем вярно, защото повечето всъщност са професионалисти, а на някой дори им е работата да пишат опън сорс. Вторите също са професионалисти, защото ръководят компания, но тази компания е малка и тези хора са предимно млади момчета със лаптопи в апартамент, или малък офис. Те не си говорят с пауърпойнт презентации, а си говорят докато пият кафе, не си обличат костюми, а си карат с дънки, не работят от 9 до 5, а когато им се работи. Последното изречение е горе долу вярно и за двете групи.

  • Много често членове на една група, са и членове на друга. Отличен пример са създателите на Django, уеб фреймуъркът за Python, който набира популярност. Създателите му Адриан Холовати и Джейкъп Каплан-Мос работели за малък вестник, когато създават кодът на това което в последствие се превръща в Django, днес Адриан има своя компания, но продължава работа върху опън сорс проектът си Django. Това не е изненадващо, тези хора са едни и същи, те са хакери, културата им е една, просто формата на проектите им е различна. Някой проекти просто трябва да са компании за да могат да оцелеят(youtube), защото имат нужда от силен централизиран контрол, а други не могат да оцелеят като компании(Django), защото опън сорс алтернативите биха ги смачкали(колко от любимите ви сайтове са написани на .net?)



Темата на поста е относно благотворителните диктатори. Може да сте чували термина Benevelont dictator for life(BDFL) Някой от по известните лидери в опън сорс обществото носят тази титла. Горните Адриан Холовати и Джейкъб Каплан-Мос са диктаторите на Django, Гуйдо Ван Россум е диктаторът на Python, Матц е диктаторът на Ruby, DHH е на Rails. Повечето опън сорс проекти имат нужда от някаква силна личност която да води проекта. В повечето случаи това е човекът започнал проекта, но това не е задължително. Няма да влизам в подробности относно вътрешната структура на различните проекти, Ерик Реймънд както винаги се е справил по добре от колкото аз ще мога някога.

Ето някой мои мисли които имах днес докато разсъждавах за начина по който тези проекти се ръководят, както и вътрешната структура на млади компании за които съм чел, както и мисли вдъхновени от горното есе:


  • Ето още нещо което е общо между опън сорс проекти и старт-ъп компании. И двете обикновено започват от един(или няколко) програмисти, със даден проблем който искат да решат. Без значение дали е липсата на добър опън сорс уеб фреймуърк за Python или липсата на свестен сайт за споделяне на снимки, или нещо от сорта, всичко започва с нечия неволя, като резултат обикновено проектите не започват със комерсиална цел, в много случаи дори и компаниите не започват с такава цел, а се превръщат в компании в последствие.

  • За да оцелее проектът в последствие той се превръща или в по голям опън сорс проект, или става компания, понякога става и двете едновременно(Ubuntu)

  • Истински добрите проекти имат един или двама (максимум 3-ма) диктатори, които го ръководят, проекти организирани и създавани от комисии обикновено се оказват или провали, или просто са ниско качествени. При компаниите няма голям избор, защото хората които са на чело, са и собствениците на компанията и те автоматично командват парада като следствие, дори и да позволяват известна свобода на служителите си, те все пак са служители.

  • Диктаторът(или CEO-то) слуша внимателно какво казват потребителите, както и разработчиците, и взема решения базирано на това, понякога обаче не го правят. Ето това е взето от сайта на Python описващо това какво става ако общността не може да вземе консесусно решение по даден въпрос:


If a thread has gone on for dozens or hundreds of posts with no clear consensus emerging, one of two things will happen. Either Guido will make a BDFL pronouncement, which consists of him saying "We'll do it this way", or he's given up on the thread and isn't reading it at all any more. In either case, there's little point in continuing the discussion.


  • Работата на диктаторът/шефът е да движи разработката, и да не позволява на работата да замре, ако софтуерът не напредва като развитие и опън сорс проекта и компанията са застрашени от смърт. Ако Линукс спре да получава пачове, най вероятно ще минем на BSD(или ако сте BSD фенове, приемете метафората на обратно, ако FreeBSD спре да се ъпдейтва, минавате на OpenBSD или Linux)

  • Ако диктаторът види че общността е неспособна да вземе консесусно решение, той го взима вместо тях, но не си позволява просто да прави каквото си иска, за да не го детронират. Шефът на компания обаче няма такива проблеми, неговия проблем са потребителите, той не може да си позволи да прави каквото си иска без да се съобразява с потребителите, защото просто ще загине(метафорично, а ако прехраната му зависи от това, е възможно и буквално).


Това е нормално в Старт-ъп модела, но опън сорса е демократична система, нали? Истината е че опън сорса не е демокрация, а дарвинизъм. Също като старт-ъп компаниите, опън сорс проектите трябва да оцеляват, трябва да се развиват, за целта им трябва силна воля, която големи общности трудно могат да предоставят(има изключения разбира се). Илюзията за демократичност идва от нуждата от опозиция, както и обратната връзка на потребителите, тези неща са много важни за “животните“ , каквито са опън сорс проектите и старт-ъп компаниите. Те нямат привилегията на монополисти. Истината е че те не си приличат само защото се управляват от един и същ вид хора, а защото средата им и опасностите които ги дебнат са близки, те не са от различни планети, за това е логично че и двете имат дробове с които да дишат, и имат очи с които да виждат, и имат нервна система, която е близка, общо взето и двата модела са земни и живеят в истинския свят, ако не живеят в истинския свят в повечето случаи умират(Gnu Hurd, pets.com).


До тези изводи стигнах след като дълго време(от началото на годината) наблюдавам няколко опън сорс проекта, както и няколко млади компании, както и като цяло опън сорс и старт-ъп модела. Също така някой изводи и идеи идват от различни есета, статии, блог постове и мнения във различни форуми, някой от хората пишещи ги дори имат авторитет в хакерските общности, казвам това, защото аз нямам такъв, а говоря големи думи в този пост.

Няма коментари: