Убедительные коллеги по использованию MVC

Я собираюсь начать работу над новым проектом на несколько новой задаче, и у меня возникла проблема. Они не большие поклонники MVC.

Причина, по которой это меня беспокоит, заключается в том, что они утверждают, что в настоящее время они используют Zend Framework, когда они на самом деле нет. Они едва ли используют классы модели БД, и об этом. Нет MVC, без расширения классов Zend для достижения своих целей.

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

Итак, я спрашиваю вас, сообщество StackOverflow. Как убедить моих коллег перейти к структуре MVC? У меня такое чувство, что они боятся использовать MVC, потому что это будет означать кривую обучения для двух установленных программистов (это небольшой запуск). Я думал о том, чтобы сделать копию текущего проекта с использованием MVC и всей доброты Zend в отдельном репозитории SVN (в свое время) и показать им их через несколько недель, чтобы посмотреть, что они думают.

Любые мысли о том, как преобразовать коллег в MVC?

Ответы

Ответ 1

Там хороший пост, который вы должны прочитать "что самое главное, что они не преподавали в школе". Один из них - социальные навыки. Мне кажется, что ты падаешь на свое лицо здесь.

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

Что вам нужно сделать, так это решить следующую проблему: "Как я могу научиться вписываться в эту команду, помогать проекту успешно и вносить свой вклад?" С этой точки зрения, показывая другим, что вы знаете больше, чем они, и что они идиоты - это не решение.

Расширьте свою перспективу - ваша проблема здесь, вероятно, на 10% техническая, 40% учатся работать в составе команды, 30% социальных и 20% сообщений.

С точки зрения проекта, что вы считаете более важным? Как вы думаете, что проект будет завершен вовремя?

a) Все работают вместе продуктивно и гармонично в неправильных рамках. б) Команда рассталась с 1 человеком, работающим в 1 рамочном плане, а остальные 2 игнорировали его, а все, делающие друг друга, плохо смотрели на менеджера/руководство команды.

Вы заговорили о своей части, теперь заткнись и выполняй ту работу, которую они тебе говорят, делай это хорошо, делай это быстро и, если хотите, поместите столько MVC в нее (свою часть), сколько захочешь пока вы не говорите кому-либо еще, как писать свой код:) Если вы так хороши, вы делаете это быстро, затем попросите их сделать больше работы и повторите шаги выше.

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

Ответ 2

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

Мне тоже это не нравится, но это может быть ваша реальность.

Ответ 3

Это одно из "Вещей, которые вы никогда не должны делать".

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

Перемещает ли MVC наилучшее использование ресурсов прямо сейчас?

Вы не можете считать часы в свое время "свободными", потому что это обман. Вы могли бы сделать что-либо за 0 часов времени компании, если все было сделано в свое время - перепишите его RoR, напишите в Lisp и т.д.

Итак, скажем, что вам понадобится N часов, чтобы написать это. Вы также добавили часы, необходимые для регрессионного тестирования, чтобы убедиться, что он работает отлично? Нет? затем добавьте еще 2N часов. Как насчет ознакомления других разработчиков с новым кодом? Нет? затем добавьте еще 2 часа.

Итак, мы, вероятно, до 5 Н часов. Каковы другие вещи, которые необходимо выполнить перед следующей датой корабля? Можете ли вы также вписаться в эти дополнительные 5N часов и по-прежнему делать эту дату? Если да, то каковы позиции для даты корабля после этого? Являются ли элементы, которые могут быть завершены за 5N часов, стоит больше, чем переписывать в MVC?

Какими будут преимущества, временные и поддерживающие для перезаписи?

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

Ответ 4

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

Маленькие шаги работают лучше всего. Не выходите и не переписывайте 2 недели работы за день, вы только станете выглядеть как задница.

Вместо этого просто сделайте то, что лучше всего, поддерживая в тесном контакте с вашими коллегами. Если они не верят, что они знают все (в этом случае, просто нет никакой надежды для вас) рано или поздно, они спросят ваши советы по вопросам. Просто объясните им, как, и что более важно, почему так, вы решили бы эту конкретную проблему.

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

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

Ответ 5

Вы можете попытаться понять их приоритеты.

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

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

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

Если это просто некомпетентность, тогда образование - это единственный ответ (и какой лучший способ сделать это, чем использование хорошо продуманной структуры?).

Ответ 6

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

Недавно я услышал довольно хороший подкаст/интервью по этой теме: . Там много полезной информации. Самое шокирующее состоит в том, что многие люди просто НЕ НРАВИТСЯ, И НЕ ДЕЛАЮТ ЭТО. Вы должны сделать их частью процесса и получить их вложенные.

Ответ 7

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