Як переконати товариша по команді, який бачить себе старшим, засвоїти концептуальні основи SVN? [зачинено]


40

Для початку я почав займатися новою посадою розробника цього літа і в кінцевому підсумку став новим членом команди, але з найбільшим досвідом роботи.

Поки що мені вдалося досить легко просунути ініціативи з охорони здоров’я через низькі витрати на усиновлення (з точки зору часу та зусиль). Однак справи трохи вирівнялися.

Один з моїх товаришів по команді, хоча і досвідчений, не дуже розуміє SVN. Природно, порожні області на його ментальній карті із зображенням океанів СВН змушують його прийняти досить дивні схеми використання.

Наприклад, він оголосив політику "1 SVN комісія на день на розробника", оскільки в іншому випадку "серверу незабаром не вистачить місця на диску". Коли я пояснив йому, що події SVN - це дельти, а не повні копії, він відповів сумнівом, і навіть сьогодні я не зовсім впевнений, чи розуміє він, що це означає.

У нас також був бурхливий аргумент щодо того, чи потрібно включати .projectконфігурацію Eclipse у SVN. Мій товариш по команді наполягав, що ми повинні, хоча це спричинило численні безглузді конфлікти. Я був проти збереження окремих файлів конфігурації розробника у SVN. Нарешті, виявилось, що мій товариш по команді мав практику повторної перевірки всього вихідного дерева після кожного зобов’язання, щоб просто переконатися, що "код, виконаний у сховищах". Це було причиною того, що він настільки прихильний до збереження конфігурації проекту у SVN - тому його буде легко повторно імпортувати. Коли я пояснив, що виконувати синхронізацію робочої копії з віддаленим байтом за байтом, що робить повторну перевірку непотрібною, мій товариш по команді знову відповів сумнівом і, врешті-решт, відкинув всю проблему як незначну.

На мою думку, наша команда витрачає час, вирішуючи конфлікти SVN у файлах конфігурації проекту, які містять лише специфічні для розробника налаштування, які взагалі не повинні надаватись SCM. Все це безлад, тому що хтось адаптував процес навколо неправильних припущень.

Як я можу переконати товариша по команді, який вважає себе старшим, краще зрозуміти основи SVN?


5
Ви читали технічні зміни водіння ? Це може бути актуальною прагматична книга програмістів. У ньому представлені зразки людей, які виступають проти змін та методи подолання цих конкретних груп людей. Я все ще читаю його, і зараз у мене його немає, тому я не можу його цитувати, але це звучить відповідно до вашої проблеми.
Томас Оуенс

@MarkTrapp - Більшість вищезазначених коментарів насправді не пов'язані з темою питання. Він почався як відповідь на сторону, що пояснює, як виникають конфлікти і закінчуються як своєрідна мовна війна. Я погоджуюсь, що це трохи надмірно, але потім ми ще не закінчили нашу дискусію.
Відважний анонімний боягуз

@CourageousAnonymousCoward Добре, я збираюся потім прибрати ці коментарі: ви можете продовжити свою дискусію в чаті . Як я вже говорив, коментарі до питань призначені для уточнення та зворотного зв’язку щодо самого питання, а не для тематичних та дотичних розмов, не пов'язаних із покращенням питання. Дякуємо та вітаємо програмістів!

4
Познайомте його з git. "Гей, подивись на наступне покоління СКМ". Вивчивши поняття git, у нього не виникне проблем із розумінням SVN. Це може здатися менш образливим, оскільки він (швидше за все) ще не використовує git.
kizzx2

1
@CourageousAnonymousCoward - це завжди розчаровує, коли люди, які здійснюють контроль над тим самим, не згодні. Це саме та ситуація, коли лідер (який має більше повноважень здійснювати більше контролю) повинен втручатися. Проблема в тому, що людям, що займаються, важко попросити допомоги. Заради команди хтось повинен запитати.
ГайР

Відповіді:


30

ІМО найкраще відокремити ті питання, які спричиняють прямі проблеми / шкоду для проекту, від тих, які стосуються лише одного розробника . Наприклад, якщо він вважає за краще перевіряти все кілька разів на день, це сповільнить його, але в іншому випадку не вплине на інших. Тож ви можете просто дозволити йому це зробити (поки не буде помітно відставання в його роботі) і вберегти себе від неприємностей сперечатися.

