Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

08.09.2008 12:20 | deeper2k

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

Хотелось бы сразу сделать пару замечаний. Во-первых, Стивен читает и пишет примерно в 10 раз быстрее меня, поэтому не удивляйтесь соотношению количества наших публикаций. Только знайте, из нас двоих я более глубокомысленный :-). Хоть, быть может, я просто завидую. Во-вторых, мы стараемся делиться с вами информацией о том, как мы разрабатываем Windows 7, поскольку это позволит нам оставаться в контексте при обсуждение конкретных функций PDC и WinHEC. Мы хотим поделиться с вами тем, как мы проектируем Windows 7 на базе опыта, полученного при разработке Longhorn/Vista. Именно это привело нас к решению открыть блог Engineering Windows 7.

Стивен порекомендовал мне книгу Microsoft Secrets, в которой проведен отличный анализ того, что лично я называю второй версией инжиниринговой системы Microsoft (первая версия была построена на базе индексных карт и "floppy-сетей", которые вам, скорее всего, попросту неинтересны). Вторая версия служила Microsoft хорошую службу гораздо дольше, чем многие предполагали, но опыт Windows XP и Longhorn/Vista показал, что пришло время для изменения подхода к проектированию наших продуктов.

Изменения в XP были вызваны меняющейся обстановкой в сфере безопасности во всей компьютерной индустрии. Увидеть, каким образом полученный нами опыт был воплощен в реальные действия, можно ознакомившись с техникой Security Development Lifecycle, являющейся набор инженерных практик, рекомендованных компанией Microsoft для разработки более безопасного программного обеспечения. Именно эти практики были использованы нами для разработки Windows.

Комментарии к блогу показывают, что качество конечного продукта всегда зависит от многих атрибутов, каждый из которых имеет разную значимость для разных пользователей, при этом у этих пользователей мнения об общем качестве Vista очень сильно разнятся. Я потратил немало времени на ключевую надежность ОС и изучение данных телеметрии, собранных с компьютеров реальных пользователей, пожелавших принять участие в программе Customer Experience Improvement) Я знаю, что в целом Vista SP1 столь же надежен, как XP, а в некоторых областях и более надежен. Именно телеметрия подсказала нам, что требуется исправить в SP1. Мы были рады увидеть, что первое, о чем говорили пользователи Vista SP1, - это сокращение времени входа/выхода из режима сна и гибернации. Телеметрия в перспективе позволит сделать Vista самой надежной из когда-либо выпущенных Windows. К списку несомненных преимуществ Vista следует отнести и двойное сокращение секьюрити-уязвимостей по сравнению с Windows XP. Этот блог о Windows 7, но вы должны знать, что над Windows 7 мы работаем с глубоким пониманием производительности Windows Vista в реальном мире. Пользователи, комментирующие наши статьи, натолкнули нас на некоторые идеи относительно дальнейшего улучшения инжиниринговой системы Windows.

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

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


Качество ежедневных сборок
Ежедневное качество имеет ключевое значение для любого проекта по созданию программного обеспечения, поскольку зависимости от того, сколько работы осталось, необходимо ежедневно принимать решения. Когда ежедневные сборки обладают низким качеством, невозможно узнать, сколько работы осталось до завершения проекта, и в итоге менеджеры проекта могут принимать немало неверных инженерных решений. В связи с тем, что количество наших инженеров растет (в частности потому, что мы хотим сделать больше), важность качества ежедневных сборок принимает особую важность, особенно потому, что возрастает вероятность ошибки программистов. Эта проблема выходит за рамки осознания количества ошибок в продукте. Если бы в этом заключалась вся проблема, то судьба каждого разработчики была бы в его собственных руках. А так появляется еще один побочный эффект, когда у разработчиков нет уверенности для интеграции всех изменений, сделанных в течение дня, в свою личную работу. Когда такое происходит, появляется огромное количество багов, несовместимостей и других проблем, которые сложно было предвидеть, поскольку изменения в коде никогда не сводились в одну сборку ни на одном из компьютеров.

Я подготовил график, на котором проиллюстрирована вероятность сбоя в сборке, вызванная однопроцентной вероятностью появления ошибки в работе отдельно взятого программиста (синий график). Однако, если использовать типичную частоту появления ошибки, то ситуация изменится в худшую сторону. Для информации я включил два дополнительных графика, на которых показано вероятность сбоя в сборке в случае, если сократить вероятность появления ошибки в работе отдельного программиста вдвое (красный график) и в десять раз (зеленый график). Можно видеть, что механизмы, используемые для улучшения ежедневного качества работы каждого инженера, достаточно сильно влияют на общее качество ежедневных сборок.



