публикувано на 30-09-2019

5 причини Софтуерните инженери са художници

Създайте софтуер като Gaudí изгради Sagrada Família

Саграда Фамилия, все още в процес на изграждане. С безплатни снимки на Canva

Откакто се преместих в Ню Йорк от района на Бей преди три години, обмислях как страхотни софтуерни инженери дават чудесна работа. Може ли мисленето и подходът на Силициевата долина да бъдат възпроизведени другаде? Това ме накара да проуча някои от висококачествените проекти за софтуерно инженерство, като Apache Spark, Tensorflow и Ethereum. Но докато пътувах в Барселона миналата година, ми направи впечатление, че Саграда Фамилия може би е един от най-добрите примери за научаване.

Ето пет прилики, които наблюдавах.

1. Дайте творческо пространство на художника

Ако искате да построите кораб, не барабаняйте хората да събират дърва и не им възлагайте задачи и работа, а по-скоро ги научете да копнеят за безкрайното необятно море.
- Антоан дьо Сент-Екзюпери, френски поет
Basilica della Santa Casa в Лорето, Италия. От Масимо Розели от Wikimedia

Първоначално Саграда Фамилия е замислена от Йозеп Мария Бокабела, който, вдъхновен от базиликата Дела Санта Каса в Италия, иска да построи катедрала в Испания. Тогава Гауди получи пълна автономия по отношение на този проект. Той не беше отговорник на задачи, а архитект; артист. Можете ли да си представите дали Bocabella ще диктува кой вид дърво, нарязан камък и парчета стъкло да използвате? При такива обстоятелства вероятно Гауди би отказал работата и щяхме да загубим обект на световно наследство.

Софтуерните инженери също не са задачи - ние решаваме проблеми. Ние сме специализирани в намирането на най-доброто решение за даден проблем. Ето защо технологичните компании като Google и Facebook не се интересуват от кои програмни езици знаете: те търсят способност за решаване на проблеми. Те вярват, че техните инженери ще изберат правилните инструменти за решаване на проблема, точно както Гауди получи пълна свобода да следва визията си за базиликата.

Напротив, често съм виждал компании, в които продажбите или търговията до голяма степен решават какво и как да се изгради софтуер. Този операционен модел възпрепятства тези компании да реализират пълния си иновативен потенциал, тъй като те не се впускат в силните страни на своите строители. Както веднъж каза Бил Кембъл, бивш изпълнителен директор и треньор в Apple, „Оправомощените инженери са най-важното нещо, което можете да имате в [технологичната] компания.“

2. Няма единен правилен начин за правене на изкуство; тя е израз на художника

Няма правила за творчество.
- Лора Яворски, американска авторка и художничка

Когато Гауди пое главния архитект на Sagrada Família, той направи много промени в оригиналния готически дизайн, като включи естествени форми, ориенталски изкуства и уравновесени системи. Някои намеци за оригиналния готически стил остават, но това е далеч от други сгради, построени в тази епоха.

По същия начин, няма един-единствен правилен начин за създаване на софтуер, а само различни компромиси. Facebook е известен с това, че разполага с едно монолитно хранилище с кодове. Това гарантира, че всички проекти и зависимости са съвместими един с друг. От друга страна, Amazon има отделно хранилище за всяка услуга, което позволява по-бързи цикли на итерация, тъй като всяка услуга се изпълнява независимо една от друга.

Софтуерът също отразява авторите си. Tensorflow, рамка за машинно обучение, отворена от Google, завладя стотици хиляди разработчици поради използваемостта, скоростта, качеството на кода и изчерпателната документация. Тези атрибути се свързват директно с основните философии на Google за фокусиране върху потребителите, подчертаване на скоростта и стремеж отвъд величието.

3. Вдъхновението идва от постоянни процедури

Талантът е дълго търпение и оригиналност усилие на волята и интензивно наблюдение.
- Густав Флобер, френски романист
Един от триизмерните модели на Гауд, използван за оценка на структурната цялост на неговите дизайни.

Образът на хората на художници често е живот на релаксиращо творчество. Реалността е, че те разработват рутина и последователно следват. Носителката на наградата Пулицър, Мая Анджелу, ще става всеки ден в 5:30 ч. И ще започне да пише в 7:00 часа в продължение на пет или повече часа. Както Микеланджело заключи: „Ако хората знаеха колко усилено работя, за да получа майсторството си, това изобщо не би изглеждало толкова прекрасно.“

Гауди не беше по-различен. Той изхожда от концепцията за уравновесената система - сгради, които могат да стоят самостоятелно без вътрешна или външна подкрепа. Тъй като този нов архитектурен стил не е бил построен преди, никой не знаеше дали неговите проекти ще издържат на законите на физиката. Неговото решение беше да създаде 3-D модели и да опита стотици конфигурации. Много от финалните му проекти бяха вдъхновени от неговите експерименти.