Інші проблеми, про які ви згадуєте, як, наприклад, зберігання Eclipse- .projectфайлів у репо, або 1 фіксація в день, - це те, де вам слід зосередитись, щоб дозволити команді просуватися як можна більш плавно. Перш за все, вам слід запитати / збирати відгуки у інших членів команди , чи це також викликає проблеми у них. Якщо є інші, разом ви можете чинити більший тиск , і, якщо потрібно, ви можете простіше розширити питання до управління.

Щодо "у SVN не вистачає місця на диску", було б легко спростувати його переконання, експериментуючи (можливо, в окремому тестовому репо). Вам просто потрібно стежити за розміром ієрархії фізичних файлів репо до і після внесення змін в один величезний текстовий файл або навіть безліч файлів. Якщо це не переконає його, нічого не зможе.

У цьому випадку, на жаль, у вас, мабуть, виникає владна проблема, коли інший хлопець бачить прийняття порад від когось «нижчого за рангом» як втрату своєї гідності. Такі конфлікти неможливо вирішити логічним аргументом. Вам потрібно розгорнути це до управління, але будьте обережні, щоб мати достатню підтримку (з боку товаришів по команді та / або управління), перш ніж це зробити. Такий хід може сприймати інший хлопець як відкриту атаку, тому може мати проблемні наслідки (для когось із вас та / або спокою всієї команди). Тому подумайте тричі і обговоріть з колегами, які підтримують, перш ніж зробити цей крок.


2
Моє враження, що мій товариш по команді просто хоче продовжувати, як це робив дотепер, і він насправді не зацікавлений у раціональній дискусії чи фактах. Однак я хотів би використовувати позитивну мотивацію, як-небудь викликати його інтерес до належного використання SVN. Якісь поради з цього приводу?
Відважний анонімний боягуз

5
@ Анонім, викликати чужий інтерес до вивчення нових речей зазвичай близький до неможливого. ІМО найкраще, до чого можна прагнути, - це змусити решту команди прийняти новий шлях, усунути / нейтралізувати перешкоди, викликані цим хлопцем, і нехай тиск з боку однолітків спрацює ... якщо це вплине на нього, він врешті-решт піймає з іншими (останнє, коли інші починають жартувати про свої старі способи ;-)
Péter Török

4
@maple_shaft - Ер .. Я думаю, ти мене помиляєш за когось із твого минулого. Проблема тут полягає в тому, що він, я та вся команда витрачає час на вирішення конфліктів SVN у файлах конфігурації проекту, які містять лише налаштування, що стосуються розробника, яким взагалі не потрібно ділитися.
Відважний анонімний боягуз

3
@AnonymousCoward svn ігнорування - це завжди варіант.
Крістіан П

3
@maple_shaft - З тієї ж причини одному члену вашої старої команди було дозволено використовувати Emacs. Творча свобода - це добра річ.
Відважний анонімний боягуз

9

Якщо ваша компанія використовує вікі, напишіть кілька високоякісних публікацій про SVN:

  • Навіщо використовувати його?
  • Коли слід використовувати його?
  • Які проблеми вона вирішує?

тощо.

Це приверне увагу до CTO, і кожен, хто відмовиться від використання, повинен буде використовувати :)


5

Як керівник, менеджер та член команди мені доводилося стикатися з вирішенням професійних та особистісних конфліктів на багатьох рівнях. Незалежно від того, в яку роль мене наймають, я, як правило, приймається керівником навіть тоді, коли я не бажаю ролі. Причиною цього є те, як я маю справу з цими конфліктами.

На відміну від багатьох тут людей, я не погоджуюся, що впоратися з цією ситуацією - це "відмовитись" або "показати йому новий інструмент" або "чекати, коли він впаде на сідницю або розчарується". Найголовніше, що це ніколи не ідея добре чекати , поки ролі не більше твердо визначені. Ці ролі визначаються людьми, які не чекають, за своїми переконаннями, етикою та вмінням вирішувати критичні ситуації, залучають вони людей чи ні.

Існує кілька методів поводження з типом людини, якого ви описуєте в цих ситуаціях. Перший і головний крок - розслідувати, чому він поводиться так, як є. Це мало спільного з тим, що він знає чи не знає. Він міг легко дізнатися цю інформацію раніше, тому питання справді одне з двох: "Чому він не став?" або "Чому він відкидає інформацію, яку йому надають?" Це допоможе вам знайти те, що саме потрібно вирішити.

