
Преамбула
Фирма, в которой я работаю, производит аппаратуру для нейрохирургов и нейрофизиологов, в основе которой лежит технология Читать полностью »

Фирма, в которой я работаю, производит аппаратуру для нейрохирургов и нейрофизиологов, в основе которой лежит технология Читать полностью »
Многие сталкивались с нерелятивистскими искажениями времени разработки крупных проектов. Кажется, что выполнение задачи должно занять один-два дня, а на самом деле требуется две-три недели. Это вызывает вопросы, однако существует красивая метафора для иллюстрации происходящего. Разумеется, как любая метафора, она упрощает ситуацию, поэтому на самом деле ничего не объясняет, но всё же демонстрирует некоторые любопытные механики.

Допустим, мы строим пирамиду из кирпичиков Lego размером 2x2 блока. Сколько потребуется времени на создание MVP (minimum viable product) пирамиды? Столько, сколько требуется для установки одного кирпичика! Допустим, это 1 секунда. То есть мы создали MVP пирамиды за 1 с. Сколько потребуется времени на реализацию v1? Нам нужно установить ещё три детали на уровне 0 и одну на уровне 1. Ещё 4 детали, то есть ещё 4 секунды. А для версии v2? Ещё пять деталей на уровне 0, три детали на уровне 1 и одна на уровне 2 — суммарно девять деталей и ещё девять секунд.
Читать полностью »
Сегодня посмотрим как смоделировать программу с конкурентностью на FSP. Сначала давайте разберемся, зачем вообще нужна конкурентность. Вот что можно сделать с её помощью:

Сгенерированная инструментом LTSA диаграмма состояний
Читать полностью »
Элита программисты или нет, достойны они сверхвысоких зарплат и заслуживают ли особого отношения — вопрос спорный. Очевидно только то, что программист — профессия немасштабируемая, поэтому сравнение с водителем автобуса вполне оправданно. В конечном итоге, программист продает часы разработки. Можно всю жизнь перебирать компании, какая из них больше предложит, но от этого часов в сутках не прибавится.
Лучше брать пример с Тэйлора Отвела, который создавал Laravel в свободное от основной работы время. В ноябре он опубликовал мини-серию подкастов, в которой поразмыслил над успехом своих программных продуктов — за последние 5 лет они принесли ему больше 10 млн долларов. В четырех выпусках подкаста Тейлор поделился советами, которые затрагивают ряд тем от поиска идеи и формирования лояльной аудитории до сохранения мотивации и преданности качеству.
Думаю сейчас самое подходящее время представить конспект его рассуждений. Всего будет опубликовано три конспекта, которые полностью охватят материал первоисточника.
Итак, поехали.
Тренер дает наставление перед игрой:
— Вот ты, Иванов, сколько забьешь бразильцам? Ты же старший ответственный нападающий, мне нужна точная цифра!
Верстаешь экран, и как-то лого не так в правом нижнем углу, начинаешь двигать его вправо-влево-вниз, фигак — уже на обед зовут, два часа улетели куда-то. Или вот сложный таск, разбил его на части: библиотечный и клиентский код; пилишь скромную библиотечку, прям хорошо! Тестами обложил, но в душе знаешь, что будут изменения под клиентский код (а там и тесты нужно будет править :(
И тут приходит «плэнинг» покер, фразы типа фибоначчи «намберс» или стори «поинтс». Напланировали задач на тридцать с половиной часов, и команда разрабов из пяти человек всю неделю пилит и пилит и пилит.
И потом оправдываешься: но вы же знаете, есть три стадии написания кода: 1) сделай, чтоб работало; 2) сделай, чтоб работало правильно; 3) сделай, чтоб работало быстро. Ну ok, до третьей стадии редкий фронтэнд-разработчик допишет, но все же — код был переписан дважды. Или так подробно разъясняешь: любой html разработчик решает задачу: a) просто и неправильно; затем б) сложно и неправильно; затем в) сложно и правильно; затем г) просто и правильно. И это не так просто — многие начинают с пункта «б», да там и остаются.
Читать полностью »

Хабр, привет, это МойОфис. 2019 год стал для нас знаковым. Нам доверяет всё большее число пользователей. Объемы проданных лицензий измеряются сотнями тысяч, более 1 млн бесплатных лицензий было передано в систему образования.
Стремительный рост числа клиентов не позволяет нам сидеть сложа руки. Мы постоянно улучшаем продукт, и в том числе работаем над уникальными функциями которых нет ни в одном другом редакторе, и хотим дать пользователям более приятную и комфортную среду для работы. В этом году наибольшее количество новых функций было реализовано в релизе 2019.03, который мы опубликовали за неделю до наступления Нового 2020 года. И нам не терпится подробно рассказать вам об этом.
Читать полностью »
Российская отрасль инженерного программного обеспечения насчитывает более 50 компаний-разработчиков. По меркам мирового рынка САПР это уже заметная величина. Но знаете ли вы, что российский след есть и в известных западных продуктах, например, в CATIA, BricsCAD, Altium Designer? Многие зарубежные САПР-вендоры открыли в России свои R&D центры или сотрудничают с местными аутсорсинговыми компаниями. Кто они – узнаем под катом.
Кажется, что сфера интернет-рекламы должна быть максимально технологичной и автоматизированной. Ещё бы, ведь там работают такие гиганты и эксперты в своём деле, как Яндекс, Mail.Ru, Google и Facebook. Но, как оказалось, нет предела совершенству и всегда есть что автоматизировать.
Коммуникационная группа Dentsu Aegis Network Russia — крупнейший игрок на рекламном digital рынке и активно инвестирует в технологии, пытаясь в оптимизировать и автоматизировать свои бизнес-процессы. Одной из нерешенных задач рынка интернет-рекламы стала задача сбора статистики по рекламным кампаниям с разных интернет-площадок. Решение этой задачи в итоге вылилось в создание продукта D1.Digital (читать как ДиВан), о разработке которого мы и хотим рассказать.
Читать полностью »
Перед вами перевод статьи из блога Better Programming на сайте Medium.com. Автор, Indrek Lasn, рассказывает об инструментах для отладки кода, которые предоставляет JavaScript.
Просматривая статьи по проектированию ПО, я постоянно встречал тучу невиданных сокращений и вскользь упоминаемых практик разработки.

Подходы к разработке делятся по сложности, областям применения и целям.
Думаю, настало время разобраться, зачем же они нужны, почему их так много, и как они могут быть нам полезны.
Мы начнем знакомиться с ними от самых простых до довольно сложных, рассмотрим примеры использования и плюсы и минусы каждого из них.