Для такой огромной команды как Windows выпуск надежных ежедневных сборок является подвигом.
Изменения в Windows 7 были вызваны значительными изменениями в инжиниринговой системе Vista, в частности нашими инвестициями в инфраструктуру автоматизации тестирования среди всех команд Windows (в будущем вы поймете, что между процессом разработки самим по себе и организацией команды есть постоянная связь, которую многие, к сожалению, не осознают). Используя эту инфраструктуру, мы можем отследить и проверить изменения в коде, внесенные каждой командой, до того, как они будут интегрированы в ежедневную сборку. Внутри каждой из команд эта инфраструктура может быть ежедневно использована для выверки изменений в коде от каждого программиста. На графике можно видеть, каким образом сбалансирована вероятность ошибки в сборке в среднем от 40 программистов, работающих в командах Windows 7. И как видите, вероятность сбоя сборки достаточно мала.

При разработке Windows 7 нам удалось добиться, что каждый отдельно собранный билд обладает достаточно высоким качеством. То есть, несмотря на то, что в сборку интегрируется работа всех разработчиков, автоматизация процесса позволяет нам отыскивать и исправлять любые проблемы и, как следствие, обеспечивать высочайшее качество практически каждой сборки. Поверьте мне, я использую Windows 7 в моей обыденной жизни с самого начала проекта и за это время практически не сталкивался с проблемами в ее работе (знаю, что многие энтузиасты хотели бы, как и я, тестировать различные сборки Windows 7, но еще чуточку терпения!).

Для информации приведу парочку фотографий из наших лабораторий сборок, где проводятся различного рода тесты серверных и клиентских версий Windows в режиме 24 часа/7 дней в неделю:



Данная статья – всего лишь капля в море информации о разработке программного обеспечения, на которую я потратил немало своего времени, но надеюсь, что в итоге вам было интересно. Надеюсь, что благодаря приведенному мною примеру вы уловили идею, какими способами мы улучшаем качество разработки Windows. Однако, наиболее достоверным тестом нашему мышлению будет качество конечного продукта. А что думаете вы по поводу этой инженерной проблемы?

Джон ДеВаан (Jon DeVann)
старший вице-президент Windows Core Operating System Division


Источник: http://blogs.msdn.com/e7ru
Перевод: deeper2k

Комментарии

Не в сети

ЧАСТЬ 1

"Я знаю, что в целом Vista SP1 столь же надежен, как XP, а в некоторых областях и более надежен"

- Да, чуть более надёжен к известным XP-аттакам, и абсолютно не надёжен к уже новым Vista-атакам. Всё равно за сторонее ПО-Защиту платить придётся.

" К списку несомненных преимуществ Vista следует отнести и двойное сокращение секьюрити-уязвимостей по сравнению с Windows XP"

- Ценой разжирения кода до неимоверных размеров, и ошибок связанных с такм кодом, которые можно было подправить лишь публичным массовым тестированием beta и RC.

"Качество ежедневных сборок..."

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

"И как видите, вероятность сбоя сборки достаточно мала"
Бла бла бла...Каждый кулик звонит складно и хвалит свой огород.

"При разработке Windows 7 нам удалось добиться, что каждый отдельно собранный билд обладает достаточно высоким качеством. То есть, несмотря на то, что в сборку интегрируется работа всех разработчиков, автоматизация процесса позволяет нам отыскивать и исправлять любые проблемы и, как следствие, обеспечивать высочайшее качество практически каждой сборки."

-Качественный билд в стенах лаборатории это совсем не то ,что и качественный RC 0001. И если качество каждой сборки так высоко, то зачем их столько "каждых " ?

09.09.08 09:13
0
Не в сети

ЧАСТЬ 2

Все переводы на thevista.ru мне нарвятся. Мне не нравиться , что майкрософт, извините меня много пи....олит о том как они теперь всё "хорошо делают" и "прислушиваются к..". Пусть делают молча, без розовых обещаний. Всё равно мы всё с вами увидим потом и оценим. Тем более что если обещания сильно разходятся с результатом это вредит продукту. А если всё делается втихара, и не пиариться вот так по граязному, то даже если в чём то продукт не совершенен он так не отторгается обществом. Это же очевидно ! Балмер без Гейтся видимо теряет нюх.

Еще нарыл инфы про виста от одно довольно сильного программера, который работает на оборонку и хорошо владеет сплит инжинирингом софта. Декомпилить Vista нереально, как он выразился, но по поведению кода, становиться ясно, что в висте очень супер высокоурвонего кода. Т.е. были созданы библиотеки процедур, классов и их методов, а потом написание ос свелось с стилю всё нужное и не нужно подкомпилим (как в Delphi). Скорость написания очень высока, но код жирный и тормозной. Ну если совсем просто то можно так: в Vista очень много написанно на C++, в частности много C++/.NET и около 1% на асме. А WinXP на 10% написан на асме.
Почему так. Потому что они эту ос долго делали, переделывали и в итоге в 2005 начали с нуля. И что бы ускорить написание ос прибегли к очень высокоуровнему подходу. Вот вам и жирный Vista. А теперь они в Win7 переписывают многи части Vista более низкоуровневым кодом. А что нельзя было сразу ? Думали что Виста прокатит...

09.09.08 09:14
0
Не в сети

