Pull to refresh
34
-1
Dmitrii Mamonov @dm_wrike

User

Send message

Почему разрабатывать ПО действительно сложно?

Reading time5 min
Views4.1K

Давайте начнем с тривиального, но неоспоримого факта: программное обеспечение постоянно развивается – устаревает и обновляется, видоизменяется и дает дорогу новому.

Заметным исключением является наборная система TeX, разработанная Дональдом Э. Кнутом (D.E.Knuth). Предполагалось, что эта система должна быть совершенной, но даже в ней можно найти свои недочеты. Тем не менее, это уже отдельная тема для другой статьи.

Читать далее
Total votes 20: ↑18 and ↓2+16
Comments11

Сила метаданных в расширяемой архитектуре продукта

Level of difficultyMedium
Reading time6 min
Views1.6K

Расширяемость — это архитектурное качество системы, позволяющее без дополнительных усилий добавлять в нее новые функции. Реализуется это в первую очередь за счет использования метаданных, которые играют решающую роль в создании адаптируемых и расширяемых систем.

Ключевая фраза здесь — «без дополнительных усилий». ПО, несомненно, можно расширить и приложив к этому некоторые усилия по разработке. Вопрос в том, сколько усилий это потребует. 

Как метаданные могут помочь сократить эти усилия? Давайте разберемся.

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments5

Архитектура — Декларативна. Реализация — Императивна. Все остальное — Бюрократия

Reading time14 min
Views8.5K
Что такое Архитектура? Чем Архитектура отличается от Дизайна? Где граница между Архитектурой и Реализацией? Можно ли увидеть Архитектуру? Можно ли тестировать Архитектуру? Чем отличаются Инженерный и Эволюционный подходы к Архитектуре? Что такое Хорошая Архитектура? В чем состоит работа Архитектора? Чем она отличается от работы Разработчика? Какие инструменты доступны Архитектору? Можно ли менять Архитектуру отдельно от Реализации? Есть ли у Архитектуры ДНК?


Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments14

Wrike: 5 лет с OKR

Reading time5 min
Views4.6K
Тема OKR (Objectives and Key Results) сейчас становится все более популярной в бизнесе. Во многих компаниях рассматривают возможность внедрить у себя эту методологию. Мы в Wrike перешли на OKR в 2015 году, и на тот момент это была достаточно новая и малоизученная тема, по крайней мере в нашей стране. Теперь по прошествии нескольких лет кажется полезным рассказать о нашем опыте работы с OKR. И о наших ошибках, которых можно было бы избежать. Оценить общий результат, который мы получили от внедрения OKR в компании. Возможно, наш опыт окажется полезным для тех, кто задумывается о том, стоит ли переходить на OKR.


Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments13

Управление проектами, категория 30+

Reading time4 min
Views9.2K
Стоп, хватит, уберите немедленно! Для того чтобы закрыть провалившийся проект, нужны две вещи: нужно понять, что проект провалился, и нужно его закрыть. Но не все так просто.


Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments0

Японская и Калифорнийская модели Кано

Reading time7 min
Views8.8K
Модель Кано предлагает статистический подход к управлению развитием продукта или сервиса на основе анализа предпочтений пользователей. Модель была разработана японским профессором Нориаки Кано в 1984 году и представляет собой пять категорий, по которым необходимо распределить все ключевые свойства продукта. Дальнейшая стратегия (какие свойства стоит развивать, а какие исключить) строится на базе того, к какой категории конкретное свойство было отнесено потенциальной целевой аудиторией. Такую модель можно назвать классический или японской.

При этом существует и кардинально другой подход, также называемый моделью Кано. Он включает в себя только три категории, а не пять. Его можно назвать калифорнийским или подходом стартапа. И это не просто грубое упрощение, как может показаться на первый взгляд, за этим подходом также стоят свои, вполне разумные идеи.


(The Sushi California Japanese Restaurant 128 University Ave. W. Windsor Ontario N9A 5N9 (519) 258-0806 image by michael)

Для того чтобы понять модель Кано, в первую очередь, следует разобраться в категориях из которых она состоит. Это достаточно просто.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments5

Блиц о микросервисах

Reading time2 min
Views6.6K


Идея микросервисов не нова. Те, кто постарше, возможно, работали еще с EJB в эпоху их расцвета. Да что там, уже Сэмюэль Кольт использовал модульный подход для производства своих револьверов. Стандартные, прецизионно изготовленные детали его пистолетов были взаимозаменяемы, что существенно упрощало как производство, так и обслуживание. Так почему бы и инфраструктуре не быть модульной?

Принципиальных возражений тому нет, да и сама идея лежит на поверхности. Но популярной тема микросервисов стала сравнительно недавно. И тому есть причина.
Читать дальше →
Total votes 36: ↑23 and ↓13+10
Comments16

Опыт 1440 миграций баз данных

Reading time6 min
Views11K


