Pull to refresh
  • by relevance
  • by date
  • by rating

Как «готовить» вашего заказчика

Project management *
Ваш проект это пьеса (надеюсь что не трагедия)

20.37 КБ

Какая цель вашей пьесы?
Цель — сделать счастливым заинтересованных лиц.
Meet stakesholders expectations.

Это не только зрители (заказчики которые хотят все сегодня и за бесплатно), но и сама труппа (ваши программисты, которые хотят попробовать новую игрушку, ничего не хотят документировать, художники которые спят и видят как рисуют космос), но и члены семей труппы (муж дома в 17.30 дома и не уставший по дороге забрал из сада ребенка).

Ваша работа это «make everyone a winner» [Boehm, 1989]. До тех пор пока происходит то, что ожидается — все счастливы. Наш CEO, умный дядька в очках, постоянно говорит: all you need is to make the customers happy. Он о заказчиках, вам же нужно думать и обо всех других.

У каждого кто-то вовлечен в пьесу есть свой интерес. Это либо желания, либо страхи. Желания это получить по быстрому клевенькое симпатичное приложение для аппсторе к какому-то евенту и проверить насколько это была клевая мысль. Желания это интерес что-то получить, страх связан с интересом что-то не допустить.

Зрители слишком сложные существа, чтобы можно было легко определить их страхи и желания. Сами зрители плохо их понимают. Интересы зрителей труппы и членов их семей, слишком противоречивы чтобы можно было легко в одной пьесе «впихнуть невпихуемое», говоря словами ниваловцев. Хороший разработчик это лидер для своего заказчика, в том смысле что, после общения с ним заказчик лучше понимает что хочет.

Читать дальше →
Total votes 33: ↑24 and ↓9 +15
Views 871
Comments 13

Портал EmForge — платформа коллективной разработки

Self Promo
Так получилось, что последние несколько лет мне приходится принимать участие исключительно в распределенных проектах. Руководство проекта в США, business owner во Франции, разработка в России и Бразилии, а тестирование в Китае — это нормальная ситуация. В таких проектах — очень важна грамотная организация коммуникаций. В разных проектах использовались разные системы. Идеала найдено не было, потому то и был написан собственный «неидеал»: EmForge Portal, который я и хочу сегодня представить, надеясь что кому-то он может оказаться полезным
EmForge
Читать дальше →
Total votes 36: ↑29 and ↓7 +22
Views 732
Comments 28

Обзор программ для командного голосового общения

Development of communication systems *
image Проблема голосового общения в сетевых играх, будь то грандиозная MMORPG или простенький сетевой шутер, стоит очень остро. При активных действиях зачастую не хватает времени использовать встроенный в игру чат, а в большинстве случаев использование чата сильно усугубит вашу с напарником ситуацию перед другими игроками из-за расходования времени в пустую, если конечно ваши враги используют голосовое общение.

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

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

В этой статье я рассмотрю четыре самые популярные программы для голосового общения. Встречайте кандидатов — Ventrilo, TeamSpeak 2, TeamSpeak 3, Mumble. Некоторые из них платные, некоторые абсолютно бесплатны, а так же open source, что же, попробуем выявить лучшего кандидата. Изучению поддадутся такие качества «подопытных» как: поддерживаемые кодеки, поддерживаемые операционные системы, количество и доступность серверов, масштабирование, возможность поставить серверную часть у себя на dedicated server, алгоритмы улучшения звука и многое другое.
Читать дальше →
Total votes 33: ↑26 and ↓7 +19
Views 89K
Comments 74

Руководство разработчика Prism — часть 9, взаимодействие между слабо связанными компонентами

.NET *C# *
Translation
Tutorial
Оглавление
  1. Введение
  2. Инициализация приложений Prism
  3. Управление зависимостями между компонентами
  4. Разработка модульных приложений
  5. Реализация паттерна MVVM
  6. Продвинутые сценарии MVVM
  7. Создание пользовательского интерфейса
    1. Рекомендации по разработке пользовательского интерфейса
  8. Навигация
    1. Навигация на основе представлений (View-Based Navigation)
  9. Взаимодействие между слабо связанными компонентами

При создании большого и сложного приложения, обычным подходом является разделение функциональности по отдельным модулям. Также желательно минимизировать количество статических ссылок между этими модулями. Благодаря этому, модули можно будет независимо разрабатывать, тестировать, развёртывать и обновлять. Всё это ведёт к необходимости модулей взаимодействовать друг с другом слабо связанным образом.

