Оцените повторную реализацию приложения ASP.NET MVC с использованием Rails - PullRequest
0 голосов
/ 29 ноября 2010

Как можно приблизительно оценить время повторной реализации того же приложения в Rails , если оно уже реализовано в ASP.NET MVC (причина - другая тема, пожалуйста, давайте не будем касаться этого здесь).

Я ищу какое-то отображение метрик или что-то, что могло бы дать приблизительную оценку требуемого времени.

Некоторые подробности о текущем ASP.NET MVC2 (.NET 4)проект:

Метрики проекта

  • Индекс ремонтопригодности - 85,4 (из 100)
  • Испытательное покрытие ~ 80%
  • ГлубинаНаследование - 1,9
  • Класс сцепления - 5,5
  • Строки кода - 17859 (9804 исключая тесты)

Апрокс.количество

  • просмотров ~ 200
  • пользовательских файлов JavaScripts ~ 20
  • cstom CSS-файлов ~ 20

третьих лиц

  • Обработка платежей
  • Gespatial (в MSSQL 2008)
  • Геокодирование карт Google
  • ABRXMLSearch (австралийский сервис поиска ABN)
  • AWS S3

Развертывания

  • Постановка
  • Производство
  • Демо

Что бы я хотелЧтобы увидеть приблизительное количество человеко-часов, необходимых для реализации той же системы, теми же разработчиками (гуру в .NET, но младший-средний уровень в Rails).

Этот проект был реализован примерно в течение 2450 человек.hrs.

ОБНОВЛЕНИЕ (подробнее о проекте) : Не могу много рассказать об этом (вы знаете, все эти NDA), поэтому мне придется обобщить.Это приложение B2B, которое позволяет взаимодействовать между двумя сторонами (провайдер - потребительская система).Потребитель может «делиться» тем, что поставщик ему дает, с другими потребителями (но они не должны об этом знать).Существует ряд «юридических» процессов, которые необходимо соблюдать.Существует множество распределений «многие ко многим» со встроенным поиском и различные правила, связанные с ними, когда потребитель выполняет поиск.Извините за такое "общее" объяснение, но это только то, как далеко я могу зайти.

Какая будет возможная формула для оценки этого числа для проекта Rail.

ОБНОВЛЕНИЕ: Согласно комментариям, другие неформальные способы будут лучше, чем математическая оценка, основанная на формуле (поэтому исключение формулы из вопроса).

Как это возможносделать оценку о повторной реализации проекта в Rails?

Спасибо.

Ответы [ 3 ]

1 голос
/ 29 ноября 2010

Я бы настоятельно рекомендовал не пытаться рассчитать оценку по формуле, подобной той, которую вы предоставляете, или любой другой формуле в этом отношении!

Вместо простых предположений (и чтобы это выглядело как «точная математика»), я бы порекомендовал выбрать один небольшой модуль и переписать его в Ruby и посмотреть, как работает команда.Используйте прошлую производительность (историю) как руководство, а не надежду и слухи.

Учитывая, что система была написана "гуру в .NET, но младший-средний уровень в Rails", я почти гарантировал, что онавам потребуется больше времени (возможно, намного больше), чтобы переписать его в Ruby.

1 голос
/ 29 ноября 2010

Я бы изменил это:

k - корреляция между скоростью разработки в .NET и Rails (~ 0,5)

Для этого:

k - корреляция между скоростью разработки в .NET и Rails (~ 1.5)

Не потому, что Asp.Net> Rails, а потому, что команда не знакома с ним. Мне кажется более реалистичным.

Я как разработчик схожа - чувствую себя довольно комфортно на asp.net mvc и одновременно учусь рельсам. В настоящий момент я не могу работать быстрее на RoR ...

Только мои 2 цента ...

0 голосов
/ 29 ноября 2010

Чтение кода сложнее, чем написание кода. Я подозреваю, что это займет больше времени, чем вы думаете, и, вероятно, дольше, чем оригинальная реализация.

Интересна взаимосвязь разработки между Ruby и .NET (.5). Откуда это взялось? Я предполагаю, что вы довольно хорошо знакомы с Ruby, учитывая, что вы думаете, что его разработка в два раза быстрее, чем .NET, и вы потратили всего 80 часов на изучение Ruby.

У меня нет формулы для этого, потому что любая формула, которую вы используете, будет неточной и лучшей догадкой.

Я бы скорее оценил проект так же, как вы оцениваете обычные проекты. Вместо того, чтобы сравнивать исходное время разработки с ответом, на самом деле оцените, сколько времени потребуется для реализации проекта в Ruby (забыв, что вы уже сделали это).

Ознакомьтесь с этой статьей для более глубокого обсуждения того, почему переписывание с нуля, даже на одном языке, почти всегда является плохой идеей:

http://www.joelonsoftware.com/articles/fog0000000069.html

...