Представьте себе Oracle DBA. Ему уже за тридцать, он слегка полноват, носит жилетку, на шее у него висит секретный токен доступа ко всем базам, а в резюме полстраницы пройденных им сертификаций. Суббота. День большого релиза. Кульминация. Время накатывать изменения на базу данных. Он набирает sqlplus, нажимает ENTER и по черному экрану куда-то вверх, в пустоту, устремляются километры SQL команд. Совсем как в звездных войнах. Спустя пять минут все готово. Через час релиз завершен. Работа сделана, день удался. Теперь можно и по паре пива.
На самом деле нет
Total votes 14: ↑13 and ↓1+12
Comments21

Больше чем Форд

Reading time6 min
Views5.6K
Генри Форд считается иконой современного промышленного производства. Вы, конечно, знаете, что конвейер изобрел не он, но именно Форд первым реализовал массовое конвейерное производство. В 1930-х годах на его заводе в Руж работало более ста тысяч человек, и это в период Великой депрессии.

А вот имя Чарльза Аллена практически никому не известно. При этом влияние идей Аллена на развитие промышленной индустрии, вероятно, даже более значимо, чем влияние Форда. Некоторые из его идей будут полезны и в современном IT.


Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments5

Как сделать Java код проще и нагляднее

Reading time7 min
Views22K
Вы все пишите блистательно,
а я потом добавлю шероховатости.

х/ф Трамбо

Написать Java код не просто, а очень просто. Трудности начинаются, когда его запускают или, хуже того, если его требуется изменить. Открыв свой код двухлетней давности, каждый хотя бы раз задавался вопросом: кто же все это написал? Мы в Wrike разрабатываем продукт и делаем это уже более десяти лет. Подобные ситуации случались с нами неоднократно. За это время мы выработали ряд принципов в написании кода, которые помогают нам сделать его проще и нагляднее. Хотя в нашем подходе нет ничего экстраординарного, он во многом отличается от того, как принято писать код на Java. Тем не менее, кто-то может найти нечто полезное в нашем подходе и для себя.


Читать дальше →
Total votes 26: ↑15 and ↓11+4
Comments38

О’Жаль: Что не так с гибкими методологиями

Reading time6 min
Views9.9K
Используя термин Agile, люди часто имеют в виду не что-то конкретное, но то что они правы. Например, не написал тесты — не Agile, не провел митинг с командой — не Agile, не заполнил тайм-трекинг — опять не Agile. Тому, что каждый трактует термин Agile по-своему, есть объективные причины, связанные с его происхождением.


Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments20

Бег в мешках с завязанными глазами спиной вперед

Reading time7 min
Views10K
Какой язык программирования самый быстрый — не всегда практичный, но крайне любопытный вопрос. Сайт benchmarksgame как раз об этом. Суть проекта в сравнении скорости языков программирования на ряде типовых задач. Надо сказать, что результаты не всегда предсказуемы. Что, если JavaScript такой же быстрый, как и C? Это же скандал!

Гордость и предубеждение


Способность делать что-либо быстро всегда высоко ценится ее обладателем, зачастую независимо от качества исполнения. — Джейн Остин

На benchmarksgame часто ссылаются, чтобы доказать преимущества или недостатки того или иного языка программирования. Однако тут нужно быть аккуратным. Те, кто профессионально занимаются замерами производительности, знают, что в этом деле есть множество подводных камней, и можно легко попасть в просак. Например, виртуальной машине Java нужно некоторое время, чтобы прогреться. Соответственно на слишком коротких тестах результаты будут нерепрезентабельны. К счастью, с точки зрения статистики на сайте используется очень даже систематичный подход.

Но цифрам все равно нельзя верить, и вот почему.


Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments19

Итальянская забастовка роботов

Reading time4 min
Views9.5K
История о том, как развитие автоматизации приведет к краху известной нам цивилизации. Возможно.

В нашем блоге мы уже писали о некоторых последствиях автоматизации в статье "Автоматизируй это". Здесь я попробую рассказать об идеях Мартина Форда и его книге “Rise of the Robots”. Форд задается вопросом, к чему нас, как человечество в целом, приведет дальнейшее развитие роботизации или в более общем случае автоматизации, когда большую часть работы будут выполнять механизмы, роботы и компьютеры.

Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments64

Фактический человеко-месяц

Reading time8 min
Views11K
У нас в Wrike есть традиция делиться с командой мыслями о книгах, которые прочитали. Мы давно думали, что было бы неплохо распространить эту инициативу и на наш блог на Хабрахабре, и вот подвернулся хороший случай — книга Фредерика Брукса «Мифический человеко-месяц».

Книгу можно назвать скорее классикой фольклора разработки, нежели реальным руководством по построению рабочего процесса. В ней отражены проблемы, с которыми Брукс столкнулся при организации работы над созданием операционной системы OS/360, и его подходы к их решению. Результат был далек от идеала, на что сам Брукс и указывает. Его целью было не научить как правильно, но поднять проблемы, требующие решения. Любопытно разобраться, что изменилось в разработке с 1960-х годов.