По същия начин в софтуерното инженерство ходите на работа всеки ден и dayw̶r̶i̶t̶e̶ ̶c̶o̶d̶e̶ ̶f̶o̶r̶ ̶a̶s̶s̶i̶g̶n̶e̶d̶ ̶t̶a̶s̶k̶s̶ дизайнерски решения на проблемите. При постоянство, всеки толкова често ще имате вдъхновение, което води до негативно въздействие. Например група инженери хакнаха срещу софтуер за измама за Paypal. Това накара Питър Тийл да осъзнае, че това може да бъде приложено към проблем, над който той отдавна мисли: националната сигурност. От тази реализация той е съосновател на Palantir, който оттогава е прераснал в компания на стойност 20 милиарда долара.

4. Разбърквайте с леки механизми преди окончателното им прилагане

Творчеството изисква колоездене много идеи. Колкото повече инвестирате в своя прототип и колкото по-близо до „окончателния“ е, толкова по-трудно е да пуснете концепция, която не работи.
- Дейвид Кели, основател на IDEO и d.school University University

Въпреки че постоянството е необходимо, човек също трябва да бъде стратегически. Гауди избра да повтори експериментите си върху своя 3-D модел, тъй като имаше кратък цикъл на повторение. След като вземе решение за конкретна конфигурация, той ще очертае окончателните спецификации за хората да изграждат физическата архитектура, тъй като той методично премина към следващата част на проекта.

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

Веднъж имах ръководител на проекти, който настояваше да „извадим някакъв код“ за следващата фаза на проекта, преди да бъдат събрани изискванията. Причината му, освен да покаже прогрес, беше, че „[всички] ще трябва да рефакторираме кода така или иначе, така че [ние] може и сега да започнем да пишем код. , така че може би трябва да повторим дизайна, докато финализираме функционалните изисквания. След малко напред-назад, в крайна сметка се съгласихме да започнем с дизайна.

Представете си, ако някой от спонсорите на Гауд е казал: „Нека започнем да режем камъни и да ги трупаме, за да можем да покажем напредък“, без да се съобразяваме със структурната цялост на базиликата. Ако някое от парчетата беше поставено неправилно - което вероятно би се случило без неговите модели и експерименти - би струвало много повече усилия за възстановяване на тези разположения. Гауди разумно е избрал да повтори с нещо лесно променящо се - своите 3-D модели - преди да премине към физическа конструкция, точно както правим за изграждането на софтуер.

5. Изкуството никога не е завършено

Не можете да поставите ограничение във времето за творчество.
- Д-р Дре, американски рапър и продуцент на звукозаписи
Жълтите части на модела отразяват това, което тепърва трябва да бъде изградено. През 2015 г. беше изчислено, че 70% от базиликата е пълна.

Леонардо да Винчи веднъж каза: „Изкуството никога не е завършено, а само изоставено.“ На въпрос за бавния ход на строителството Гауди, набожен католик, отговори: „Моят клиент не бърза.“ Когато той починал през 1926 г. , по-малко от 25% от базиликата е била пълна.

Въпреки че беше перфекционист, той също знаеше кога нещо е готово за общо ползване. Например, когато през 1885 г. бяха завършени котешките и олтарни секции на параклиса "Свети Йосиф", той го отвори за литургия на следващия ден. Оттогава стотици милиони са посетили базиликата през различните етапи на нейното строителство.

По подобен начин софтуерът никога не е наистина пълен. Винаги има повече функции за изграждане и повече начини за обслужване на потребителите. От решаващо значение е да се определи кога нещо е готово да бъде освободено, но все пак да се признае, че никога нищо не се усъвършенства напълно. Пример: дори след като Amazon пое онлайн продажбите на книги, тя продължи да разширява своите предложения за подобряване на потребителското изживяване и сега е най-голямата компания за онлайн търговия на дребно в света.

Инженерството и изкуствата често се разглеждат като в противоположните краища на кариерния спектър. Приликите обаче може да са по-чести, отколкото си мислите. Ако всеки ден изпадате в задачи за кодиране, задайте си въпроса: „Мога ли да подхождам по-цялостно към задачите си? Работното ми място осигурява ли среда, която има достатъчно бяло пространство, за да оцветя с моята креативност? “Ако отговорът е„ не “, оставям ви цитат от Smallville:„ Вие бяхте предназначени за много по-важни неща. “

За повече разсъждения в областта на технологичната култура, изграждането на организация и управлението ме последвайте в Twitter @ kenk616.

Вижте също

Какво по дяволите ще направя с моята огромна колекция за писалки за задници?Как лесно да издълбаете парче сапунКакво е истинската реалност?Когато Досадният Гай разказва историиГалерии, ХИВ тестове и ТирамисуПредприемачески поток. Стартиране на творчески проект.