З мого досвіду, програмісти (в тому числі я) відмовляються від добрих практик чи нових інструментів лише з кількох причин:

  • Джерело не є достовірним. У галузі, яка з кожним днем ​​стає все більш поляризованою між "культом Мака" та "шанувальниками МС"; між "Ідеологією з відкритим кодом" та "Приватною практичністю" ... і т. д. тощо - Є багато людей, у яких завжди виникають сумніви щодо наданої інформації та її потенціалу корупції через упередженість представника або письменника, навіть коли ця інформація є перевірені як достовірні.
  • Тривалий поганий досвід ... із подібною або навіть тією ж технологією чи практикою. Ніщо не є ідеальним, коли воно починається, і багато хто починає з менш ніж 1/4 функцій, ніж у них закінчується. Цілком можливо, що він мав багато годин чи днів, а то й тижнів, працюючи або з неповноцінним продуктом, або з тим самим, під час погано реалізованої фази.
  • "Достовірне" Джерело ... суперечить інформації, яку він подає. Під "достовірним" я маю на увазі якусь особу чи сутність, якій він довіряє. Багато людей прагнуть підняти людей, яким ми довіряємо, до рівнів, які не представляють реальності. Це джерело навіть не повинно нав’язувати людині цю віру. Найчастіше ми робимо це самі. Це часто дає нам щось або когось, прагнути бути схожим, принаймні в одному аспекті.
  • Відсутність безпеки Це було підкреслено попереднім плакатом. Наші програми стають активами з другого, коли ми починаємо працювати над ними. Не тільки для компаній, для яких ми працюємо, а для людей, з якими ми працюємо. Це не просто питання контролю. Дехто з нас хоче, щоб ми могли показати свої акуратні речі людям, які нас цікавлять. Деякі з нас хочуть переконатися, що це не завдає шкоди сторонній людині чи продукту. Для деяких це навіть розширення того, як ми думаємо і почуваємось навіть. У ньому розміщені деякі наші філософії та ідеології та розкриваються наші інтелектуальні ядра. Для багатьох це наше майбутнє, будь то клас, роботодавець чи клієнт. Для деяких це все. "Безпека" в цьому сенсі не поширюється на дані, обов'язково або на код.

Дізнатися, що є фактором, часто досить просто. Заведіть людину в нейтральну обстановку. Поясніть людині, що ви спостерігаєте, загалом. Запитайте у людини чесно, що викликає таку поведінку. Зараз це не завжди проходить добре, але більшість дорослих реагують досить добре, коли, здається, ви хочете допомогти тому, хто, здається, діє нераціонально. Ймовірно, він не діє нераціонально, але не усвідомлює, що ніхто не може зрозуміти, що насправді відбувається.

Як тільки ви дізнаєтесь, у чому проблема, насправді ви можете оснастити себе належними інструментами для вирішення цього питання. Якщо це сценарій №1, заохочуйте його робити дослідження з джерел, яким він довіряє, і (це важливо)повернімось до вас з його власними висновками. Це скаже йому, що його власна інформація має значення для вас. У випадку сценарію №2 точні порівняння з тим, що зараз відрізняється, ніж раніше. Запропонуйте йому спробувати, але складіть резервний план, якщо це не так. У сценарії №3, скажіть йому, щоб він запитав його джерело з ВАШОЮ інформацією. Швидше за все, його джерело не дотримується думок, які, на його думку, він робить, але зробив свого часу. Більшість з нас адаптуються з часом, тому його точка зору, ймовірно, змінилася. Якщо він не бажає, заохочуйте його познайомити вас із своїм джерелом. І, нарешті, за сценарієм №4, запевняйте його, що його турботи ваші. (Вони повинні бути на якомусь рівні) Продемонструйте, як цей "новий" інструмент може захистити його інтереси та підвищити його безпеку. А якщо не може,

Я знаю, що все це здається занадто простим для роботи, але іноді це просто так. Справді, чим щиріша ти, тим частіше це робиться. Звертаючись до його потреб, ви звертаєтесь до потреб команди, будь то «старший» чи ні, тому що він є частиною команди. Показати йому, що ви хочете знаходитись на тій же самій сторінці, що і він, але просто ні, це може спонукати його почати співпрацювати з вами. Якщо ви все це зробили, і досі не досягли жодного рішення, то ви зробили все, що вам не вистачало, щоб поговорити з керівником команди.

FuzzicalLogic


4