Фото из архива IBM
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments15

OKR: Как поставить цели и выполнить их на 70%

Reading time6 min
Views124K
Половина успеха в управлении проектами — постановка целей, и это не самая простая половина. Мы в Wrike в свое время основательно озаботились выбором оптимального подхода к целеполаганию на уровне всей компании и отдельных команд, и в итоге остановились на OKR. Изначально концепция Objectives & Key Results (цели и ключевые результаты) зародилась в Intel, но действительно популярной ее сделал Джон Доерр из Google.

Суть OKR состоит том, чтобы исключить способ достижения результата при постановке цели и, вместе с тем, предоставить способ объективной оценки результата.

image
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments14

Когда появится следующий большой язык программирования с точки зрения Дарвина

Reading time9 min
Views42K
Good news everyone!
Futurama


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

Эволюция работает не только в животном мире, но и в любой подходящей среде. Впервые эта идея получила широкое распространение с выходом книги Ричарда Докинза «Эгоистичный ген» в 1976 году. В ней был введен знакомый каждому термин «мем», как пример эволюции в социальной и культурной среде. Языки программирования тоже эволюционируют. А значит их развитие подчиняется принципам эволюции, на основании которых можно сделать предположение о будущем их развитии.

image
Читать дальше →
Total votes 136: ↑119 and ↓17+102
Comments222

Как приручить автотесты

Reading time5 min
Views13K
Додо сказал:
— Правильность формы несущественна! А потом расставил всех без всякого порядка по кругу. Никто не подавал команды — все побежали, когда захотели.

Л.Кэрролл, «Приключения Алисы в стране чудес»


Развивая автоматизацию тестирования, можно найти много мест, куда приложить силы. Распыляя усилия и преследуя ложные цели мы не только потратим время и ресурсы впустую, но и нанесем разработке вред.

image

Если знать, на каком уровне развития находится автоматизация тестирования проекта сейчас и куда в такой ситуации инвестировать, можно не просто добиться большей отдачи, но и улучшить разработку в целом. Основные принципы инвестирования ресурсов можно попробовать сформулировать в виде короткого манифеста.
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments12

Блеск и нищета автоматизации тестирования

Reading time6 min
Views31K
image

Принято считать, что наличие автоматических тестов — это безусловное благо. Если разработчики пишут тесты — это хорошо, чем больше тестов, тем лучше. При этом, в реальности их чаще не пишут, а все тестирование делают вручную.

Не стоит списывать такое положение дел на некомпетентность, глупость или банальную лень разработчиков. По сравнению с ручным тестированием, автоматизированное имеет как достоинства так и явные недостатки. Если бы были одни только плюсы, и говорить было бы не о чем.
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments96

Худой Scrum лучше доброго Agile

Reading time12 min
Views29K
Залп скосил 50 офицеров и 760 рядовых. Французы дрогнули, запаниковали и — обратились в бегство. «Тут дела наши пошли не вполне хорошо», — описывает этот момент битвы официальная французская депеша.

Келли Дж. Порох. От алхимии до артиллерии.

Формирование Scrum команды всегда сопряжено со многими трудностями. Почти все справляются с тем, чтобы изменить порядок рабочего процесса и начать проводить некоторые из необходимых по Scrum событий. Но получить от этих формальных изменений видимую пользу и начать действительно менять рабочий процесс удается меньшинству. В результате у команды формируется следующее мнение о Scrum: “Мы без толку тратим время на митинги. Scrum не работает. Нужно что-то менять”.

Пытаясь как-то спасти положение, активисты Scrum вспоминают, что Scrum — это же еще и framework. Объявляется новая стратегия: “Мы не только Scrum, мы еще и Agile! Мы используем best practices, берем из Scrum только самое лучшее, то, что подходит конкретно для нашей ситуации, а все остальное лишнее и необязательно”. А раз так — “Мы — молодцы и все делаем правильно”.


Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments16

Scrum: Правила Игры

Reading time5 min
Views30K
Про Scrum часто можно услышать фразы вроде «православный Scrum», «мы используем best practices из Scrum» или «что почти всегда остается» от техник Scrum при его реализации.

Говоря это, подразумевают, что Scrum — это некоторая эзотерическая методика, которая неприменима в реальной жизни по той или иной причине. Например потому что «для скрам нужно очень много бабла, а мы должны жить по средствам» или «в Scrum разработчики должны быть супер универсальными, а у нас таких нет». А раз так — делается вывод, что «нужно думать головой», и все нужно делать по-своему. В результате такого подхода в рабочем процессе появляются некоторые улучшения, но в целом ничего не меняется, что еще больше убеждает в том что Scrum — это фантазии не имеющие отношения к реальному миру. Это не так.


Читать дальше →
Total votes 24: ↑18 and ↓6+12
Comments27

Information

Rating
Does not participate
Works in
Registered
Activity