Про Apple, Google, IBM, HP ничего не скажу. Для меня фирмы такого уровня - терра инкогнита.
Зато на примере многих российских шареварщиков могу вам ответственно заявить, что использование скачаных из инета бесплатных исходников в своих программах носит чисто односторонний характер. И GPL при этом никому не мешает ;-)
1. Пару лет назад прочитал книжку по методике тестирование софта. Там на примере приложения "калькулятор" было показано, что даже для такой простой программы всеобъемлющее тестирование является нетривиальной задачей. Ведь даже если калькулятор умеет только складывать, вычитать, делить и умножать целые числа, то простой перебор всех возможных исходных данных в пределах от -MAX_INT до +MAX_INT превращает тестирование в бесконечный процесс.
Почему нужно тестировать ф-цию сложения и на положительных и на отрицательных числах думаю понятно? Если да, то обратите внимание, что "Code coverage" = 100% уже после завершении тестов на целых числах ;-)
2. "...он будет стремиться к отлову максимального числа багов, а не к выдаче на гора максимального количества отчётов"
Вы наверное думаете, что у коммерческих программистских фирм постоянный дефицит бумаги в уборной и все тесты проводятся с единственной целью - хоть как-то покрыть этот дефицит? ;-)
А если серьезно, то даже после такого "маниакального" тестирования софта мы получаем репорты от пользователей об ошибках. Правда немного: например, для Universal Document Converter 4.2 количество проблем, о которых мы узнали от юзеров после завершения собственного тестирования и выпуска программы не превышает трех-пяти штук.
Казалось бы совсем немного... Однако, если учесть, что в саппорт пишет в лучшем случае 1 из 100 недовольных, то ситуация начинает выглядеть не так уж и благостно :-(
3. "Тем самым отпадает нужда обхода ошибок в куче "кривых" программ - это резко снижает как корявость кода, так и процент ошибок."
А вот теперь представьте, что вы - инженер-конструктор какого-нибуть КБ. Вы и ваша контора всю жизнь проработали на программе Автокад. Но вчера ваш заказчик потребовал предоставить ему чертежи в формате PDF. Автокад экспорт в PDF делать не умеет и вы начинаете искать какое-то третьестороннее решение.
Проходит полдня и вы находите несколько программ-кандидатов, претендующих на честь облегчить ваш нелегкий труд. Однако, при более подробном тестировании оказывается, что для их использования вам придется отказаться от Автокада и вести все ваши разработки в программе Visio. Вопрос: что вы будете делать? Ждать, когда горе-разработчики программ обеспечат их совместимость с Автокадом? Или может быть попытаетесь убедить ваших коллег перейти на Visio?
Практика показывает, что в подобном случае клиент будет искать другое решение, совместимое с программой Автокад, несмотря на несовершенство последнего.
Большинство программ ломают на коммерческой основе по заказу варезных сайтов и хозяев лоточников с Горбушки - это научный факт. Ведь для того, что бы сломать защиту, программисту очень приличной квалификации нужно пару недель просидеть над дизассемблированным кодом ломаемой программы.
Теперь представим, что у вас есть любимая работа и приличная зарплата (хорошие программисты сейчас получают очень хорошие зарплаты!). Вопрос: будете ли вы две недели корпеть нал дизассемблированным кодом ломаемой программы? Незнаю как вам, а мне этого удовольствия и на работе хватает. Я лучше на лыжах схожу в лес. Ну или не велике покататься съезжу.
Пару месяцев назад слышал такую формулировку бизнес-можели Гугла:
1) Сначала Гугл сделал хороший поиск и предложил его рядовым пользователям инета. В результате он получил огромную аудиторию.
2) Затем гугл начал "продавать" свою аудиторию рекламодателям (AdWords). В результате у Гугла появились платные клиенты.
3) На третьем этапе Гугл предоставил возможность третьесторонним сайтам крутить у себя Гугловскую рекламу, размещаемую платными клиентами. Т.е. начал "продавать" своих платных клиентов сайтам-партнерам.
Конечно, вопросы морали и нравственности выходят за рамки обсуждаемой статьи...
Тем не менее не могу не отметить, что честная продажа своей коммерческой программы на условиях сохранения приватности доверившегося тебе клиента, кажется мне более чистоплотным занятием, чем описанная выше схема. :-(
Уверяю вас, что все современные успешные бизнес-проекты из первой сотни (выборка - по объему выручки продукта) делались на инвестиции. А инвестиции даются только тогда, когда инвестор видит вероятность вернуть свои деньги с хорошей прибылью.
Я действительно не знаю, как заработать на бесплатном софте. У нас в компании есть несколько бесплатный продуктов и мы ломаем голову, как получить с них хоть немного "молока". Например: http://www.myviewpad.com
Modaz, если вы будете столь любезны, что поделитесь своим опытом на этой стезе, я буду вам очень признателен.
Без нормальной раскрутки на вашем простеньком сайте будет 20 посетителей в день, половина из которых - посиковые боты.
Знаете какая конверия зашедших на сайт к купившем считается нормальной у российских шареварщиков? 0,5%
То есть, релевантным человеком (покупателем или просто тем, кому действительно нужна ваша программа) будет один из 200. Путем нехитрых вычислений получаем, что нужные люди будут посещать ваш сайт с частотой 1 раз в месяц.
Такими темпами до "построения коммунизма" можно и не дожить :-(
Не хочу вас расстраивать, но многие взломщики-любители "борются с капиталистами" на коммерческой основе. Вам никогда не приходил спам типа "Продам Автокад за 60 баксов"?
Что бы исправить ошибку, нужно полностью разобраться как работает исправляемый вами продукт. Иначе после "исправлений" ему будет радо только помойное ведро!
Не факт, что удастся сэкономить время разбираясь как работает тот же Ghost...
Что-то я слышал о таких маркетинговых стратегиях: типа сначала нужо "просочиться" в структуру бизнес-процесса клиента, а потом он нас оттуда каленым железом не выжгет!
Гм... Вам когда-нибудь кто-нибудь отдавал свои исходники бесплатно? Я имею в виду исходники функций, представляющих реальную коммерческую ценность и/или содержащие в себе хоть какую-нибудь научную новизну?
1) Для того, что бы распараллелить процесс берем пару компов помощнее и ставим на них VMWare.
2) Под VMWare разворачиваем все операционки, поддерживаемые программой, т.е. Win'98, Win'ME, Win'2000, Win'XP, Win'XP SP2, Win'2003, Win Vista.
3) Universal Document Converter - это виртуальный принтер. Т.е. юзеры печатают на нем документы из своих приложений, а наш Universal Document Converter сохраняет то, что ему пришло в PDF, JPEG, TIFF, BMP... Вы уже видите что следует проверить в первую очередь?
Правильно, нужно оттестить сохранение в файлы разных форматов, со всеми доступными сочетаниями настройек этих форматов (типы компрессии, количество цветов, ...)
Что еще? Ах да, размер виртуального листа, на котором будет происходить рендеринг нашего документа может быть задан в промежутке от A5 (листок из школьной тетрадки) до A0 (полноразмерный чертеж). Плюс к тому, разрешение принтера (DPI, кол-во точек на дюйм) тоже можно задать в диапазоне от 100 до 2400 DPI.
Уже все? Не совсем. Практика показывает, что обмен настройками между разными приложениями (MS Word, Adobe Acrobat, Autodesk AutoCAD) и принтером не всегда происходит одинаково. Если мы не хотитм, что бы наш драйвер выдавал BSOD-ы, этот пункт нужно тоже хорошо оттестить.
Ну вот. Теперь, используя комбинаторику можно прикинуть какое количество опытов нужно провести, что бы проверить готова программа к выпуску или нет.
Чуть не забыл, в Universal Document Converter есть SDK для девелоперов, желающих автоматизировать конвертирование документов в PDF, TIFF и другие форматы. Работоспособность программы в этом режиме тоже нужно проверить.
Вот теперь все. Какой-нибудь месяц времени, пара выжатых насуха бета-тестеров, нервно дергающий глазом ведущий программист программного продукта и программу вожно паковать!
А теперь скажите мне, кто будет заниматься этим в качестве хобби?!
Знаете, в этой шутки очень малая доля шутки.
Если бы вы знали, какого уровня вопросы задают иной раз пользователи... Особенно владельцы е-мелов вида user@aol.com
:-(
Ок, для себя любимого можно сделать - не вопрос.
Но как потенциальные клиенты узнают о вашем замечательном продукте? Разработка нормального веб-сайта и хоть какая-то реклама стоят денег. Можно, конечно, спускать на это дело половину зарплаты, но что тогда будет есть ваше семейство?
Человек не может быть склонным и к творчеству (разработка программы) и к рутине (тщательное тестирование и отладка) одновременно. Наверное есть исключения... Но я не уверен, что их много.
Нормальная поддержка и развитие бесплатного программного продукта средствами "левых" разработчиков, не принимавших участия в разработке программы совместно с основной командой - это фантастика.
Пример? Да вот хоть GhostScript. Очень многие шареварщики используют его в виде DLL для бесплатной поддержки чтения PDF и EPS в своих программах.
А теперь вопрос: кто-нибудь из читающих этот топик пробовал разобраться в его исходниках и исправить пару багов?
Мои коллеги пробовали (уж очень нам хотелось бесплатного PDF-а). И пришли к выводу, что проще будет написать свое решение.
И уверяю вас, что не одни мы такие немощные. Я неплохо знаю авторов программы PDF-XChange Viewer (актуальная версия программы показывает PDF не хуже Акробата и уж точно лучше, чем китайский Foxit). Так вот, они тоже не остилили исходников GhostScript.
Для того, что бы сломать двже слабо защищенную программу нужен специалист очень приличного уровня.
Зато на примере многих российских шареварщиков могу вам ответственно заявить, что использование скачаных из инета бесплатных исходников в своих программах носит чисто односторонний характер. И GPL при этом никому не мешает ;-)
Почему нужно тестировать ф-цию сложения и на положительных и на отрицательных числах думаю понятно? Если да, то обратите внимание, что "Code coverage" = 100% уже после завершении тестов на целых числах ;-)
2. "...он будет стремиться к отлову максимального числа багов, а не к выдаче на гора максимального количества отчётов"
Вы наверное думаете, что у коммерческих программистских фирм постоянный дефицит бумаги в уборной и все тесты проводятся с единственной целью - хоть как-то покрыть этот дефицит? ;-)
А если серьезно, то даже после такого "маниакального" тестирования софта мы получаем репорты от пользователей об ошибках. Правда немного: например, для Universal Document Converter 4.2 количество проблем, о которых мы узнали от юзеров после завершения собственного тестирования и выпуска программы не превышает трех-пяти штук.
Казалось бы совсем немного... Однако, если учесть, что в саппорт пишет в лучшем случае 1 из 100 недовольных, то ситуация начинает выглядеть не так уж и благостно :-(
3. "Тем самым отпадает нужда обхода ошибок в куче "кривых" программ - это резко снижает как корявость кода, так и процент ошибок."
А вот теперь представьте, что вы - инженер-конструктор какого-нибуть КБ. Вы и ваша контора всю жизнь проработали на программе Автокад. Но вчера ваш заказчик потребовал предоставить ему чертежи в формате PDF. Автокад экспорт в PDF делать не умеет и вы начинаете искать какое-то третьестороннее решение.
Проходит полдня и вы находите несколько программ-кандидатов, претендующих на честь облегчить ваш нелегкий труд. Однако, при более подробном тестировании оказывается, что для их использования вам придется отказаться от Автокада и вести все ваши разработки в программе Visio. Вопрос: что вы будете делать? Ждать, когда горе-разработчики программ обеспечат их совместимость с Автокадом? Или может быть попытаетесь убедить ваших коллег перейти на Visio?
Практика показывает, что в подобном случае клиент будет искать другое решение, совместимое с программой Автокад, несмотря на несовершенство последнего.
Теперь представим, что у вас есть любимая работа и приличная зарплата (хорошие программисты сейчас получают очень хорошие зарплаты!). Вопрос: будете ли вы две недели корпеть нал дизассемблированным кодом ломаемой программы? Незнаю как вам, а мне этого удовольствия и на работе хватает. Я лучше на лыжах схожу в лес. Ну или не велике покататься съезжу.
1) Сначала Гугл сделал хороший поиск и предложил его рядовым пользователям инета. В результате он получил огромную аудиторию.
2) Затем гугл начал "продавать" свою аудиторию рекламодателям (AdWords). В результате у Гугла появились платные клиенты.
3) На третьем этапе Гугл предоставил возможность третьесторонним сайтам крутить у себя Гугловскую рекламу, размещаемую платными клиентами. Т.е. начал "продавать" своих платных клиентов сайтам-партнерам.
Конечно, вопросы морали и нравственности выходят за рамки обсуждаемой статьи...
Тем не менее не могу не отметить, что честная продажа своей коммерческой программы на условиях сохранения приватности доверившегося тебе клиента, кажется мне более чистоплотным занятием, чем описанная выше схема. :-(
Modaz, если вы будете столь любезны, что поделитесь своим опытом на этой стезе, я буду вам очень признателен.
Знаете какая конверия зашедших на сайт к купившем считается нормальной у российских шареварщиков? 0,5%
То есть, релевантным человеком (покупателем или просто тем, кому действительно нужна ваша программа) будет один из 200. Путем нехитрых вычислений получаем, что нужные люди будут посещать ваш сайт с частотой 1 раз в месяц.
Такими темпами до "построения коммунизма" можно и не дожить :-(
Не факт, что удастся сэкономить время разбираясь как работает тот же Ghost...
Немного напоминает схему работы драг-дилера :-(
Гм... Вам когда-нибудь кто-нибудь отдавал свои исходники бесплатно? Я имею в виду исходники функций, представляющих реальную коммерческую ценность и/или содержащие в себе хоть какую-нибудь научную новизну?
На примере программы Universal Document Converter ( http://www.print-driver.ru/ ) это выглядит так:
1) Для того, что бы распараллелить процесс берем пару компов помощнее и ставим на них VMWare.
2) Под VMWare разворачиваем все операционки, поддерживаемые программой, т.е. Win'98, Win'ME, Win'2000, Win'XP, Win'XP SP2, Win'2003, Win Vista.
3) Universal Document Converter - это виртуальный принтер. Т.е. юзеры печатают на нем документы из своих приложений, а наш Universal Document Converter сохраняет то, что ему пришло в PDF, JPEG, TIFF, BMP... Вы уже видите что следует проверить в первую очередь?
Правильно, нужно оттестить сохранение в файлы разных форматов, со всеми доступными сочетаниями настройек этих форматов (типы компрессии, количество цветов, ...)
Что еще? Ах да, размер виртуального листа, на котором будет происходить рендеринг нашего документа может быть задан в промежутке от A5 (листок из школьной тетрадки) до A0 (полноразмерный чертеж). Плюс к тому, разрешение принтера (DPI, кол-во точек на дюйм) тоже можно задать в диапазоне от 100 до 2400 DPI.
Уже все? Не совсем. Практика показывает, что обмен настройками между разными приложениями (MS Word, Adobe Acrobat, Autodesk AutoCAD) и принтером не всегда происходит одинаково. Если мы не хотитм, что бы наш драйвер выдавал BSOD-ы, этот пункт нужно тоже хорошо оттестить.
Ну вот. Теперь, используя комбинаторику можно прикинуть какое количество опытов нужно провести, что бы проверить готова программа к выпуску или нет.
Чуть не забыл, в Universal Document Converter есть SDK для девелоперов, желающих автоматизировать конвертирование документов в PDF, TIFF и другие форматы. Работоспособность программы в этом режиме тоже нужно проверить.
Вот теперь все. Какой-нибудь месяц времени, пара выжатых насуха бета-тестеров, нервно дергающий глазом ведущий программист программного продукта и программу вожно паковать!
А теперь скажите мне, кто будет заниматься этим в качестве хобби?!
Если бы вы знали, какого уровня вопросы задают иной раз пользователи... Особенно владельцы е-мелов вида user@aol.com
:-(
Но как потенциальные клиенты узнают о вашем замечательном продукте? Разработка нормального веб-сайта и хоть какая-то реклама стоят денег. Можно, конечно, спускать на это дело половину зарплаты, но что тогда будет есть ваше семейство?
Уверяю вас, вы умрете с голоду! Поверьте, я занимаюсь этим вопросом на коммерческой основе с 1998 года и знаю о чем говорю ;-)
Пример? Да вот хоть GhostScript. Очень многие шареварщики используют его в виде DLL для бесплатной поддержки чтения PDF и EPS в своих программах.
А теперь вопрос: кто-нибудь из читающих этот топик пробовал разобраться в его исходниках и исправить пару багов?
Мои коллеги пробовали (уж очень нам хотелось бесплатного PDF-а). И пришли к выводу, что проще будет написать свое решение.
И уверяю вас, что не одни мы такие немощные. Я неплохо знаю авторов программы PDF-XChange Viewer (актуальная версия программы показывает PDF не хуже Акробата и уж точно лучше, чем китайский Foxit). Так вот, они тоже не остилили исходников GhostScript.