Навколо контролю над джерелами існує багато забобонів. Це протиінтуїтивно, математика є прихованою, і вона включає єдиний найважливіший актив, яким володіє компанія, що займається програмним забезпеченням. Я мушу визнати, що є частина мене, яка досі не вірить їй. Але я не обійшлася без цього ні хвилини.

Одним із варіантів рішення може стати пропозиція взяти на себе відповідальність за турботу про репо. Звичайно, якщо ви представите це як "для вас це велика робота, і це просто трапляється область, де я маю певний досвід", а не "ви не знаєте, що робите", що матиме більший шанс працювати.

Якщо "бачить себе старшим" означає те, що я думаю, що це робить, він не відпустить цього, тому що бачить це як джерело повноважень і контролю. Таким чином, для вирішення проблеми може бути використання Git локально для управління розумними комісіями філій та гілок, а потім просто натискайте на svn раз на день, як він вимагає. Git розроблений як система однорангових і має повну копію репо на кожному локальному верстаті. Ви можете запропонувати git іншим розробникам, які вважають за краще робити це саме так, і це може залишатися лише доповненням до SVN, яке окремі робочі групи (будь-який розробник, офіційний чи спеціальний) використовують внутрішньо. І коли настає день, коли старший хлопець відступає, переходить в інший відділ чи компанію, або малює себе в неповторний куточок зі своєю політикою SVN, ви маєте початок з його очищення.


Це дивовижне вирішення!
Джей Годсе

Дякую, @JayGodse Git ідеально підходить для цього, оскільки репости можуть ділитися групами, не потребуючи сервера, який, мабуть, занадто сильно наступить на пальці ніг старшого хлопця. Але я не можу взяти до уваги його типове рішення цієї типової проблеми, що обговорюється на git-форумах.
kylben

3

Просто поговоріть з ними. Подивіться, я старший розробник, але є речі, які я не знаю. Така природа бізнесу. Якщо вони стають захисними чи агресивними, це питання особистості з розробником на випадок, і цим повинен займатися керівник команди, або якщо він є керівником команди, їх начальником.


Насправді я з ним розмовляв. Його відповідь полягала в тому, що "ми робимо речі таким чином протягом 5 років. Чому ми повинні робити це по-іншому?". Він, очевидно, відчуває загрозу, але я не розумію, чого саме він боїться і чому.
Відважний анонімний боягуз

1
@AnonymousCoward, якщо ви не можете задовільно відповісти на його запитання, у нього є пункт.

@ ThorbjørnRavnAndersen - Моя відповідь полягала в тому, що наша команда витрачає час, вирішуючи SVN конфлікти у файлах конфігурації проекту, які містять лише налаштування для конкретних розробників, яким взагалі не потрібно ділитися.
Відважний анонімний боягуз

@AnonymousCoward, але це не відповідь, яка відповідає на його запитання. Вкажіть переваги використання SVN. Відсутність знань про SVN, ймовірно, робить його загрозою / небезпекою.
Крістіан П

3
Скажіть, що ви не повинні використовувати кращий спосіб, тому що вам ніколи цього не потрібно, ІМО - найгірший привід, який може дати програміст. Якби це було так, ми все ще писали Асамблею чи С, бо "Чому ми повинні робити це по-іншому?" Це виправдання, а не справедливий пункт. Очевидна відповідь полягає в тому, що те, як вони робили це протягом 5 років, явно неефективне, неефективне та суперечить професійно прийнятим способам робити справи.
Уейн Моліна

3

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

Ви використовуєте це як привід, щоб детально представити SVN і, можливо, дещо з міркувань, що стоять за деякими альтернативами.

Через кілька тижнів хтось інший може піти.


3

Я спробую дати вам деякі підказки, підкріплені моїм особистим досвідом.

Один з моїх товаришів по команді, хоча і досвідчений, не дуже розуміє SVN. Природно, порожні області на його ментальній карті із зображенням океанів СВН змушують його прийняти досить дивні схеми використання.

Наприклад, він оголосив політику "1 SVN комісія на день на розробника", оскільки в іншому випадку "серверу незабаром не вистачить місця на диску". Коли я пояснив йому, що події SVN - це дельти, а не повні копії, він відповів сумнівом, і навіть сьогодні я не зовсім впевнений, чи розуміє він, що це означає.

Навіть якщо простір на диску був проблемою, ви завжди можете зробити багато файлів одночасно, тому я думаю, що він пропонує неправильне рішення. Крім того, можна витратити багато місця, перевіривши великі бінарні файли, оскільки SVN не зберігає дельта для бінарних файлів. Одне заїзд на день також поганий, оскільки змушує вас вносити зміни, які не належать разом, наприклад, якщо ви виправите більше однієї помилки на день.

Рішення, яке ми прийняли в нашій компанії, полягає в тому, що існує фільтр, який відхиляє будь-яку комісію, що містить бінарні файли. Ми можемо змусити зобов’язання використовувати спеціальне ключове слово в коментарі до реєстрації (ми повинні показати SVN, що ми знаємо, що робимо). Раз на рік-два менеджер проекту архівує старі відділення та вилучає їх із сховища. З цією стратегією у нас немає проблем з космосом, про які я знаю (наш репозитарій підтримує декілька різних проектів і налічує понад 100000 змін).

Підводячи підсумок, ви можете сказати йому, що ви згодні з ним, що місце на диску є важливим питанням, але, з іншого боку, вказуйте

  1. важливість реєстрації, пов’язаної з функціями, замість однієї монолітної щоденної реєстрації;
  2. той факт, що перевіряючи один великий двійковий файл на день, можна було все-таки заповнити диск.

Тоді ви можете запропонувати зустріч (можливо, з іншими розробниками чи системними адміністраторами), щоб обговорити стратегії, щоб тримати під контролем використання дискового простору (наприклад, фільтри бінарних файлів, регулярне резервне копіювання та очищення старих невикористаних гілок).

У нас також був бурхливий аргумент щодо того, чи потрібно включати конфігурацію проекту Eclipse .prov у SVN. Мій товариш по команді наполягав на необхідності, хоча це спричинило численні безглузді конфлікти. Я був проти збереження окремих файлів конфігурації розробника у SVN. Нарешті, виявилось, що мій товариш по команді мав практику повторної перевірки всього вихідного дерева після кожного зобов’язання, щоб просто переконатися, що "код, виконаний у сховищах". Це було причиною того, що він настільки прихильний до збереження конфігурації проекту у SVN - тому його буде легко повторно імпортувати. Коли я пояснив, що виконувати синхронізацію робочої копії з віддаленим байтом за байтом, що робить повторну перевірку непотрібною, мій товариш по команді знову відповів сумнівом і, врешті-решт, відкинув всю проблему як незначну.

На мою думку, наша команда витрачає час, вирішуючи конфлікти SVN у файлах конфігурації проекту, які містять лише специфічні для розробника налаштування, які взагалі не повинні надаватись SCM. Все це безлад, тому що хтось адаптував процес навколо неправильних припущень.

Ви використовуєте сервер збирання? У нас є сервер збирання, який перевіряє повний проект і збирає його щовечора. Наступного ранку у тестерів є готовий до тестування інсталятор продукту (якщо майстер-збірка запустився правильно), і ми (розробники) склали звіт про збірку з усіма попередженнями (і помилками, якщо такі є). Звичайно, вам потрібно встановити стандартні файли конфігурації для сервера збирання та перевірити їх. Кожен розробник може перевірити їх разом із рештою проекту, але їм заборонено перевіряти будь-які локальні зміни.

У цьому сценарії ви звертаєтесь до його необхідності мати можливість перевірити весь проект та створити його в будь-який час. Ви також уникаєте витрачати час на злиття змін, які не слід було б перевіряти в першу чергу, оскільки вони не є частиною продукту: продукт - це основне складання, і його потрібно підтримувати в чистоті. Якщо хтось порушує головну збірку (наприклад, перевірка власного файлу .project), ви можете скасувати зміни або змусити розробника вирішити проблему.

Можливо, якщо він знову поставить проблему, ви можете знову запропонувати зустрітися (можливо, з іншими розробниками) і разом знайти спільну стратегію.

Як я можу переконати товариша по команді, який вважає себе старшим, краще зрозуміти основи SVN?