При построении модели взаимодействия между модулями, необходимо знать отличия между подходами, чтобы знать, какой из них применить в конкретном сценарии. Библиотека Prism предоставляет следующие подходы:

  • Использование команд (Solution commanding). Используйте для реагирования на действия пользователя.
  • Контекст региона (Region context). Используйте для передачи контекстной информации от host-элемента управления к представлениями в регионе. Этот подход в некотором роде аналогичен DataContext, но не полагается на него.
  • Общие службы (Shared services). Вы можете вызвать метод на сервисе, который, в свою очередь, сгенерирует событие, на которое могут быть подписаны получатели. Используйте этот подход в том случае, если все остальные подходы не применимы.
  • Агрегация событий (Event aggregation). Для передачи сообщений между моделями представлений, презентерами, или контроллерами при отсутствии ожиданий о непосредственной реакции на сообщение.

Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 18K
Comments 6

Ansible и ChatOps или как управлять 100+ серверами из чата

Open source *Python *
Translation
Tutorial
Обновлено: 21 февраля 2017

Ansible и ChatOps при помощи StackStorm, Slack и Hubot

Что такое ChatOps?


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

Можно придумать такие вещи как деплой кода или развертывание серверов из чата, просмотр графиков мониторинга, отправку SMS, управление кластерами или просто запуск shell команд. ChatOps может быть высокоуровневым представлением вашей действительно сложной CI/CD системы, неся простоту с помощью команды в чате вроде: !deploy that thing. Такой подход делает чудеса для улучшения видимости и снижения сложности вокруг процесса развертываний.

Читать дальше →
Total votes 44: ↑43 and ↓1 +42
Views 42K
Comments 19

Кнопочное мышление против целостного IT-продукта

Development Management *Project management *Agile *Product Management *

Эта статья — выражение моей личной боли. Кнопочные решения портят мне жизнь, я трачу время на споры и обоснования.



Когда мы общаемся с коллегами, заказчиками или пользователями, я использую фразу «кнопочное мышление». Что я имею ввиду под этим термином? Текущая статья — развернутый ответ на этот вопрос.



Синонимами кнопочного мышления я считаю «экранное мышление» или преждевременную концептуализацию. Я раскрою мышление кнопками на десятке примеров из практики. А здесь для начала история, которая наверняка случалась с каждым. Представьте к вам приходят и рассказывают о падении конверсии на сайте. А вы ему сразу: «Давайте кнопку покупки сделаем побольше и поярче!». Что произошло? В бизнесе возникла проблема. Вместо погружения в детали, вместо исследования причин, вы играете с размерами кнопки. Вот в таких случаях я говорю о кнопочном мышлении.



Для тех, кто любит смотреть, а не читать, есть видео и слайды.


Читать дальше →
Total votes 39: ↑31 and ↓8 +23
Views 46K
Comments 26

Почему не доказали существование «экстрасенсорной» коммуникации: научный взгляд

Popular science Brain
Recovery mode


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

Идея крайне популярная: по ТВ постоянно крутят навязчивые сериалы про экстрасенсов и гадалок, а в книжном, под гнётом потребительской психологии, целую полку отвели эзотерике. Об экстрасенсорике много говорят, пишут и показывают, и часто не то. Как человека из индустрии коммуникаций меня интересуют следующие вопросы:

  • Как объясняла бы «экстрасенсорную» коммуникацию в случае её существования теория коммуникации?
  • Если предположить её существование, то по каким принципам она должна была бы происходить?
  • Какие коммуникационные ловушки подстерегают исследователей этого феномена?
  • Почему признаки, присущие другим моделям коммуникации, применимы и здесь, как правило обрушивают любую веру в экстрасенсорику и, при желании, помогают разоблачать шарлатанов?
  • Причём тут маркетинг, и почему же он больше заинтересован в продажах явления, а не в доказательствах?

Давайте всё это выясним, опираясь на научный подход. В основном будем говорить о явлении через призму теории коммуникации, плюс пару слов уделим психологии и маркетингу.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Views 11K
Comments 140

Упорядочить хаос

JavaScript *Node.JS *TypeScript *

Как показывает практика, огромная часть проблем возникает не из-за решений самих по себе, а из-за того каким образом происходит общение между компонентами системы. Если в коммуникации между компонентами системы бардак, то, как не старайся хорошо писать отдельные компоненты, система в целом будет сбоить.


Осторожно! Внутри велосипед.

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 3.8K
Comments 0

Связь между C# и C#: REST, gRPC и все, что между

.NET *ASP *C# *
Translation
Существует много способов связи между клиентом C# и сервером C#. Некоторые из них надежные, другие нет. Некоторые очень быстрые, другие нет. Важно знать различные варианты, чтобы вы могли решить, что лучше для вас. В этой статье будут рассмотрены самые популярные на сегодняшний день технологии и почему они так широко используются. Мы поговорим о REST, gRPC и всем, что между ними.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 18K
Comments 11

Фрейминг для разработчиков

Skillbox corporate blog Development Management *Project management *Agile *Product Management *
Translation
image

