С программными продуктами, требующими разработки целыми командами людей, сколько может достичь один программист самостоятельно? Другими словами, может ли один человек написать Photoshop, MS Word и т. Д.? И если бы они не могли, была бы веб-разработка областью, где один программист мог бы многое сделать?
web-development
project-management
fender1901
источник
источник
Ответы:
Начните с малого
Linux в настоящее время намного больше, чем ее первые итерации, но важно то, что в ней появилось достаточно вещей, чтобы набрать обороты.
Только если оно того стоит
У меня есть личное правило, что большие вещи просто стоит делать, если они принципиально отличаются от остальных. В противном случае вы погружаетесь в красный океан .
Хорошо начать, но не всегда устойчиво
Если ваше программное обеспечение достаточно хорошее, вы можете серьезно отнестись к нему. Взять, к примеру, Маркуса "Notch" Перссона, создателя Minecraft. IIRC он начал игру один, и когда игра набрала обороты, он начал искать сотрудников и даже основал компанию.
Будучи полезными для достижения чего-то в одиночку, крупные проекты реализуют свой потенциал благодаря сотрудничеству разработчиков, а не одному гению, что подводит меня к следующему пункту.
Миф
Ознакомьтесь с Мифом о программисте Genius , выступлением Бена Коллинза-Суссмана и Брайана Фитцпатрика на Google I / O 2009. Там вы должны получить все ложные ожидания. Главное, что я хочу здесь подчеркнуть, - это то, что иногда один разработчик получает кредит за все это, в то время как позади было больше людей.
Это определенно возможно
Другой пример, кроме Линуса Торвальдса, это Джон Кармак. Он портировал Wolfenstein всего за четыре дня, когда EA оценивала полную команду на два месяца.
Это не количество кода, а архитектурные и технические знания, которые позволяют вам достигать больших результатов с меньшим количеством кода, чем вы ожидаете.
Учитывая навыки и знания (за пределами среднего уровня), вы можете заставить большую работу чувствовать себя мало.
источник
Из-за характера работы, которую я выполняю, я разработал несколько довольно крупных приложений самостоятельно. Так что да, это выполнимо. Я мог бы говорить об этом часами, но сейчас у меня не так много времени, поэтому вот некоторые плюсы и минусы из личного опыта.
Плюсы:
Минусы:
источник
С некоторой преданностью и навыком один человек может определенно достичь многого. Однако это непросто, просто быть хорошим программистом недостаточно. Для успешного проекта вам часто приходится думать о вариантах использования, дизайне пользовательского интерфейса, документации, поддержке и многом другом. Как только дела пойдут в гору, и число пользователей будет расти, делать все это в одиночку будет все больше и больше нереально - это тот момент, когда либо больше людей попадают в проект (через участие в сообществе, нанимая людей или иным образом), либо проект умирает.
источник
Это зависит от программного обеспечения, которое он / она пытается разработать, нехватки времени и навыков. Если он разрабатывает простое приложение MIS, вполне возможно, что он сможет сделать это за короткое время. Попытка разработать программное обеспечение, такое сложное, как Photoshop, MS Word, Blender, Flash и т. Д., Возможна, но занимает много времени и имеет самые основные функции, а функции просты.
источник
Все зависит от мастерства, затраченного времени и готовности сделать это. Чем больше у вас знаний, тем меньше времени потребуется, чтобы чего-то достичь. Вы получите очень глубокие знания кодовой базы как единственного разработчика, который также может ускорить процесс выяснения / рефакторинга / отладки.
Я лично работал над приложением переноса с рабочего стола на сервер. Я кодировал серверное приложение, настольное приложение и тестировал все сам. Я написал установщик для приложения даже. Я нашел способ разрешить перетаскивание на значки в системном трее в Windows и даже занялся написанием новой библиотеки Java с нуля. Я делал это в течение года, и он все еще находится в стадии разработки и тестирования.
Весь этот проект был одним из главных испытаний. Каждый день после школы я работала над проектом, а также по выходным. Это так же массивно, как MS Word, Photoshop и т. Д.? Нет. Проект все еще большой и постоянно развивается, и можно многого достичь.
источник
В настоящее время я в свободное время работаю над таким проектом (это веб-приложение, а не настольное приложение, но принципы те же). Вот что я нашел до сих пор:
1) Не изобретайте велосипед . Используйте существующие библиотеки / фреймворки, а не делайте все с нуля. Одно предостережение: убедитесь, что вы обращаете внимание на лицензии, поскольку они применяются к вашему желаемому дистрибутиву / выпуску / любой модели. Некоторые лицензии с авторским левом требуют, чтобы вы открыли исходный код вашей «производной работы». Некоторые лицензии разрешают некоммерческое использование. Следите за библиотеками / фреймворками, которые вы используете, чтобы вы могли обеспечить соответствующую атрибуцию на экране / области "Кредиты" / что угодно
2) Работать итеративно . Это связано с тем, что Dukeofgaming сказал «Начни с малого» . У вас гораздо больше шансов придерживаться проекта, если вы видите результаты. Пока вы не увидите, что что-то работает, любое развитие, которое вы делаете, эквивалентно рисованию в темноте.
3) Не бойтесь просить обратной связи / помощи на раннем этапе . Скорее всего, ты не во всем хорош. Если вы хорошо разбираетесь в мелочах кодирования на низком уровне, вы, вероятно, отстой в пользовательском интерфейсе. Обратное также применимо. Никогда не больно получать советы от тех, кто лучше вас в определенной области. Многие люди избегают этого, потому что они беспокоятся о том, чтобы кто-то украл их идею. Не беспокойтесь об этом - если кто-то пытается скопировать вас, это означает, что вы на что-то стоящее. Идеи дешевы, реализация является ключевой. Apple не изобрела MP3-плеер, Microsoft не изобрела операционную систему, Facebook не изобрел социальную сеть, а Google не изобрел поисковую систему. Что они сделали, так это сделали его привлекательным для пользователей (а не отстой).
источник