Я думаю, що найкращою стратегією було б уникнути доведення конфлікту до особистого рівня та скоріше обговорити проблеми та можливі шляхи їх вирішення. Якщо у вас складається враження, що він шукає особистого протистояння, ось кілька пропозицій (знову ж таки, з особистого досвіду):

  • Яка динаміка вашої команди? Чи мають інші колеги подібний досвід роботи з цим товаришем по команді? Є багато невеликих, не надто явних натяків, які команда може дати одному зі своїх членів, щоб відмовитися від певної поведінки (невеликі анекдоти чи спостереження) та заохотити конструктивне протистояння (запропонувати зустріч або неофіційно підняти тему під час перерви на каву ). Іноді хороша команда може швидко ізолювати тривожний елемент і повернути речі в норму.
  • Наскільки добре ваше управління персоналом? У нас був один конфліктний випадок у нашій компанії, і для усунення ситуації повинен був втрутитися керівник персоналу. Це було не приємно, але іноді робоча атмосфера погіршується настільки, що не покращиться сама по собі. Я сподіваюсь, що це не ваш випадок (у мене ще немає враження, що це дійшло до цього часу), але завжди добре знати, чи є у вас хороша адміністрація персоналу чи вам доведеться вирішувати конфлікти самостійно.

Чому я це пишу? Ви кажете, що хочете "переконати товариша по команді, який бачить себе старшим, щоб краще зрозуміти основи SVN". Для мене це здається, що конфлікт може бути занадто особистим. Деякі психологи стверджують, що 70% нашого спілкування перебуває на емоційному рівні, якщо цей рівень не працює, то люди перестають говорити про факти, тому що вони занадто зайняті справою з емоціями.

Отже, окрім пояснення ваших пунктів, ви також можете спробувати зробити щось для покращення спілкування. Запрошення на каву або перерву на обід разом, коротка розмова на тему, яка не пов’язана з роботою тощо, може покращити спілкування та повернути увагу колеги до важливих фактів, які ви хочете, щоб він зрозумів. Якщо він приймає такий вид спілкування, то, можливо, конфлікти, які ви мали до цього часу, були пов'язані з тим, що ви не знаєте один одного добре і були невеликі непорозуміння, але він, ймовірно, відкритий для створення конструктивної співпраці. Якщо він відмовиться, то на його боці може виникнути більш глибока ворожнеча.

У цьому випадку, я думаю, вам слід почекати, поки ваші ролі не стануть зрозумілішими. Якщо ваш товариш по команді офіційно не має вищого рангу, ніж ваш, він не має сенсу дратуватися вашими спробами покращити справи. З часом йому доведеться це прийняти або зробити дурня з себе, якщо він намагатиметься показати, що знає краще. Якщо він має вищий ранг, вам слід знайти спосіб зрозуміти, що це не обговорюється: ваші спостереження спрямовані на підвищення продуктивності, а не на підрив його позиції, це повинно бути на 100% зрозуміло. Коли ролі були уточнені, якщо він все ще не може прийняти конструктивні пропозиції чи критику, то він справді повинен мати певні проблеми з самооцінкою чи чимось подібним.

Тож якщо всі стратегії, описані вище, зазнають невдачі, і ви відчуваєте (дуже) розчарування, я боюся, що єдине розумне, що потрібно зробити, - це запакувати свої речі та шукати краще місце. Я зробив цей досвід три роки тому і знайшов набагато кращу компанію, в якій зараз дуже задоволений. Можливо, це не ваш випадок (сподіваюся, звичайно), але спробуйте зрозуміти і цей момент.

Всього мої 2 копійки.


2

Наведіть його на навчальний матеріал про те, як працює SVN та які найкращі практики використання SVN.

Як говорить @Peter - вибирайте свої бої ретельно і не витрачайте енергію на боротьбу з кимось, хто, очевидно, не розуміє основ. SVN - це не зовсім крайнюю технологію, і вона тут була деякий час, тому є достатньо інформації про неї.


2

Спробуйте вести журнал "витрачання часу SVN". Щоразу, коли виникає проблема конфлікту / оформлення замовлення / версії, яку потрібно вирішити, робіть записку про те, скільки часу вам / команді потрібно було вирішити. Якщо виявиться, що ви витрачаєте чималу кількість часу щотижня, додайте це з ним та керівництву. Я впевнений, що керівництво незабаром попросить рішення, якщо вони зрозуміють, що продуктивність може бути підвищена простими змінами в робочому процесі.

Або спробуйте переконати колегу провести пробний тиждень, коли команда використовує вашу систему реєстрацій (якщо це легко досягти з вашими поточними проектами та кодовою базою). Пообіцяйте йому, що якщо це не вийде, ви можете переключитися на стару систему після закінчення тижня. Але він може зійти, спробувавши його сам.


2

