Как Вы объясняете продавцу, что программирование является действительно трудным и занимает время [закрытое]

Часовые пояса трудно получить право. Я думаю, что простое и несколько идиоматическое решение заключается в следующем:

const date = "2019/1/16 00:00 +0900";

// parse in any timezone
const dateMoment = moment(date); 

// deliberately set the timezone in which the moment is interpreted in
const timezonedMoment = dateMoment.tz('Asia/Tokyo'); 

// format the moment
const formattedDate = dateMoment.format('YYYY/MM/DD HH:MM z');

Конечно, вы бы написали это в более сжатой форме.

8
задан MPelletier 4 May 2012 в 20:43
поделиться

8 ответов

Разбейте проблему в как можно больше подразделенных задач. Обеспечьте оценку на объект в течение многих часов около каждого.

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

Если бы Вы ищете книги, я предложил бы Оценку программного обеспечения - Демистифицирование Черной магии.

15
ответ дан 5 December 2019 в 05:00
поделиться

Компьютер сделает то, что Вы сказали ему делать, не, что Вы хотите, чтобы он сделал.

Любая форма абстракций, необходимых быть переведенным в точные детали.

источник http://c2.com/cgi/wiki?TeachMeToSmoke

Teacher: "It's hard to express ourselves clearly. You're a smoker, right? 
Are you pretty good at it? [Student nods.] 
Let's pretend I'm a man from Mars and you are going to teach me to smoke. 
Do you have a fresh pack? Let's start with that. 
[Takes pack.] OK, now tell me what to do." 


Student: "Tear open the pack."

T: [Tears pack to shreds. Cigarettes fly everywhere.] 
S: "No, no, tear off the top of the pack!" 
T: "OK, sorry, do you have another pack? No? OK, let's just start with this cigarette. [Picks one up.] 
S: "Put it in your mouth." 
T: [Puts whole cigarette in mouth.] 
S: "No, no, just put the end in your mouth!" 
T: "Sorry." [Tears filter off, puts whole filter in mouth.] 
S: "No, no, don't tear the cigarette, just hold it between your lips!" 
T: "Oh, sorry, give me another one." [Places new cig sideways between lips.]

... и так далее. Можно играть в игру в течение долгого времени. Трудно дать четкие указания, даже когда Вы знаете домен. Программирование вынесет в течение долгого долгого времени. - RonJeffries

9
ответ дан 5 December 2019 в 05:00
поделиться

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

Сновидение в коде: две дюжины программистов, три года, 4 732 ошибки и один Quest для трансцендентного программного обеспечения

2
ответ дан 5 December 2019 в 05:00
поделиться

У меня был друг, который мог сделать Кубик Рубика в секундах.

Это заставило меня думать об этом способе объяснить моему менеджеру, почему сделал наш последний СБОЙ проекта!

Olivier занимает в среднем 10 секунд к полностью виду все цвета 3x3 Кубик Рубика после рассмотрения его в течение приблизительно 5 секунд.

Если Вы просите, чтобы он сделал оценку того, сколько времени она возьмет для сортировки его, Вы даете ему куб, запускаете часы и после 5 секунд, которые он скажет:

"Хорошо, как только я запускаю, я буду сделан через 10 секунд"

Вы улыбаетесь и говорите: "Запустите!" После 3 секунд Вы просите, чтобы он остановился.. дайте ему другой Кубик Рубика и скажите.. вид этот вместо этого...

Спустя 4 секунды после того, как он запускает второй Кубик Рубика, сколько времени Вы думаете, что он возьмет для сортировки первого снова?

Если Вы ответили на 7 секунд приблизительно, поздравления: Вы - верхний материал управления!

(и Olivier был бы справедливо наделен правом вынудить Вас съесть кубы),

5
ответ дан 5 December 2019 в 05:00
поделиться

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

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

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

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

Удачи!

3
ответ дан 5 December 2019 в 05:00
поделиться

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

Возможно, разбивка задачи в подзадачи и предоставление им оценки может помочь.

1
ответ дан 5 December 2019 в 05:00
поделиться

Удостоверьтесь, что Вы понимаете их проблемы также. Люди будут часто приносить решения таблицы ("нам нужна эта функция"), а не запустите с корневых бизнес-потребностей. Чем больше Вы понимаете проблему, тем более вероятно необходимо смочь предложить компромисс.

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

1
ответ дан 5 December 2019 в 05:00
поделиться

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

И я искренне соглашаюсь с "Им, зависит" выше.

0
ответ дан 5 December 2019 в 05:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: