LINUX.ORG.RU
ФорумTalks

Направление развития софта

 ,


0

1

Мне всегда казалось, что добавлять новые фичи в новую версию софта можно только после того, как исправлены все баги и проведен рефакторинг в предыдущей. Что плохого в таком подходе, и почему в 99% софта делают наоборот, добавляя только больше багов и быдлокода и понижая производительность?

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



Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: inb4 от vostrik

Вот тебе Critical баг из недавней практики.

Есть некая система ANSYS, за которую уплочено кровными десять штук европейских рублей. Устанавливается-устанавливается, под конец вываливает ошибку, что Tk не может загрузить такой-то модуль, после чего установка типа успешно завершается. При попытке запустить софтину - те же ошибки, связанные с Tk.

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

Представим на минутку, что я не системный администратор, а человек, который этим ANSYS'ом пользуется по прямому назначению - модельки там рассчитывает и, вообще говоря, является рядовым пользователем компьютера, который может разве что переустановить оффтопик и поставить офисный пакет, не знает про всякие скриптовые языки программирования. Каким образом я должен был решать такую проблему? Понимаю, что есть саппорт, но почему разработчики позволяют себе допускать такия ляпусы? Почему я должен тратить своё время на исправление ошибок разработчиков, которые получили от меня круглую сумму?

tiandrey
()
Ответ на: комментарий от tiandrey

Полчаса гуглежа, и проблема решена

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

vostrik
()
Ответ на: комментарий от tiandrey

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

vostrik
()
Ответ на: комментарий от netcat

А еще мне лень подключать сторонние репы, чтобы поставить гнум2.

netcat
()
Ответ на: комментарий от vurdalak

а все баги исправляют практически сразу

в сферическом вакуумном? 4.2, буде есть примеры обратного, что вошло в поговорку про отсрочку перехода на новую версию продукта «до первого сервиспака...»

slackwarrior 😊😊😊
()
Ответ на: комментарий от drBatty

вы думаете, хоть одному кодеру платили за исправление своих багов и рефакторинг???

Знаю не одного кодера, которым в том числе за это платят.

vurdalak
() автор топика

Патаму шта старые баги править неинтересно, плодить новые гораздо более увлекательно :-)

SergMarkov
()

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

Ну и вывод прост - успешный проект всегда будет работать над учовершенствованием и вносить баги ради их-же отлова.

chenger
()
Ответ на: комментарий от chenger

Ну вот смотри. Есть баги вроде 12309, на которые репорты уже давно есть. Тестировщики тут уже свое дело сделали, осталось исправить.

vurdalak
() автор топика

Забыл сказать про пропреитарные продукты. Там все зависит только от рынка. Баги будут правиться только если могут вызвать отток клиентов, как и оптимизация. В других случаях оно «экономически не выгодно» выгоднее бороться за новых клиентов, поднимая функционал. При накоплении критической массы багов все пишется практически с нуля, ставится новая цифирька, маняется немного логотип и продается как «новое, современное решение, в 2(3/4/5...) раз быстрее и функциональнее.

chenger
()
Ответ на: комментарий от vurdalak

При учете что долго ни кто не мог его воспроизвести с вероятностью 100% - не мудрено. ведь о баге надо знать не только что он есть, но и при каких условиях он есть.

Честно говря не следил пристально за ним, но, как понял, его долго искали, несколько раз думали что поправили, ан нет. в каком сейчас состоянии - не знаю.

chenger
()
Ответ на: комментарий от chenger

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

vurdalak
() автор топика
Ответ на: комментарий от vurdalak

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

Как мне помнится, 4 КДЕ тем и прославился что многих отпугнул косяками. Потом опомнились и начали править.

chenger
()
Ответ на: комментарий от vostrik

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

/me посмеялся. vmware workstation на рабочей машине падает по 3 раза на дню, видел несколько ошибок с гордым описанием not_implemented. вроде недешевый ынтырпрайзный софт. релизный matlab 2010a у меня на личной машине просто сыпал эксепшенами за каждым чихом. win7 даже SP1 не сделал надежной, всегда внезапные косяки.

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

zhuravlik
()
Ответ на: комментарий от zhuravlik

VMWare никогда не пробовал, поэтому спорить не буду. А вот виртуалбокс всегда только радовал (да, у него есть свободная версия, но разрабатывает все равно корпорация).

vurdalak
() автор топика
Ответ на: комментарий от vurdalak

А вот виртуалбокс всегда только радовал

Он не все адекватно поддерживает, к сожалению. vmware умеет правильно больше ОС.

И API у него монструозный через COM/XPCOM, в отличие от няшного сишного (нестабильного и со странностями) у vmware. Я молчу про java-бидинги, где название пакета зависит от версии виртуалбокса.

Хотя в целом приятен, ничего не скажешь, и к ресурсам менее требователен.

zhuravlik
()
Ответ на: комментарий от zhuravlik

VMWare я в свое время не стал использовать из-за интерфейса. Он ужасен, ИМХО. Ну а так - все кроме макоси у меня в боксе всегда работало, поэтому не жалуюсь.

vurdalak
() автор топика
Ответ на: комментарий от vurdalak

vurdalak

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

насколько я знаю, все эти твои примеры - не более чем одинаковые системы совершенно разных болезней. Например у меня в KDE 4.7.4 плазма не падает, вроде у других - тоже. Однако, в более ранних и в более поздних релизах плазма падает. Но с чего ты взял, что это связана с одной и той-же ошибкой? Ты что серьёзно думаешь, что в KDE4.0 ошибочно записали х=6, и плазма падает, т.к. х должно быть равно 17, что и исправили в 4.7.4, а в 4.8 опять написали х=6? Вредительство? Саботаж? Происки мысы? Согласись - это всё бред. Тоже самое касается и пресловутого 12309, который то откроют, то закроют. У меня например его нет. Хотя в ядре 3.х он опять открыт с 7го января этого года.

drBatty
()

В коммерческом софте почему-то не ленятся тестировать и исправлять

Ну-ну.

PolarFox
()
Ответ на: комментарий от drBatty

Я думаю, что если плазма в каждой новой версии падает (учитывая, что в саму плазму никаких фич не добавляют), то плазме нужна живительная доза рефакторинга. Как и в случае с 12309.

vurdalak
() автор топика
Ответ на: комментарий от vurdalak

э...

не люблю крестовые и шлицевые отвёртки. Вот был-бы там отбойный молоток, а у меня куча времени - всё-бы раздолбал!

//fixed

drBatty
()
Ответ на: комментарий от drBatty

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

vurdalak
() автор топика
Ответ на: комментарий от vurdalak

Если я уйду в изучение сей, я не буду успевать следить за джавой.

потому я не знаю явы ;)

drBatty
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.