1. Нехай Subversion вирішує проблему за вас. Як ви це скажете, ваш колега є відносно непідготовленим, коли йдеться про Subversion. У цьому випадку технічне рішення може бути хорошим варіантом. Якщо інша команда погоджується і ви можете отримати благословення вашого менеджера, додайте global-ignoresполе до файлу конфігурації сховища, щоб ви могли виключити .project файли та інші, які ви не хочете контролювати версії.

2. Допоможіть йому. Замість того, щоб нав'язувати йому свій спосіб робити речі, спробуйте допомогти хлопцеві робити все по-своєму, не викликаючи проблем у всіх інших. Якщо ваш колега працює у власному відділенні, то вам справді все одно, що він робить. Якщо він хоче зафіксувати свій .project файл, щоб він міг отримати свіжу копію всього каталогу, це для вас не проблема. Єдине, про що вам слід подбати - це те, що він не об'єднує свій файл .project назад у загальну галузь розробки. Знову ж таки, це може бути легко керувати, встановивши властивість ignore у гілці розробки, щоб виключити файл .project.

3. Зверніться за підтримкою зверху. Не вступайте в аргумент "ти не мій начальник" з хлопцем, але якщо його поведінка спричиняє для тебе проблему, то переконайся, що твій керівник знає про ситуацію. Якщо ви не впевнені, як підійти до свого менеджера, спробуйте попросити поради: "Майк, я намагався поговорити з Ларрі, але я просто не переживаю. Він наполягає на X, Y і Z, і решта з нас витрачають багато непотрібного часу, займаючись проблемами, які створюються. Чи можете ви дати мені будь-які вказівки, як боротися з хлопцем? "

4. Ігноруйте його. Чому хтось із команди слухає цього хлопця? Чи має він фактичну владу над проектом? Кому байдуже, якщо він оголошує політику "один на виконання на розробника", якщо він не має повноважень застосовувати її? Нехай він думає, що він - черепаха черепаха, якщо це змушує себе почувати себе краще, просто не дозволяй йому створювати для тебе справжні проблеми.


1

Звільнюйте хлопця і виконайте його затягування каблука і очевидний запал до новіших технологій. Або по-справжньому дути його і почати використовувати GIT. Якщо він не може зрозуміти SVn, він, звичайно, буде здутий GIT.


Які потреби могли б задовольнити, що підрив не може?

Прочитайте це щодо плюсів і мінусів git: dev-heaven.net/projects/20/wiki/Git_vs_SVN_compitation або це speirs.org/blog/2007/7/19/a-subversion-user-looks-at-git.html
JPM

1

Ви, здається, ведете програшну битву, але можете пройти через. Макіавеллі в «Князі» описав, як важко змінити статус-кво. Я б запропонував прочитати цю главу ще раз, а потім, можливо, не робити того, що він пропонує - це може бути суворим.

Ви повинні приватно проявити свої занепокоєння перед старшим розробником і переконатися, що ви конструктивно критикуєте те, як це робиться, а не його чи будь-яких інших розробників. Тоді запропонуйте поговорити та написати найкращий практичний посібник. Покажіть їм, як краще розуміння SVN полегшить їхнє життя. Зрештою, справа в усіх витратах та ефективності. Якщо ви зможете довести, що ваш шлях покращує речі, не наступаючи на пальці ніг, то ви можете виграти цей.

Спробуйте зрозуміти, чому старший хлопець (-и) використовує сховище таким, яким воно є. Які їхні проблеми? Чого вони намагаються досягти? Як ви можете допомогти їм бути більш продуктивними? Перш за все, намагайтеся зберігати спокійний та професійний підхід. Розчаруватися легко. Будьте наполегливі: напористість на роботі: практичний посібник щодо вирішення проблемних ситуацій Кен Бек та Кейт Бек - це добре прочитане. Нарешті, подумайте, «як би я переконав себе перейти?». Будьте чесним захисником диявола, і це може допомогти вам підібрати хороші відповіді та запитання.

Як бічну ноту, я обережно буду використовувати гумор. Це може творити чудеса, або може здатися вам схожим на дурника. Таким чином, я б цього уникав.

По суті, вибирайте свої бої ретельно, так як ви можете не виграти цього. Якщо це так, або більше не дбайте або шукайте іншу роботу. Суворо, я знаю.


1

Я колись був у звороті вашої позиції близько 8 років тому, коли SVN був досить новизною. Я був старшим розробником, і мене запросили / помилили встановити SVN молодшими розробниками (насправді він був більш точно підтримкою ІТ, ніж розробником). Я взяв відкриту думку, незважаючи на свої первісні підозри щодо збільшення навантаження, зайвої складності тощо ..., а потім став величезним шанувальником цього.

