Over engineering

30 янв. 2012 г. | | |

Загадка: "На столе сидело три мухи. Я взял тапок и прибил им одну муху. Сколько мух осталось на столе?"
Официальная отгадка: одна (две других улетели).
Неофициальная отгадка умного человека:
"Если она не прилипла к тапку, то 3;
Если 2 улетели от страха, а одна прилипла к тапку - 0;
Если 2 бесстрашно остались сидеть, и одна не прилипла к тапку - 3;
Если 2 улетели, а одна не прилипла к тапку- 1;
Если 1 прилипла к тапку, а 2 бесстрышно остались сидеть - 2"
Вывод: умные люди даже в простых загадках всегда рассматривают проблему не поверхностно и проводят глубокий анализ ситуации:)"
Дополнение:
Также возможно, что одна муха улетает, другая бесстрашно сидит на столе, а третья прилипает/не прилипает к тапку.
Еще не рассмотрены варианты прилета новых мух, не зарегестрированных на столе в начальный момент времени.
Так же в условии задачи не говорится какую именно муху убили. Может быть случайно мимо пролетавшую, и эти три даже ничего не заметели (а трупик убитой мухи кстати мог упасть на стол).
Так же автор почему-то не рассматривает (что я нахожу крайне странным) возможность встречи стола с антистолом и их анигиляции. В этих условиях поиск решения становится довольно затруднительным.
bash.org.ru 

Возвращение блудных шаблонов в VS

25 янв. 2012 г. | | |

Постигла такая беда: пропали все шаблоны создания новых файлов / проектов в Visual Studio.
Лечится так: в Visual Studio Comand Prompt запускаем команду devenv /installvstemplates.
 

Рейтинг языков программирования

20 янв. 2012 г. | | |

По ежегодному рейтингу языков программирования от компании TIOBE C# поднялся аж на три позиции вверх и занял третье место, догоняя Java,  которая так же остается на первом месте (хотя, если взглянуть на график рейтингов за последние 10 лет, то видно, что она медленно, но уверено теряет). Интересно, что годовая дельта для Java оказалась отрицательной (-0.29%), несмотря на популярность ОС Android как платформы для мобильных приложений. На втором месте восседает С. Поднялся рейтинг и у Objectiv-C, что вполне естественно с ростом спроса на рынке  разработки под айфоны и айпады. PHP сдал аж на две позиции. Но кто меня действительно удивил - так это Delphi/Object Pascal, который умудрился стать более популярным за последний год.


Размышления о качестве

18 янв. 2012 г. | | |

Читаю Э.Голдрат "Цель. Процесс непрерывного совершенствования". Долго откладывала эту книгу в сторону, но пришло и её время. Действительно, хорошая книга. Хоть и не it-тематики, но точки соприкосновения есть. Почитать эту книгу полезно всем, не только управленцам.

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

Это далеко не новость. Но что такое качественный продукт? Первое, что приходит в голову, это программа без ошибок, т.е. тщательно оттестированный функционал, когда пользователь не переживает, что, ткнув не туда, можно завалить программу. Всю качественность функционала может затмить интерфейс, который не позволяет использовать продукт на все 100%. Т.е. интерфейс тоже должен быть качественным, продуманным, позволяя пользователю не тратить много времени на освоение. Это всё? Нет. Бек-сайд продукта - это код. И качественный код != код без багов. Качественный код - это совокупность характеристик, где одно из первых мест занимает качественная архитектура, позволяющая легко и безболезненно развивать продукт. Это тестируемость (testability) кода как подтверждение качества архитектуры.
И, конечно же, качественный продукт в состоянии выпустить только здоровая команда! (Однако обратное выражение не всегда верно) О влиянии отношений внутри команды на продукт была хорошая цитата тут

Здоровые отношения в группе разработки вносят непосредственный вклад в архитектуру системы. Нездоровые отношения и гипертрофированные самомнения порождают нездоровые продукты.

Качество продукта всегда коррелируется временем (сроками) и бюджетом (это внешние факторы) и профессионализмом команды (это внутренние факторы), и эти факторы очень тесно связаны. Бюджет прямо пропорционально влияет на профессионализм команды, а если ужать время, то даже профессионалы не смогут выдать качественный продукт. Тут вспоминается Ф.Брукс и его высказывание "9 женщин не родят ребёнка за 1 месяц" ("Мифический человеко-месяц").  А за то время, что команда новичков будет набираться опыта, продукт успеет устареть или надобность в нём отпадёт.
И напоследок - зачем вобще нужно это качество? Оно является одной из главных составляющих жизнеспособности - т.е. конкурентоспособности продукта, а значит, и успеха проекта.