Why software sucks.docx
- 文档编号:14432451
- 上传时间:2023-04-23
- 格式:DOCX
- 页数:21
- 大小:170.65KB
Why software sucks.docx
《Why software sucks.docx》由会员分享,可在线阅读,更多相关《Why software sucks.docx(21页珍藏版)》请在冰豆网上搜索。
Whysoftwaresucks
Whysoftwaresucks
(Andwhattodoaboutit)
Noonemakesbadsoftwareonpurpose.Nobenevolentprogrammerhaseversatdown,planningoutweeksofwork,withtheintentionoffrustratingpeopleandmakingthemcry.Badsoftware,orbadanything,happensbecausemakingthingsishard,makinggoodthingsdoublyso.Thethreethingsthatmakeitdifficultare:
1.Possessingthediverseskillsneedednottosuck.
2.Understandingwhoyou’remakingthethingfor.
3.Orchestratingtheinterplayofskills,egosandconstraintsoverthecourseofthetimerequiredtomakethething.
Individuallythesechallengesaresignificant,butcombinedtheycreateawallofsucksohighthatfewpeoplecanseethetop,muchlessthrowanythingovertotheotherside.
Whatitmeanstosay“thissucks”
Wheneveryouhearsomeonesay“Thissucks”theyaredoingseveralthingssimultaneously:
expressingfrustration,experiencingshock,usingcriticismtomaskfeelingsofhelplessnessinacrueluniverse,and,mostimportantly,communicatingthegapbetweentheirexpectationsandreality.It’sraretohearpeoplecomplainaboutthingstheydon’tcareabout(althoughIoncehaddinnerwithamancapableofcomplainingabouteverythingthat’severhappenedtoanyoneanywhere).Onewaytothinkabouthowpeoplerespondtothingsisthisspectrum:
∙Whatisthisfor?
∙Ihavethatbuthaven’ttriedit
∙I’mannoyedbythis,butIdon’tneeditoften
∙ThisSucks
∙Thisisacceptable
∙Thisiscool/Iloveit
∙ThisworkssowellIdon’teventhinkaboutit
Thisisonerepresentationofhowpeoplerespondtothings(thereareothers).Thepointofthisrepresentationisthat“thissucks”isrightinthemiddle.Inorderforpeopletosay“thissucks”theyhavetocareenoughaboutthethingyou’vemadetospendtimewithitandrecognizehowbaditis.Forthingsthatareequallybad,butareunimportanttosomeone,youwon’thearthesamecomplaint.We'refrustratedmostinlifebythingsthatcomeclosetoourdeepestneeds,butdon'tdeliver.It'sthethingsthatteaseus,makingusthinkthey'llsatisfyusbutthenfailing,thanhurtthemost.
Lookingtowardsthebottomofthespectrum,thebetterdesignedsomethingisthemorepositivetheresponsesare.Butthesurpriseisthatthebestpossibledesignformanythings,especiallythingsperceivedaswork,requiresnochangeinbehaviorforthepersonusingthething.Thesedesignsaresogoodtheyeliminateunnecessaryinteractivity:
theyjustdowhatthey’resupposedtodowithoutbotheringyou.(Thinkbetterbatteries,tastierfood,fuelinjectionsystems,webserverupgrades,etc.).
Formostpeople,mostofthetime,theyreallydon’tcareaboutthedetailsofhoweverthethingyou’vemadeworks:
theycareonlyabouttheeffectsofthethingyoumade.Iftheycanenjoymostofthebenefitswithoutanywork,they’llbeveryhappy.
Thissuggeststhatonecommonreasonforsuckageisthecreator(orprogrammer)wantingtosharetheirworld,theinternalworldofhowthingswork,withtheirconsumers.Theymaydothisoutoflove:
"IfIthinkthisisfun,won'tthey?
"Butoftenthereisaviolentmismatchofdesires.Thecreatorwantstheconsumer/usertocareabouttheverythingstheconsumerdoesn'tcareabout.
Forexample:
Creator:
IlovethepowerofUnix/AJAX/C#/whatever.
Customer:
Iwanttofinishmyworkandgoplayoutside.
Sometimesthisloveissostrongthatwhenacreatorhearsa"thissucks"orevena"Ican'tfigurethisout"response,theytakeitasanattackontheirbeliefs,ratherthanfeedbackonthedetailsofthedesign.Creators,oftensensitiveabouttheirwork,mayrespondbyrejectingtheverypeopletheyweresupposedtobedesigningfor,startingtheuglydownwardspiralofresentmentandpassiveaggressivenessbetweencreatorsandconsumers,whichcanendonlywithoneresult:
softwarethatsucks.
Thetranslationtablefor“thissucks”
Ifyoulookdeeper,you’llfindthatwhenpeoplesay“thissucks”theymeanoneormoreofthefollowing:
∙Thisdoesn’tdowhatIneed
∙Ican’tfigureouthowtodowhatIneed
∙Thisisunnecessarilyfrustratingandcomplex
∙Thisbreaksallthetime
∙It’ssouglyIwanttovomitjustsoIhavesomethingprettiertolookat
∙Itdoesn’tmaptomyunderstandingoftheuniverse
∙I’mthinkingaboutthetool,insteadofmywork
Theseissuesrepresentawidediversityofskillfailures.Tomakesomethingofhighenoughqualitytoavoidcausingthesefeelingsinpeople,you’dneedacombinationoftalentsfewindividualshave.Theabovelistrepresentswelldefinedskillsthatinclude:
interactiondesign,softwareengineering,qualityassurance,productplanning/strategy,visualdesignandprojectmanagement.Somerareindividualsaregoodatallthesethingsandgodblessthem,butmostofusneedtoreadsomebooks,admitandgrowoutofourweaknesses,orinvolveotherpeopleifwewanttomakethingsthatdon'tsuck.
Ifweinvertthesefeelings,we’llfindcommonresponsespeoplehavetogoodsoftware.
∙Thissatisfiesmyneeds
∙IcanfigureouthowtodowhatIneed
∙Thisissmooth,seamlessandfun
∙Thisneverfails
∙It’sbeautiful
∙Itisbasedonmyunderstandingoftheuniverse
∙IthinkabouttheresultsIwant,notthetools
Theseresponsesneverhappenbyaccident.Andit'snotbrillianceorgeniuslevelsofskillthatmakesithappeneither.Insteadit'stheorchestration,thecombinationofdifferentskillsthatmakesitallcometogether(ornot).Youmightcallthisdirection,leadership,managementorsomeotherword.Theremightbeapersonwhohasthededicatedroleforit,oritcouldbeacommunalresponsibility.Buthoweverithappens,itdefinesourfirstlaw:
Law#1:
Ifyoudon’tapplytherightskillsattherighttime,youwillmakethingsthatsuck.
Thetrapisthatthislawappliesnomatterhowgoodyouareatanyparticularskill.Atacertainpointthebestthingyoucandotopreventmakingbadsoftwareistostartlearningaskillyoudon'thaveinsteadofimprovingaskillyou'llalreadystrongin.
Thelearningcurvemyth
Someoftheissuesfromthetranslationtableaboveareoftenhiddenbehindthenotionoflearningcurves.Thecreatorwillsay“Nonono:
itdoesn’tsuck.Youjusthavetogetusedtoit"evenifit'sawebsitewithmovingblinkingyellowneontextoralaptopwithakeyboardmadefromdampurinesoakedcardboard.
Thetruthisthathumanbeingscantoleratelotsofstupidannoyingthings:
justbecauseyourwebsiteforcesmybraintorewireitselftoworkaroundyourincompetencedoesn’tmeanyou’vedesignedsomethingwell.Iadmitthattomakeanewthingpossibledemandschange,buthowmuchthatchangenegativelyimpactstheuseristhedesigner’sburden:
theyshouldbeprotectingmefromunnecessarywork.
Asafirstorderprinciple,thebestdesignsrequirenolearningcurve.Thethingshouldbesobrilliantthatitcanimprovemylifewithoutmehavingtodoanythingnew(Ifyouturnyourimaginationonbeforerantingindisagreement,youcanimaginenon-intrusivewaystoimprovemanythings).Threeoutofeveryfivetimessomeonespeaksofalearningcurve,they’rejustindenialaboutaweakdesign.
Thedefinitionofagoodlearningcurvehastwoparts:
1.Thedesignreturnsvaluebeyondthelearningcostpaid.IfIpay10hoursoflearningcurvetime,butget20%moreproductivityafterwards,earningmemytimebackplusmore,it'sagoodtrade.
2.Thedesignmatchesthelearningcurveexpectationsofthecustomer/user.Imightbewillingtosufferanintensetwoweeklearningcurvetolearnanewlanguage(givenmyfaithin#1),butI’drunscreamingbeforeinvestingthatmuchtimejusttoget$50outofmylocalbankmachine.
Whetherthedesignerrealizesitornottheyaredecidinghowmuchofalearningcurveuserswillexperience.Sincemostofthetimemostpeopleareusingwebsites,softwareandotherthingsmadebyotherpeople,it'sgoodadvicetoassumethatpeopledon'twanttoinvestmucheffortinlearninghowtouseyourparticularcreation.They'dmuchpreferyoureusetheknowledgethey'vealreadypaidthepricetolearn.
Theexpectationgap
Expectationsaretricky.Whenwecomplainabouttheworldwe’rereallysayingthatwedon’tlikehowdifferentrealityisfromwhatweexpected.Whensomeonesays“thissucks”they’rereallysaying“thisdoesn’tmeetmyexpectations”.
Sinceeverypersonisdifferent(somemoredifferentthanothers),gooddesignersspendtimetryingtounderstandandworktomatchorexceedpeople’sexpectations.Thisisahighlyspeculativeactivity(therearemethodsthathelp,butthat’snotmypoint).People’sexpectationschangeallthetime,andthelargerthegroupofpeopleyou’redesigningfor,thegreatertheprobabilitythatsomeoftheirexpectationswillbeinconflict.Whichgivesusthefollowinglaw:
Law#2:
Nomatterwhatyoudo,someone,somewherewillthinkyoursoftwaresucks.
Thisisn’tajustificationforbadsoftware.Butitisareminderthateverypieceofsoftwareinthehistoryoftheuniverse(includingAppleproducts)hassomeonesomewherethathatesthem.Asarule,thelargerthegroupofpeopleyouaretryingtodesignfor,themorecomplexthematrixofexpectationsyou,asadesigner/creator,havetomanage.It’sforthisreasonthatmanymarketleadingproducts(music,food,clothes)takesafe,conventionalapproachestohowtheylookandbehave:
they’retryingtofindasweetspot,howeverbland,intheexpectationmatrixofthousands(ormillionsof)people.
Creatorssettheirownexpectationsforotherpeople’sexpectations.Theyimaginehowotherpeopleperceivetheworldandpredicthowthey’llrespondtothedesigndecisionshemakestopleasethem(There
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Why software sucks