На мою думку, з того, що ви описали цю проблему, безумовно, зводиться до особистості команди - його впертість доводить перешкоду команді в цілому з цього питання. Вам може бути краще просто відступити в цій точці і дозволити тиску з боку решти команди нарости природним шляхом, щоб змусити його руку.


1

Це в значній мірі випадок "відсутності повноважень" і людини, яка застосовує силу власного страху, щоб тримати речі "під контролем"

Щоб вирішити це, знайдіть когось, хто надихнув вашого товариша по команді або когось, кого він поважає, і який здатний пояснити настійність використання чогось типу SVN. Таким чином, його страх перед змінами і, в основному, "втрата авторитету" не грає, тому що це не член команди, який говорить йому, що робити. Я б утримався від використання когось, як менеджера, щоб поговорити з цим хлопцем, тому що це лише додає тиску і навіть може створити для себе більш стресову ситуацію.


1

Нещодавно я прочитав « Технічні зміни водіння: чому люди у вашій команді не діють на гарні ідеї та як переконати їх у необхідності» , яку публікує «Прагматичні програмісти». Ця книга надає передумови, про які слід знати, перш ніж намагатися ввести технічні зміни, ряд закономірностей у людей, які виступають проти чи відмовляються від змін, методи внесення змін, а потім стратегії максимального використання цих методів та всіх людей навколо ти.

Виходячи з вашого допису, я б сказав, що ваш товариш по команді, ймовірно, потрапляє в неінформований або цинічний зразок, але він також може бути випадком Ірраціонального. Деякі з методів, що рекомендуються протидіяти цим людям, - це набути досвіду в цільовому середовищі, щоб ви могли знайти будь-які проблеми та представити відповіді на проблеми, з якими виникнуть інші люди, перш ніж вони трапляться, вирішити правильну проблему, доставити повідомлення пристрасно, але не надто ревно, демонструйте методи, чітко демонструючи переваги своїх методів та інструментів і органічно продайте їх (але не створюйте проблем лише для їх вирішення), а також оприлюднюйте та купуйте у решти своєї команди. Однак якщо він ірраціональний,

Нарешті, тоді ви починаєте використовувати ці методи, вам потрібна загальна стратегія. Важливо не дозволяти тим, хто активно вороже чи нераціонально гальмує вас, - ігноруйте їх. Натомість знайдіть людей, яких ви зможете продемонструвати та переконати, що у вас є кращий шлях, і застосуйте відповідні методи, засновані на них, як особистість. Як тільки люди більше побачать удосконалення, які пропонують ваші знання, використовуйте їх, щоб продовжувати переконувати інших. Нарешті, застосуйте ці низові зусилля, щоб переконати керівництво в тому, що є кращий шлях, але не забудьте поставити його в термінах, які вони можуть зрозуміти (час, гроші, якість).


1

Не намагайтеся "переконувати" цього хлопця ні в чому. Люди (навіть програмісти) не збираються реагувати на або поважати розумні / логічні аргументи того, кого вони вважають молодшим. Тому не витрачайте дихання. Натомість працюйте над побудовою рівня довіри з цією людиною. Ця людина буде слухати те, що ви маєте сказати, лише тоді, коли він відкритий для цього.

Тим часом у вас є реальні проблеми:

  1. Хлопець перевіряє свій .project файл у репо: просто ігноруйте його. вам не потрібно змінювати файл, а також ніхто інший в команді, хто знає краще. Відпусти. Якщо це дарує вашому "старшому члену" тепле, щасливе відчуття, як ковдра безпеки, так і нехай буде.
  2. На дисковому просторі є сприйнятий бюджет: це причина, чому пан Старший продиктує 1 зобов’язання на день. Реальний чи сприймається дефіцит простору? Навіть якщо це просто сприймається, можливо, ви можете щось зробити, щоб змінити це сприйняття. З цим слід вирішити негайно - якщо ви проявляєте ініціативу, це також сприяє формуванню довіри.

Можу також додати, що цей хлопець буде готовий застосовувати кращі практики SVN, коли він вважає, що це були його ідеї. Це займе певну думку з вашого боку, і він, швидше за все, візьме на себе кредит за встановлення кращих практик - але ви з цим все в порядку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.