CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications...

13
Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation, for the U.S. Department of Energys National Nuclear Security Administration under contract DE-AC04-94AL85000. CMDV Software: SW Engineering Education Mike Heroux Senior Scientist Center for Computing Research Sandia National Laboratories Collaborators at this meeting: Andy Salinger Anshu Dubey http://tinyurl.com/HerouxAcme2016 1 Learning ^

Transcript of CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications...

Page 1: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation, for the U.S.

Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000.

CMDV Software:

SW Engineering Education

Mike HerouxSenior ScientistCenter for Computing ResearchSandia National LaboratoriesCollaborators at this meeting:Andy SalingerAnshu Dubey

http://tinyurl.com/HerouxAcme2016

1

Learning

^

Page 2: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

Research Methods

Somerelevantbackground

2

Scientific Libraries

Miniapps

Benchmark

Libraries & FrameworksIDEAS2Reproducibility

Libraries & Applications

Productivity & Sustainability

AnshuDubey

Page 3: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

CodeComplete:Useful“Overhead”§ CodeComplete:Ultimatevalueiscode.

§ Shouldweonlywritecode?§ Somenon-codingactivitiesimprovecode.

3

“Plans are worthless, but planning is everything.”Dwight D. Eisenhower

“Give me six hours to chop down a tree and I will spend the first four sharpening the axe.”

Abraham Lincoln

Page 4: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

GeneralStrategy§ Interview,analyze,prototype,test,revise,deploy.Repeat.§ Realistic:Thereisacost.

§ Startup:Overhead.§ Payoff:Bestifsoon,clear.

4

Cos

t

ProgressStart Finish

Old ProcessNew Process

Page 5: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

FirstCMDVSWActivity:Interviews

§ Interviews+AndySalinger:§ RobJacob,ANL,ACMESE/CPL.(10/10/16)§ Balwinder Singh,PNNL,ATMIntegrator.(10/13/16)§ ToddRingler,LANL,Ocean/Icelead.(10/13/16)§ Gautam Bisht,LBNL,LandIntegrator.(10/14/16)§ SteveGhan,PNNL,ATM,leadsotherCMDV.(10/19/16)§ Xiaojuan Yang,ORNL,land,juniormember.(10/20/16)§ PhilipCameron-Smith,LLNL,ATM,senior.(11/2/16)

§ Diversecross-section:Lab,Component,ProximitytoSEGroup,Experience.

§ NotesandsummaryonConfluence.5

Page 6: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

Somecommoninterviewthemes§ Softwarechallengescompetewithother

highprioritydemands.§ Urgencyofsciencechallengesisparamount.§ Softwareimprovementmustbeintroducedcarefully,

withtimelyandhighlyprobablepayoff.

§ ChallengeworkingwithGit,especially:§ Efficientmanagementofsimultaneousdevelopment

ofsharedcode.§ Uncertaintywithuncommonbutessentialprocesses.§ UncertainunderstandingofhowGit reallyworks.

§ Testingconcernsmentionedoften:§ Testingprocessnotuniform.§ Nostandardtestharness.§ Groupsevolveowntestingapproaches.

§ Unittestingoftenmentioned:§ Desireforquicker,morelocalizedtesting,i.e.,unit

testing.§ Concernaboutfeasibilityofunittesting.

§ Shortenthedevelopmentcycle:§ Morefeatureswithlesswork.§ Fewermergeconflicts.§ Lowerbarriersforscientist-developers.

§ Desireforbetter,moreuniformdevelopertrainingandminimalskilllevels.§ Basicdeveloperworkflows.§ Codingstandards;readable,sustainablesourcecode.§ Effectivecommitlogmessages.§ Temperedbyconcernsoftoomuchemphasis.

§ Toolsandprocessesshouldbekeptsimple,easy-to-use:§ ACMEteamisdiverse,simplicityisimportant.§ ExternalcollaboratorscanmoreeasilycontributetoACME

anduseproduct.

§ Learningopportunitiesshouldbevaried:§ Newteammemberorientation.§ Face-to-face,webinars,individuallearningplans.§ On-demandaccesstosoftwareexperts.

§ Programmingforperformance:§ Basicperformanceconcepts.§ Performanceportability.

§ Challengesusing JIRAeffectively,especiallyinthepresenceofGitHubissues.§ GitHubissuesuseddaily,consideredessential.§ JIRAusedlessfrequently,oftenanafterthought.

6

Breakout #2 at 9:50am (Dubey, Wilke)

