Intellij Idea Ide

  • Upload
    btotco

  • View
    258

  • Download
    0

Embed Size (px)

Citation preview

  • 7/28/2019 Intellij Idea Ide

    1/12

    Maximizing stabilitywith IntelliJ IDEA

    The most in te l l igent Java IDE around

  • 7/28/2019 Intellij Idea Ide

    2/12

    Maximizing stability with IntelliJ IDEA

    1

    CONTENTS

    Introduction: to IDE or not to IDE? 2

    Why IntelliJ IDEA 3

    HigherComfortandProductivity 3

    Detailsmakethedifference 3

    Whenaneditorisreallyintelligent 3

    IntelliJIDEA:HigherROI 4

    ComingInOnTimeandUnderBudget 4

    StaticAnalysisEffectiveRemedy 5

    RefactoringReduceMaintenanceCosts 6

    IntelliJIDEAHowYouCanSellBetter? 7

    Conclusion 9

    Develop with pleasure 10

    Customers 10

    Awards 10

    References 11

    Contents

    Copyright2008 JetBrains, Inc.

  • 7/28/2019 Intellij Idea Ide

    3/12

    Maximizing stability with IntelliJ IDEA

    2

    Introduction: to IDE or not to IDE?

    AccordingtoresearchcompletedbytheStandishGroup[7],onlyonethirdof

    U.S.projectsin2004werecompletedontimeandonbudget,withallfeatures

    andfunctionsoriginallyspecified.Morethanhalfwerecompletedoverbudget,

    late,andwithfewerfeaturesandfunctionsthaninitiallyspecified.Eachsixthto

    seventhprojectfailedentirely.

    Tomitigatetheserisksandsucceed,oneneedsthemeanstofacilitatethedevel-

    opmentprocess,improvecodequalityandlowerthetotalprojectcostofowner-

    shipandrelatedexpenses.Andquiteclearly,atthecoreofanysoftwareproject

    areitsdevelopersandthetoolstheyuse.

    Thetruebelieversofthesoftwaredevelopmentworldactuallyfollowtwoop-

    positereligions:

    Thefirstcampbelieves: The more experienced your team, the better the results

    Thesecondonestates: The better your development tools, the more productiveyour team.

    ThisideawasnicelyexplainedtothepublicbyOliverSteele[1],whohaseven

    createdagraphicalrepresentationofthesetwopointsofview:

    Thispictureverycloselyemulatesreality,butthequestionarises:Why are peo-

    ple so rarely ready to compromise?Whydonttheybelievethatcombiningthe

    twoapproachescanmaketheproductivitypicturemuchmoreattractive?Just

    equipadevelopmentteamofanylevelwithaprofessionaltoollikeIntelliJIDEA

    andtheresultwillbeimmediateandcompelling:

    Introduction

    There are two kinds of people

    in the world, those who believe

    there are two kinds of people in

    the world and those who dont.

    Robert Benchley

    Benchleys Law of Distinction

    US actor, editor, author &

    humorist (1889 - 1945)

  • 7/28/2019 Intellij Idea Ide

    4/12

    Maximizing stability with IntelliJ IDEA

    3

    Why IntelliJ IDEA

    Higher Comfort and Productivity

    Details make the difference

    WhenspeakingabouthowcomfortabledevelopersfeelwithIntelliJIDEA,ween-

    counteraseriousproblemcomfortcannotbemeasured.Howcanoneexplain

    inmeasurableterms,forexample,whyonechairismorecomfortableforyou

    thananother?Whatfeatureorqualityismoreimportantthananother,andTO

    WHATEXTENT?Certainly,itispossibletocompareeachfeaturestepbystep

    thisbackismoreergonomic,thatarmisadjustable,theswingingactionhas

    anadjustablespring,thishasanadjustablehead-rest,thisisItwouldbegreat

    ifsuchadvantageswerefew,easilyidentifiedandeasilymeasured.Butwhatif

    therearehundreds?Orthousands?Whatifthecomfortlevelresultsfrommany

    smalldetailswhatthen?

    IntelliJIDEAscomfortlevelissomethingthatcanbereallymeasuredempirically.

    Anditisimmediatelyevident.IntelliJIDEAsimplynevergetsintheway.Itnever

    imposesawayofdoingthings.Rather,itunobtrusivelyprovidesintelligentas-

    sistanceandsuggestsimprovementslikenootherdevelopmenttool.

    When an editor is really intelligent

    EachoftheindividualfeaturesinIntelliJIDEAincreasestheuserscomfortand

    contributesto productivity,thewayclosertolerancesandfinerconstruction in

    amusicalinstrumentpullthebestperformancefromamusician.Ifthedevilis

    inthedetails,soistheintelligencethatmakesaBestofBreedIDE.Forexam-

    ple,IntelliJIDEAssavvycodecompletions,convenient-to-useintentionactions,

    unparalleledcodeanalysistoolsandmanyincrementaleditorenhancements

    eachfeatureseparatelyistop-notchinitsclass.ButIntelliJIDEAstruestrength

    andunsurpassedadvantageareinthewhole.Beingfusedtogether,itsfeatures

    formanorchestraofpowerfulinstruments.IntelliJIDEAmakesthedevelopers

    reallycreativeandpullstheverybestfromthemduringdevelopment.

    Whatbenefitswillanyteamgainbyusinganintelligenteditorliketheonebuilt

    intoIntelliJIDEA?Increasedcomfortandenhanceddevelopmentproductivity,at

    minimum.Theresultwillbeimmediateandvisible,aslowerprojectcostsandac-

    celeratedtime-to-completion.

    Why IntelliJ IDEA

    IntelliJ IDEA has enabled us to

    use a compact, extremely us-

    able development environment

    for all our developers without

    any additional installation or

    customization efforts. By bring-

    ing good ideas and patterns

    near to our developers, we have

    enabled them to learn by doing,

    having overall quite impressive

    results.

    Christopher Semturs

    Product Development

    OBJENTIS Software

    Integration GmbH

    IntelliJ IDEA has a very conve-

    nient and user friendly interface

    and a lot of handy and helpful

    features. Its IntelliJence, look

    and feel, and speed compared

    to the rest of crowd, especially

    with IntelliJ 4.0, have been a big

    plus.

    Chetan Shah

    Executive Vice President,

    Technology

    Synygy, Inc.

    IDEA knows everything you

    want to do. The product boosts

    your productivity immediately andafter that, the more you put into

    it, the more you get out of it.

    Ken Watts

    VP Platform Engineering

    Documentum

  • 7/28/2019 Intellij Idea Ide

    5/12

    Maximizing stability with IntelliJ IDEA

    4

    IntelliJ IDEA: Higher ROIBesidescomfort,thereisanotherbenefitofIntelliJIDEAanditcanbemeasured.

    ThatishowcostefficientitistoownIntelliJIDEA.

    Atfirstglance,itmaynotbeobvioushowacommercialproductcanallowacom-

    panytosavemoneycomparedtousingfreeproducts.AsBoehmandSullivan

    notedin theiranalysisofmodernsoftwareeconomics [5],most ITdecisionsin

    theindustrytodayaremadebyfindingtheminimumcostapproachasopposed

    tosearchingforthemaximumvaluesolution.Ittakesmorethanremarking,You

    getwhatyoupayfor,toovercomethissystemicpredispositiontovalueshortterm

    penniesabovelonger-termdollars.

    Letustakealookatthestateofprojectsinthesoftwareindustrytoseewhy

    thosetemptingshort-termpenniesoftenturnintosurprisinglyexpensivedrains

    onproductivityandoperatingbudgets.

    Coming In On Time and Under Budget

    Detailedprojectanalysisshows[6]thatforasinglesoftwareorganization, the

    estimated time to rework code (fix defects and bugs in software) can be as

    high as 80% of total project development costs.Doesanybodyplanforsuch

    anicredibleexpenseintheirprojectbudgetstorectifymistakes?Ofcoursenot,

    butmistakesdocometopassnevertheless.

    The2004CHAOSreportfoundtotalU.S.projectwastetobeabout$55billion[8](includinglostdollarvalueandcostoverruns).Totalprojectspendingwas

    foundtobe$255billioninthe2004report.

    TheU.S.Department ofCommerce[4]reported that theeconomicconse-

    quencesofinadequatesoftwarequalitymanagementpractices,namelytest-ing,amountedto$59.5billionwastedperyear.

    Thenumbersaresimilar,arentthey?

    Why IntelliJ IDEA

    IntelliJ IDEA will save you time

    and money. For developers,

    IDEA promotes the rapid cre-

    ation of clean, reusable, and

    well documented code. For

    managers and architects, IDEA

    makes it possible to quickly nav-

    igate, review, and refactor code

    projects large and small.

    Mike Sick

    VP Development

    UserMagnet, Inc.

    From a business point of view,

    the cost is very attractive. Not

    free, but at a really good price

    point that immediately offers a

    very apparent ROI.

    Bruce Kratz

    Director, Engineering East

    HP Web Services Management

    Organization

  • 7/28/2019 Intellij Idea Ide

    6/12

    Maximizing stability with IntelliJ IDEA

    5

    Itisobviousthatmistakesinthetestingprocesscangiverisetomonstrousre-sultsallthewayuptototalprojectfailure.

    AsoriginallynotedbyBarryBoehm,the defect repair cost increases by a fac-

    tor of ten for each successive stageofdevelopment.Adefectthatcostsone

    hourtofind,fix,andretestinunittests,wouldcosttenhoursinthenextstage,

    100hourstwostageslater(systemtest)and1000hoursaftershipping.

    Withsuchexponentialincreases,weshouldhardlywonderattheastronomical

    costsofoverruns!

    Fortunately,SoftwareEngineeringhasinitsarsenalvariousefficientmethodsto

    dramaticallyreducesuchnoticeableoverhead.IntelliJIDEAcontainsmanycost

    reductionfeaturesthatcomestandard.Furthermore,themakersofIntelliJIDEAwerethefirsttorealizetheimportanceofsuchfeatures,implementthemina

    product,andintheprocesscreatewhatisconsistentlyreferredtoastheindus-

    trysleadingJavaIDE.

    Static Analysis Effective Remedy

    Staticanalysis(codeinspections)isasetoftechniquesforanalyzingsource

    codeandsoftwaredesigns.Itdoesnotrequirethesoftwaretobeexecutedto

    produceresults.AsKhaledElEmamshows[2,3],theaverageeffectivenessof

    inspections(inproportiontodefectsinthecodethatarefoundduringinspection)

    is57%.Thismeansmore than half of the defects in the code can be found

    using inspections. According toKhaled ElEmam, code inspections allowone to reduce any project cost by 35-40%(andalsoraisecodequalityand

    reduceriskofprojectfailure)duetotimelylocationandcorrectionofdefects,

    increasedcodereuse,andhigherdevelopmentproductivity.

    Thefigurebelowshowsthesequenceofmechanismsthatwouldleadtocon-

    cretebenefitsfromtheuseofstaticanalysisfeatures,asfoundinIntelliJIDEA.

    IntelliJIDEAistheonlyIDEwithmore than 600 typesofintelligentautomated

    codeinspectionsintegratedseamlesslywithinit.Manycompetitorsdonteven

    haveinspectionfunctionalities.

    Besidesfindingdefects,IntelliJIDEAeasestheproblem-correctionprocessby

    Why IntelliJ IDEA

    Editors ability to perform

    background code analysis al-

    lows developers to write code

    that compiles and runs correctly

    the first time, reducing the time-

    consuming edit-compile-debug

    cycle.

    Gordon Tyler

    Software developer

    Quest Software, Inc.

    Most of our engineers do not

    get any errors at all during com-

    piling because IDEA catches

    them all during editing. The time

    we save is remarkable.

    Ken Watts

    VP Platform Engineering

    Documentum

  • 7/28/2019 Intellij Idea Ide

    7/12

    Maximizing stability with IntelliJ IDEA

    6

    providingready-to-go improvementsfor themostfrequenterrors.Moreover,apowerfulon-the-flycodeanalysismechanismmakescodeanalysisevenmore

    efficient,showingpossibledefectsinstantly.Asaresult,thecodeislesserror-

    prone;sothereisnoneedtorecompileitfrequently,whichsavesadditionaltime,

    especiallyonlargeprojects.

    Staticanalysisresultsinhighercodequality.Aswewillshowbelow,higherprod-

    uctqualityalsomakesforincreasedprofit.

    Refactoring Reduce Maintenance Costs

    Current ITmarket research[9, 10, 11] shows thatcustomization, including

    legacy modernization and integration projects, represents more than halfof all software budgets.Averagemaintenancecostsarehigherthandevelop-

    mentcosts,andthisexcessespeciallyforcustomsystemdevelopmentcan

    turnouttobeamultiplieroftwo,ten,orevenonehundredfold!

    ResearchbyRobertM.Leitch[12,13]showedthatapplying refactorings can

    reduce software maintenance costs by almost half.

    Refactoringisnotsomeesotericprogrammingtechniqueconceivedjustfor

    computersciencestudentstoargueaboutwiththeirprofessors.Theproblemsit

    solvesareexpensiveandoftenhavestrong,negativeconsequencesforcompa-

    niesintermsofcustomerrelations,dataaccuracy,downtime,andcodemainte-

    nance.Properlycarriedout,refactoringmakescodelessexpensivetomaintain,

    easiertoupdate,morereusableforlaterprojects,andlessconfusingtoother

    programmerseitherinotherdepartmentsorwhocomealonglatertoreuseor

    redesignit.Forcompanies,thequalitativeROIisimmediateasbugsstopcreep-

    ingintocode,cleancodeisproducedfaster,andfewerprogrammershaveto

    spendtimecorrectingthemistakesofothers.These savings quickly become

    quantitative, as general overall costs go down.

    Refactoring enhances architectural flexibility. Refactored code is reduced in

    overallsize,soitbecomeslessknottyandcomplex,andbecomeseasiertoread.

    Suchcodecanbemoreeasilymodified,extendedandadaptedwithoutrisking

    completesystemdisintegration.

    Why IntelliJ IDEA

    IntelliJ IDEAs powerful refac-

    torings coupled with its deep

    insight into our code provide

    us with the knowledge and the

    tools to write new code and

    maintain existing code in an ef-

    ficient manner.

    Gordon Tyler

    Software developer

    Quest Software, Inc.

    IntelliJ IDEA helps us by pro-

    viding assistance in the every-

    day task of writing code by au-

    tomating repetitive tasks in an

    intelligent manner and giving

    incredible insight into our codes

    structure and semantics.

    Gordon Tyler

    Software developer

    Quest Software, Inc.

    IDEA is the best tool to use to

    learn about code that you didnt

    write personally.

    Brian Robinson

    Senior software designer

    HP Web Services Management

    Organization

  • 7/28/2019 Intellij Idea Ide

    8/12

    Maximizing stability with IntelliJ IDEA

    7

    Foreverydaycoderefactoring,IntelliJIDEAcanbecomeaverypowerfulhelpinghandforanymaturedeveloper,savinginvaluabletimeandresources(savings

    whichequatetolowerprojectcosts).

    Inthisarea,amongothers,IntelliJIDEAexcels.Itoffersanextensiverefactor-

    ingarsenal.Morethan60distincttoolsautomatetimeconsumingandtedious

    refactoringproceduresandmakeIntelliJIDEAtheindustrysleadingrefactoring

    specialist.In refactoring, IntelliJ IDEA has no equal.

    CodingwithatoollikeIntelliJIDEAissafer;itdoesnotletyouproduceincom-

    patiblecode,andalwaysprovidesthenecessarywarningstohelpavoidsuch

    anoutcome.Moreover,itspowerfulUNDOstack,plussmartLocalHistoryfea-

    ture,letsyouroll-backtoapreviousfileversion,takingintoaccountallrelevantproject-levelchanges.AllIntelliJIDEAcomponentsworkasasingle,well-tuned

    machine,intotalharmony,aperformancelevelimpossibletoobtainfromany

    IDEwithlooselycoupledmodules.

    IntelliJ IDEA How You Can Sell Better?

    Itiswellknownthatthehigherqualitycodeasoftwarecompanyproduces,the

    loweracustomerspost-purchasecosts.Butwhatisntaswellknown,ishow

    muchonecanalsosaveintheprocessofproducingbettercode.

    Basedondatacollectedaboutsoftwaredefectdensityfromcompaniesatdiffer-

    entmaturitylevelsandpublishedbyC.Jones[14],andusinghisownmethod,KhaledElEmaminhissurveyhascalculatedthereductionincustomerowner-

    shipcostsasaresultofavendorsimprovedsoftwarequality.

    Itwasfoundthatthecosttocustomerslowereddramaticallyassupplierand

    softwarematurityincreased.A customers cost reduction between the worst/

    average and best-in-class companies, depending on business sector, proj-

    ect size, and country, ranged from 53% to 74%!

    Thismeansacustomerwhobuyssoftwarefromacompanythatdeliversabest-

    in-classproductcuts post-purchase costs by about 70%comparedtothosev

    whobuythesametypeofsoftwarefromaworst-in-classperformer,and more

    than 50%lessthaniftheybuyonlyanaverageperformer.

    Why IntelliJ IDEA

    IDEAs refactorings give our

    developers the ability to make

    structural changes to their codewith the confidence that it will

    still compile and run correctly

    afterwards.

    Gordon Tyler

    Software developer

    Quest Software, Inc.

    IntelliJ IDEA improves both the

    quality and predictability of sched-

    ules, which improves customer

    satisfaction, so it has a positive

    effect on the bottom line.

    Ken Watts

    VP Platform Engineering

    Documentum

  • 7/28/2019 Intellij Idea Ide

    9/12

    Maximizing stability with IntelliJ IDEA

    8

    Thefactis,companiesthatproducehigherqualitysoftwarelookmoreattractivetothemarket,andnotonlythat,theycanbetterjustifytheirpricesandrates,

    becausetheircodequalityprovidesanoverallsavingstotheircustomerssav-

    ingsthat,inmanycasesexceedtheactualinitialandannuallicensingcostsof

    thesoftware.

    AllthesefactorsholdtrueforIntelliJIDEA.JetBrainsdeveloperswritethecom-

    panysproductsusinganadvancedintelligentdevelopmenttool(IntelliJIDEA)

    sotheyproducehigherqualitycode.JetBrainscustomerswhouseIntelliJIDEA

    saveontheirpostpurchasecosts,justasdotheircustomers.

    Why IntelliJ IDEA

    Were developing enterprise-

    level software for financial in-

    stitutions, telecoms, and other

    large customers who spend

    anywhere from hundreds of

    thousands to millions of dollars

    on our products. Fault toler-

    ance, high scalability and non-

    stop operation are critical and

    our code has to be top quality.

    IDEA allows us to produce a

    better product, faster and more

    efficiently.

    Bruce Kratz

    Director, Engineering East

    HP Web Services Management

    Organization

  • 7/28/2019 Intellij Idea Ide

    10/12

    Maximizing stability with IntelliJ IDEA

    9

    Conclusion

    Intheend,whatdoesitalladdupto?Ontheonehand,byusingIntelliJIDEA

    youcandramaticallyreduceyourprojectexpensesandmaintenancecosts.On

    theother,youcanbetterjustifyyourserviceratesandproductpricesbecause

    youproducebest-of-breedcode.Clearly,yourrevenuewillshootup.Youllsee

    theresultsassoonasyoustartusingIntelliJIDEA,andyouhavenothingtolose

    butyouroldIDE.

    Higherdeveloperproductivityfollowsfromimprovedworkingcomfort.Morede-

    fectsaredetectedandcorrectedbeforetheyaffecttheoverallproject.Theresult

    ishighercodequality,ashortertime-to-marketperiod,andadditionaldividends

    fromhavingagoodreputation.

    Canadoptingthebest-of-breedIDEproduceallthesebenefits?YES.Itsaneasy

    assertiontoprovesimplyuseIntelliJIDEA,experienceitsbenefits,andyoull

    neverlookback.

    Conclusion

  • 7/28/2019 Intellij Idea Ide

    11/12

    Maximizing stability with IntelliJ IDEA

    10Develop with pleasure

    Develop with pleasure

    Customers

    More than3000companies, includingmore than100 ofthetop Fortune500

    firms,spanningover70countries,nowputtheirtrustinJetBrains.Theyrepre-

    sentsuchdiverseindustriesasfinance&banking,automotive,biotechnology,

    enterprisesystemsoftwaredevelopment,ITinfrastructuremanufactures,mobile

    handsetmakers,fossilfuel& petroleumenergy,andmuchmore.Additionally,

    JetBrainstoolsareusedbyuniversitiesallovertheworldtohelpsimplifyteach-

    ingandtoencourageimprovedmethodologiesandpracticesinobject-oriented

    programming.

    Fortune 100

    AmericanExpress

    BankOfAmerica

    CiscoSystems

    Citigroup

    FORD

    FREDDIEMAC/MERRIFIELDWHSE

    Hewlett-PackardCompany

    GEMedicalSystems

    LockHeedMartin

    MerrillLynch

    NorthropGrumman

    Verizon

    WaltDisneyWorld

    WellsFargoBank

    Fortune 500

    AgilentTechnologies,Inc.

    AlleghenyEnergySupply

    Conseco

    DTEEnergy

    EMC

    FannieMae

    FirstDataCorporation

    Humana

    Morgan StanleyCapital International

    S.A.

    NIKEInc.

    Oracle

    RaytheonCompany

    SunMicrosystems

    TribuneInteractive

    XeroxCorporationAwards

    2007, 2006,2004, 2003 20052005

    2008, 2005,2004

    2004, 2006 2004, 2003,2002 2003, 2002 2003 2002

  • 7/28/2019 Intellij Idea Ide

    12/12

    Maximizing stability with IntelliJ IDEA

    11

    References

    OliverSteele,TheIDEDivide,http://osteele.com/archives/2004/11/ides1.

    KhaledElEmam:ReturnonInvestmentModelsforStaticAnalysisTools,2.

    Klocwork.,2003

    KhaledElEmam:TheROIfromSoftwareQuality:AnExecutiveBriefing,3.

    KSharpTechnologyInc.,2003.

    RTI,TheEconomicImpactsofInadequateInfrastructureforSoftwareTest-4.

    ing, Technical Report, National Institute of Standards and Technology

    2002.

    B.BoehmandK.J.Sullivan,invitedpaper,SoftwareEconomics:ARoad-5.

    map, 22nd International Conference on Software Engineering, June,

    2000.

    Shull,F.,Basili,V.R.,Zelkowitz,M.V.,Boehm,B.,Brown,A.W.,Costa,6.

    P,Lindvall,M.,Port,D.,Rus,I.,andTesoriero,R.WhatWeHaveLearned

    AboutFightingDefects.InternationalSoftwareMetricsSymposium,Ottawa

    Canada.2002.

    AnnualCHAOSReport,TheStandishGroupInternational,Inc.,20047.

    8 CHAOSChronicles,TheStandishGroupInternational,Inc.,20048.

    HowITspendingischanging,McKinseyQuarterly,20049.MorganStanleyCIOSurvey,200310.

    IanSommerville,LutzPrechelt,SoftwareEvolution,IanSommerville2004,11.

    SoftwareEngineering,7thedition

    RobertM.Leitch,AssessingtheMaintainabilityBenefitsofDesignRestruc-12.

    turingusingDependencyAnalysis,UniversityofAlberta,2002

    EleniStroulia,RobLeitch,UnderstandingtheEconomicsofRefactoring,13.

    MacDonald,DettwilerandAssociates,Ltd.,2003

    C. Jones, Software Assessments, Benchmarks, and Best Practices:14.

    Addison-Wesley,2000.

    Develop with pleasure