Plantus, на текущий момент нет эффективных техник атак на Vista - есть лишь proof-of-concept. А что касается блога Е7, то на мой взгляд МС поступает верно - говорит много, не рассказывая практически ничего.

09.09.08 09:28
0
Не в сети

Plantus
Microsoft ничего не пиарит. Человек, просто пишет свой блог, а здесь даётся его перевод, не переоценивайте роль блога
На счёт .NET кода в Висте, приведите информацию по конкретнее, где и что написано под .NET со ссылками, а пока я скажу, что всё там на нативном C++. На .NET может пару игр разве что и то не факт.

09.09.08 11:51
0
Не в сети

Plantus, в Windows Vista НЕТ .NET кода. Media Center не разрабатывался командой Windows, равно как новый Task Scheduler и .NET Framework; они добавлены в ОС гораздо позднее, уже после этапа компиляции сборки.
"Подкомпилим" - это подход управляемого кода, которого в Windows как ОС нет. Поэтому высказывание "а потом написание ос свелось с стилю всё нужное и не нужно подкомпилим (как в Delphi)" необосновано.
Добиться производительности можно и без переписывания кода на низкоуровневый. Для этого оптимизируется существующий код. Используются тесты в Windows Build Lab, которые позволяют оценивать производительность сборок. Есть соответствующие критерии (KPI) по производительности, невыполнение которых определяет сборку как "неудачную". Для каждого этапа разработки ОС (milestones) есть критерии выхода (Miestone Exit Criteria), один из критериев - метрика по производительности. Если эта метрика не выполняется, то нельзя закончить этап, т.е. чтобы закончить этап, вся команда работает над выполнением этой метрики, равно как и других метрик.

Конечно, скорость важна, никто не отрицает. Но после буквально чуть ли не провала по безопасности в Windows 9x/ME и проблем с Windows 2000 Microsoft приложила все усилия к внедрению и обязательному использованию Secure Development Lifecycle, в требованиях для Windows стоит обеспечение безопасности ОС, запущенных приложений пользователя, а так же его файлов в рамках работы с ними под этой ОС. Для Windows Vista действительно нет ни одной уязвимости, по сравнению с Windows XP Gold (т.е. первая версия, до сервис-паков), это огромный прогресс.

Теперь, когда Windows стала более безопасной, мы можем сконцентрироваться на "тюнинге" скорости/производительности в Windows 7, что команда Синофски/ДеВаана и делают.

09.09.08 12:09
0
Не в сети

DanielKornev вы говорите " Теперь, когда Windows стала более безопасной, мы можем сконцентрироваться на "тюнинге" скорости/производительности в Windows 7, что команда Синофски/ДеВаана и делают"

А почему нельзя было сконцентрироваться на тюниге скорости в завершении работы над Vista ? Почему ее продали нам в таком виде ? А теперь они ее тюнингуют и
с нова продадут под названием Windows 7...

SVRC, да на самом деле они пиарят под видом блога. Я думаю у них там даже было серьёзное закрытое совещание в PR отделе, прежде чем такое в блогах писать. А преподноситься как "якобы свободный личный блог".

deeper2k, Знаете, мне было смешно , когда через флэшку на Vista мой комп, проник червь написанный на VB. Создавший на ней Autorun.inf. А потом после его блокирования случилась ошибка на HDD. Каталог в каталоге. Что то типа \Directory Name A\ \Directory Name A\ \Directory Name A\ \Directory Name A\... И после этого пошла сыпаться ФАТ. Еле всё спас через RSTUDIO.

DanielKornev,SVRC,deeper2k - вы ответили мне аргументированно и красиво. Не то что мой деревенский язык. Но , как мне кажется, вы принимаете всё за "Very Good" и искрене верите в блоги майкрософтовских спецов и начальников. Слишком непосредственное восприятие в розовых тонах. IMHO. Надо быть по скептичней. Да ,признаю, BSOD на висте за полгода не видел ни РАЗУ ! А вот , что они сейчас делают и пишут, я думаю сильно расходится. И я также думаю, что MS говорит о Vista, и что там в ней на самом деле, тоже сильно расходится. Вспомните, после не удачного старта, как начали НАСИЛЬНО пихать висту во всякие калькуляторы. Вспомните про спешное заявление и работу над SP1, вспомните о процентах компов, на которых сейчас трудиться VISTa и вспомните наконец, как сейчас начали распиаривать (под видом коментариев разработки) W7. Выводы не напрашиваются ?

09.09.08 20:16
0
Не в сети

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

09.09.08 21:34
0
Не в сети

Plantus писал:А почему нельзя было сконцентрироваться на тюниге скорости в завершении работы над Vista ? Почему ее продали нам в таком виде ? А теперь они ее тюнингуют и
с нова продадут под названием Windows 7...



+1.
И теперь когда они вроде как хотят выпускать новые ОС чуть ли не раз в 2 года - MS здорово поднимет бабла.

10.09.08 11:42
0
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.351 секунд (Общее время SQL: 0.333 секунд - SQL запросов: 69 - Среднее время SQL: 0.00482 секунд))
Top.Mail.Ru