Page 7: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

LearningStrategies§ Goalforthismeeting:

§ Makecontacts:§ Goto http://tinyurl.com/acme2016learn§ Pickatimetomeetwithme.

§ Findouthowyoulearnbest.

§ Possibilitieswaystolearn:§ Real-time,face-to-face?SoftwareCarpentry.§ Real-time,webinar?CoordinatewithLCFs.§ Recorded,webinar?By-productofrealtime.§ MOOC,SPOC?Udacity,etc.Pluslocalexpert.§ Individualized?

§ Slack,On-demand?§ Github-based?§ Audible(myfavoritewaytolearn).

§ Whatcanworkforyou?Letmeknow.

7

Page 8: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

Clearlearningsubject:Git§ Powerful,challenging.§ “Defensive”Git Training§ Teachbasicworflows:yes.§ Teachalso:

§ Preparetoavoiddisaster.§ Preparefordisaster.

§ Practicedisasterrecovery:§ Createdisaster.§ Recover.§ Insafesetting.

§ Howtodeliver?Towhom?

8

With Git as your source management tool, everyone feels stupid.

John Cary

Page 9: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

CommitmenttoQuality

Canadianengineers'oath (takenfromRudyardKipling):

MyTimeIwillnotrefuse;myThoughtIwillnotgrudge;

myCareIwillnotdenytowardthehonour,use,

stabilityandperfectionofanyworkstowhichImaybe

calledtosetmyhand.

9

http://commons.bcit.ca/update/2010/11/bcit-engineering-graduates-earn-their-iron-rings

Page 10: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

Productivity++InitiativeAsk:IsMyWork_______?

https://github.com/trilinos/Trilinos/wiki/Productivity---Initiative

Productivity++ Traceable In Progress Sustainable Improved

Version(1.2(

Page 11: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

11

XXX,

Please note: Below is a request for information, not scrutiny of your process. Please read from this perspective.

I am wondering if the change you made below is covered by tests. Specifically, is there anything in the test suite for package X to confirm that the changes you made are the changes you intended to make? If not, is there another way you are assuring that the change is covered by tests?

I am not asking for the purposes of questioning your process, but I am probing the accuracy of a simple metric and tool I want to use for monitoring code quality. Specifically, I would like to scan Git commits to see of a source tree change has a corresponding test tree change. But I want to understand the weaknesses of this simple metric if we were to use it. My intention would be toinform developers about their commits to source without commits to test.

I would appreciate your thoughts on this.

Thanks.

Mike

On 8/13/16, 1:07 AM, "Trilinos-checkins on behalf of XXX XXX" <[email protected] on behalf of XXX@XXX> wrote:

Branch: refs/heads/developHome: https://github.com/trilinos/TrilinosCommit: xxxxxxxxx

https://github.com/trilinos/Trilinos/commit/xxxxxAuthor: XXX XXX <XXX@XXXDate: 2016-08-12 (Fri, 12 Aug 2016)

Changed paths:M packages/xxx/src/file1.hppM packages/xxx/src/file2.hpp

Recentemailexchange

Page 12: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

12

Sorry Mike. I’ll add a test right now.

XXX,

Please don’t take my request as a spur to write the test sooner than you would otherwise. I am really just probing to see if the simple metric I have is a good indicator.

So my question is: My metric (committing to source without committing to test) would suggest that the activity decreased software quality in this situation. From your perspective, is this true?

Thanks.

Mike

P.S. I guess the Heisenberg Uncertainty Principle applies to software systems as well: Can’t probe for quality without changing behavior ☺

I disagree with your assessment. My fix was hasty so I didn’t add a test. I am now remedying that.

Page 13: CMDV Software: SW Engineering Education · Reproducibility IDEAS2 Libraries & Applications Productivity & Sustainability Anshu Dubey. Code Complete: Useful “Overhead” ... § Final

Summary§ Ihaveexperiencedthe“help”ofSWEngineeringExperts.

§ Craycirca1990,ASCIcirca2000§ Ignoredtheirownprocess:

§ Failedtoelicit,analyzerequirements.§ Slappedonpre-definedsolutions.§ Failed.

§ Hopefullyrealistic:Thiswillnotbeeasy.§ Goals:

§ IDbiggestopportunities.§ Createcontentanddeliverystrategies.§ Workwithyou.§ Goto http://tinyurl.com/acme2016learn tosignuptotalk.

§ Finalmessage:§ Aspiretoimproveonyourown.§ IhaveshelfmagnetsJ

13