В социологии есть понятие «фрейм» — это когнитивная структура (каркас), социальный контекст, определяющий наше поведение. Оказавшись в каком-либо месте или ситуации, мы попадаем во фрейм — систему разрешённых и недопустимых действий, определённых установок. Например, придя в офис, мы понимаем, где находимся. Знаем, что здесь можно делать и чего нельзя. Какие действия приветствуются или ожидаются, а какие недопустимы. То есть «офис» — это фрейм (каркас, рамка), состоящий из набора социальных установок, правил и ожиданий.

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

Исправить это можно, если перейти от бэклога к фрейму влияния вашего продукта на рынок и заказчиков. Компания станет успешнее, а разработчики — счастливее.
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Views 3.4K
Comments 7

Сервер Modbus TCP для Simatic S7-1200 / S7-1500

Industrial Programming *Programming microcontrollers *
Tutorial

Первая спецификация протокола Modbus была опубликова в 1979 году. Протокол предназначен для опроса подчиненных устройств по принципу «запрос-ответ». Modbus RTU (Remote Terminal Unit) работает по последовательному интерфейсу передачи данных (RS-232, RS-485, RS-422). Сегодня речь пойдет о немного измененном протоколе, Modbus TCP, работающий на прикладном уровне стека протоколов TCP/IP.

Для начала посмотрим, как настраивается (программируется, если быть точнее) серверная часть. Modbus TCP Server — аналог Modbus RTU Slave, то есть, является подчиненным устройством. Это важно, не путайте. Сервер лишь отвечает на запросы, но не генерирует их.

В данном примере применяется CPU S7-1516 с версией прошивки 2.6. Серия S7-1200 программируется аналогично.

Читать далее
Total votes 3: ↑3 and ↓0 +3
Views 6.8K
Comments 18

Односторонние S7-коммуникации в Simatic. Как организовать обмен ПЛК-ПЛК, программируя и загружая только один ПЛК?

Industrial Programming *
Tutorial

S7-соединения, применяемые для обмена информацией между устройствами серии S7-300, 400, 1200, 1500, являются конфигурируемыми. Это означает, что необходимо явно указать устройствам, кто с кем общается. В общем случае эти соединения являются двунаправленными (двухсторонними или же bilaterally), т.е. добавление конфигурируемого соединения происходит для обоих ПЛК, что приводит к необходимости прогрузки обоих ПЛК. Это не вызывает особенных проблем, если оба ПЛК находятся в ведомстве службы АСУТП предприятия, и для обоих ПЛК есть на руках актуальное прикладное ПО. Но встречаются и частные случаи — необходимо наладить обмен между «старым» S7-300 и «новым» S7-1500, причем, исходники старой программы утрачены. Ну, или эксплуатация просто боится трогать ПЛК. Или эксплуатации просто нет, задача организации обмена «висит» на интеграторе «новой» системы, что приводит к предыдущему условию — трогать ППО неизвестной системы никому особо не хочется.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Views 4.3K
Comments 4

Как проводить 1:1: гайд для разработчиков, а не менеджеров

Development Management *Personnel Management *IT career

Если вы пересекаетесь с вашим линейным менеджером только тогда, когда нужно подписать отпуск или приходите к нему с оффером от другой компании, то что-то идёт не так. Чтобы получать качественный фидбек и расти в желаемую сторону нужно понять, что проведение 1:1 это не обязанность вашего менеджера, а ваша общая. Стоит помнить, что с менеджерами работает такое же правило, как и с разработчиками: хороших меньшинство. Так что если вы оставите проведение 1:1 полностью на них, то рано или поздно вы разочаруетесь. Тут я собрал основные советы о том, как подходить к 1:1 разработчику (на самом деле эти же правила применимы и для любой другой специальности).

Читать далее
Total votes 8: ↑6 and ↓2 +4
Views 5.2K
Comments 7

5 инструментов для удаленной команды Automation QA

IT systems testing *Web services testing *Mobile applications testing *DevOps *
Translation

Кому-то этот пост покажется запоздавшим, кому-то — очевидным. Однако общаясь с коллегами из QA-сообщества я продолжаю сталкиваться с тем, что удаленная работа вызывает кучу неудобств: количество чатов в мессенджерах зашкаливает, нельзя прийти ногами и объяснить все на пальцах или в деталях передать особенности окружения для воспроизведения бага, — хотя все уже давно было создано и внедрено.

За последний год появилось куча новых тулов с прицелом на удаленку, но стоит ли бежать и смотреть их, когда есть старые добрые инструменты? В этой короткой подборке я постарался собрать несколько тулов, которые помогут тестировщикам и тестировщицам облегчить работу с коллегами по цеху, опсами и разработчиками.

ДИСКЛЕЙМЕР: На самом деле у каждого инструмента есть как минимум по несколько альтернатив, выбор из которых может привести к знатному холивару. Если у вас есть свои соображения на тему "автор дурак, надо было брать не Х, а Y", приходите в комментарии!

Читать далее
Total votes 18: ↑13 and ↓5 +8
Views 5.5K
Comments 10