среда, 25 июня 2014 г.

Синхронизация доменной группы с группой TFS


Скрипт, который позволяет синхронизировать доменную группу или группу рассылки с TFS-группой.

Этот скрипт полезен для сценария, когда у вас есть группа рассылки Active Directory, для которой необходимо настроить права доступа в TFS. На TFS нет возможности настройки прав для группы рассылки, поэтому я использую этот скрипт для синхронизации всех учёток из группы рассылки с группой TFS, у которой уже есть необходимые права доступа.

Сценарий.
В моём сценарии группа "TFSUsers" это группа рассылки Active Directory, для участников которой требуется настроть доступ в TFS, а именно, дать им разрешения TFS-группы "Collection Readers". Для этой группы рассылки владельцем назначен руководитель отдела разработки, который может легко менять состав  группы через Outlook. Это является ключевым преимуществом перед группой безопасности (security group) Active Directory, т.к. в группе безопасности чтобы дать права на управление составом, необходимо запрашивать доступ у системных администраторов домена, к тому же руководителю отдела разработки придётся ставить у себя на рабочем ПК консоль Active Directory.
Скрипт создаёт в TFS группу "Users", в которую добавляет всех участников группы рассылки Active Directory - "TFSUsers". После этого в TFS добавляет группу "Users" в группу "Collection Readers" у которой уже есть необходимые права доступа. Этот скрипт можно запускать по расписанию, чтобы синхронизация групп была в актуальном состоянии.


      cls

      # Url TFS-коллекции
      $col='http://tfs:8080/tfs/Collection' 

      $adgroup='TFSUsers' 
      $group = "Users"

      .\TFSSecurity /gd $group /collection:$col  #удалить группу
      .\TFSSecurity /gcg $group /collection:$col #создать группу
      .\TFSSecurity /collection:$col /g+ "Collection Readers" n:$group /collection:$col #добавить группу в существующую TFS-группу



      Import-Module ActiveDirectory
      $users=GET-ADGROUPMEMBER $adgroup -recursive | SELECT-OBJECT SamAccountName


      foreach ($p in $users)
      {
          $user=$p.SamAccountName    
          .\TFSSecurity /collection:$col /g+ $group n:$user /collection:$col
      }

четверг, 19 июня 2014 г.

12 принципов Agile-манифеста

  1. ​​Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения.
  2. Изменение требований приветствуется, даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества.
  3. Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев.
  4. На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе.
  5. Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им.
  6. Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды.
  7. Работающий продукт — основной показатель прогресса.
  8. Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки.
  9. Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.
  10. Простота — искусство минимизации лишней работы — крайне необходима.
  11. Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд.
  12. Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.​
Источник: www.agilemanifesto.org