SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Treat Your Code Like the
Valuable Software It Is
Amanda Cinnamon
Amanda.cinnamon@daytonanalytics.com
Poll
▪ Who here has lost days or even weeks of productivity trying
to track down a bug, recovering lost code, or trying to
understand your own code
▪ How many of you consider yourselves software developers?
Introduction
▪ Target audience: analysts who write code
▪ Objective: Basic introduction to principals, tools, and
resources
Overview
▪ Tools
▪ Software Testing Frameworks
▪ Version Control
▪ Concepts
▪ Software Development Life Cycle
▪ Don’t Repeat Yourself (DRY)
▪ Design Patterns
▪ Modularization
▪ Cinnamon Axiom
Why Don’t Analyst Use Software
Development Tools?
▪ Lack of training
▪ Imposter syndrome
▪ Requires investment of time and money
Solution
▪ Knowledgeable mentors
▪ Awareness of available resources
▪ Continuous learning
▪ Owning up to role of software developer
Software Development Tools
Coding Problem
Problems caused by tiny programming errors appear at the
worst time during my analysis and I spend time debugging
when I should be doing my “real” job!
Solution: Software Testing
▪ Types of testing:
▪ Unit tests
▪ Verification
▪ Validation
▪ Integration tests
▪ User test
Unit Test Example
V & V Test Example
0 0.2 0.4 0.6 0.8 1
0
0.5
1
1.5
Time Ratio (t/t0
)
DragAreaRatio(c
D
S/c
D
S
0
)
WiSS-Generated Generic Chute Drag Area Growth Profiles
Ringslot, WiSS
Cross, WiSS
Solid Flat, WiSS
Ringslot, Theory
Cross, Theory
Solid Flat, Theory
300 400 500 600 700 800 900 1000 1100
1
2
3
4
5
6
7
C-130J-30 Exit Time
Fuselage Station (in. aft)
ExitTime(s)
WiSS
AFI11-231
Data Visualization Validation
Source: xkcd.com
Coding Problem
I know I fixed this bug already, but it has suddenly reappeared!
That must have happened when I copied Joe’s version of the
algorithm into my code. Now what was the fix again?
Solution: Version Control Software
Source: https://git-scm.com
Software Development Concepts
Problem
I don’t really know where I’m going with this code. I just start at
line one and hope it does something by the time I get to the
last close bracket.
Solution: Software Development
Life Cycle
Manifesto for Agile Software Development
▪ Customer satisfaction by early and continuous delivery of valuable software
▪ Welcome changing requirements, even in late development
▪ Working software is delivered frequently (weeks rather than months)
▪ Close, daily cooperation between business people and developers
▪ Projects are built around motivated individuals, who should be trusted
▪ Face-to-face conversation is the best form of communication (co-location)
▪ Working software is the primary measure of progress
▪ Sustainable development, able to maintain a constant pace
▪ Continuous attention to technical excellence and good design
▪ Simplicity—the art of maximizing the amount of work not done—is essential
▪ Best architectures, requirements, and designs emerge from self-organizing teams
▪ Regularly, the team reflects on how to become more effective, and adjusts accordingly
Coding Problem:
Can you find the copy/past/modify mistake?
These lines are so similar, it seemed easy to just copy/paste
and modify the variable names, but I can’t figure out why it
doesn’t work!
Solution: Don’t Repeat Yourself
Coding Problem
Everyone on the team has already solved this problem in a
different way. Mike’s solution crashes all the time, but Joe’s
code is slow. Should I write my own algorithm?
Solution: Design Patterns
Example: Singleton
Coding Problem
I know I’ve written code to do this for another project. It’s in one
of these main.cpp files somewhere.
Solution: Modularization
Main
Physics
Model
Data
Logger
Data
Visualization
RNG
Coding Problem:
I did this the brute force way last time because I thought I
would never have to do this again
Solution: Cinnamon Axiom
You will never do something once.
Summary
▪ Doing things the right way and not taking shortcuts saves
time in the long run.
Resources
▪ Software testing
▪ Introduction to Test Driven Development by Kent
Beck
▪ Version Control Software
▪ https://git-scm.com/
▪ Software Development Life Cycle
▪ http://agilemanifesto.org/
▪ Don’t Repeat Yourself
▪ http://deviq.com/don-t-repeat-yourself/
▪ Design Patterns
▪ Design Patterns: Elements of Reusable Object-
Oriented Software by Erich Gamma, Richard Helm,
Ralph Johnson, and John Vlissides
▪ Modularization
▪ Domain-Driven Design by Eric Evans Amanda Cinnamon
Amanda.cinnamon@daytonanalytics.com
www.thedevinstitute.com

Mais conteúdo relacionado

Mais procurados

Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven DevelopmentMichael Denomy
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Fatkul Amri
 
Become Software Tester or Developer
Become Software Tester or DeveloperBecome Software Tester or Developer
Become Software Tester or DeveloperKMS Technology
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
 
Pair programming demystified
Pair programming demystifiedPair programming demystified
Pair programming demystifiedMarek Kirejczyk
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)Peter Kofler
 
Teamleader testcon 2019
Teamleader testcon 2019Teamleader testcon 2019
Teamleader testcon 2019Thomas Noë
 
Xp presentation 2003
Xp presentation 2003Xp presentation 2003
Xp presentation 2003eaiti
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?David Alfaro
 
Development without Testers: Myth or Real Option?
Development without Testers: Myth or Real Option?Development without Testers: Myth or Real Option?
Development without Testers: Myth or Real Option?Mikalai Alimenkou
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnugoeran
 
Teaching Kids Programming
Teaching Kids ProgrammingTeaching Kids Programming
Teaching Kids ProgrammingLynn Langit
 
Zero to tested
Zero to testedZero to tested
Zero to testedMagenTys
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkJoseph Yoder
 
Small Hyper-Productive Teams (IT Brunch)
Small Hyper-Productive Teams (IT Brunch)Small Hyper-Productive Teams (IT Brunch)
Small Hyper-Productive Teams (IT Brunch)Mikalai Alimenkou
 
Product Vs Craft
Product Vs CraftProduct Vs Craft
Product Vs CraftMagenTys
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesIgor Moochnick
 

Mais procurados (20)

Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)
 
Become Software Tester or Developer
Become Software Tester or DeveloperBecome Software Tester or Developer
Become Software Tester or Developer
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...
 
Pair programming demystified
Pair programming demystifiedPair programming demystified
Pair programming demystified
 
Pair Programming (2014)
Pair Programming (2014)Pair Programming (2014)
Pair Programming (2014)
 
Teamleader testcon 2019
Teamleader testcon 2019Teamleader testcon 2019
Teamleader testcon 2019
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Xp presentation 2003
Xp presentation 2003Xp presentation 2003
Xp presentation 2003
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?
 
Development without Testers: Myth or Real Option?
Development without Testers: Myth or Real Option?Development without Testers: Myth or Real Option?
Development without Testers: Myth or Real Option?
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnu
 
Teaching Kids Programming
Teaching Kids ProgrammingTeaching Kids Programming
Teaching Kids Programming
 
Selenium as a trend
Selenium as a trendSelenium as a trend
Selenium as a trend
 
Zero to tested
Zero to testedZero to tested
Zero to tested
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
 
Small Hyper-Productive Teams (IT Brunch)
Small Hyper-Productive Teams (IT Brunch)Small Hyper-Productive Teams (IT Brunch)
Small Hyper-Productive Teams (IT Brunch)
 
Product Vs Craft
Product Vs CraftProduct Vs Craft
Product Vs Craft
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 

Semelhante a Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is

Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developersDUONG Trong Tan
 
An Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationAn Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationBlue Elephant Consulting
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsShafiul Azam Chowdhury
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Developmentbsadd
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsMohamed Samy
 
Software Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionSoftware Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionJosh Gough
 
What would Jesus Developer do?
What would Jesus Developer do?What would Jesus Developer do?
What would Jesus Developer do?Lukáš Čech
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011TEST Huddle
 
Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAmpersand
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile MethodologiesStfalcon Meetups
 
agile refactoring and integration techniques.pdf
agile refactoring and integration techniques.pdfagile refactoring and integration techniques.pdf
agile refactoring and integration techniques.pdfshreyassoni7
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 

Semelhante a Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is (20)

Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Agile
AgileAgile
Agile
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
An Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationAn Introduction To Software Development - Implementation
An Introduction To Software Development - Implementation
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Development
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Software Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionSoftware Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous Inspection
 
What would Jesus Developer do?
What would Jesus Developer do?What would Jesus Developer do?
What would Jesus Developer do?
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Agile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce Approach
 
Best pratice
Best praticeBest pratice
Best pratice
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile Methodologies
 
agile refactoring and integration techniques.pdf
agile refactoring and integration techniques.pdfagile refactoring and integration techniques.pdf
agile refactoring and integration techniques.pdf
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 

Mais de Rehgan Avon

Ezgi Karaesmen - Data Cleaning and Manipulation with R
Ezgi Karaesmen - Data Cleaning and Manipulation with REzgi Karaesmen - Data Cleaning and Manipulation with R
Ezgi Karaesmen - Data Cleaning and Manipulation with RRehgan Avon
 
Dr. Karen Amstutz - Digitizing Health: How Analytics are Disrupting Healthca...
Dr. Karen Amstutz - Digitizing Health:  How Analytics are Disrupting Healthca...Dr. Karen Amstutz - Digitizing Health:  How Analytics are Disrupting Healthca...
Dr. Karen Amstutz - Digitizing Health: How Analytics are Disrupting Healthca...Rehgan Avon
 
Cheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial WorldCheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial WorldRehgan Avon
 
Wei Xu - Innovative Applications of AI Panel
Wei Xu - Innovative Applications of AI PanelWei Xu - Innovative Applications of AI Panel
Wei Xu - Innovative Applications of AI PanelRehgan Avon
 
Helen Patton - Governing Big Data: Security, Privacy & Data Management
Helen Patton - Governing Big Data: Security, Privacy & Data ManagementHelen Patton - Governing Big Data: Security, Privacy & Data Management
Helen Patton - Governing Big Data: Security, Privacy & Data ManagementRehgan Avon
 
Dr. Lara Sucheston-Campbell - Building a working farm: Planning and planting ...
Dr. Lara Sucheston-Campbell - Building a working farm: Planning and planting ...Dr. Lara Sucheston-Campbell - Building a working farm: Planning and planting ...
Dr. Lara Sucheston-Campbell - Building a working farm: Planning and planting ...Rehgan Avon
 
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...Rehgan Avon
 
Bijaya Zenchenko - An Embedding is Worth 1000 Words - Start Using Word Embedd...
Bijaya Zenchenko - An Embedding is Worth 1000 Words - Start Using Word Embedd...Bijaya Zenchenko - An Embedding is Worth 1000 Words - Start Using Word Embedd...
Bijaya Zenchenko - An Embedding is Worth 1000 Words - Start Using Word Embedd...Rehgan Avon
 

Mais de Rehgan Avon (9)

Ezgi Karaesmen - Data Cleaning and Manipulation with R
Ezgi Karaesmen - Data Cleaning and Manipulation with REzgi Karaesmen - Data Cleaning and Manipulation with R
Ezgi Karaesmen - Data Cleaning and Manipulation with R
 
Dr. Karen Amstutz - Digitizing Health: How Analytics are Disrupting Healthca...
Dr. Karen Amstutz - Digitizing Health:  How Analytics are Disrupting Healthca...Dr. Karen Amstutz - Digitizing Health:  How Analytics are Disrupting Healthca...
Dr. Karen Amstutz - Digitizing Health: How Analytics are Disrupting Healthca...
 
Cheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial WorldCheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial World
 
Wei Xu - Innovative Applications of AI Panel
Wei Xu - Innovative Applications of AI PanelWei Xu - Innovative Applications of AI Panel
Wei Xu - Innovative Applications of AI Panel
 
Helen Patton - Governing Big Data: Security, Privacy & Data Management
Helen Patton - Governing Big Data: Security, Privacy & Data ManagementHelen Patton - Governing Big Data: Security, Privacy & Data Management
Helen Patton - Governing Big Data: Security, Privacy & Data Management
 
Dr. Lara Sucheston-Campbell - Building a working farm: Planning and planting ...
Dr. Lara Sucheston-Campbell - Building a working farm: Planning and planting ...Dr. Lara Sucheston-Campbell - Building a working farm: Planning and planting ...
Dr. Lara Sucheston-Campbell - Building a working farm: Planning and planting ...
 
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
Kelly O'Briant - DataOps in the Cloud: How To Supercharge Data Science with a...
 
Bijaya Zenchenko - An Embedding is Worth 1000 Words - Start Using Word Embedd...
Bijaya Zenchenko - An Embedding is Worth 1000 Words - Start Using Word Embedd...Bijaya Zenchenko - An Embedding is Worth 1000 Words - Start Using Word Embedd...
Bijaya Zenchenko - An Embedding is Worth 1000 Words - Start Using Word Embedd...
 
BDAA_Newsletter
BDAA_NewsletterBDAA_Newsletter
BDAA_Newsletter
 

Último

Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz1
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightDelhi Call girls
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Valters Lauzums
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusTimothy Spann
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...amitlee9823
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...amitlee9823
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxolyaivanovalion
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFxolyaivanovalion
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxolyaivanovalion
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...amitlee9823
 

Último (20)

Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signals
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and Milvus
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptx
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
 

Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is

  • 1. Treat Your Code Like the Valuable Software It Is Amanda Cinnamon Amanda.cinnamon@daytonanalytics.com
  • 2. Poll ▪ Who here has lost days or even weeks of productivity trying to track down a bug, recovering lost code, or trying to understand your own code ▪ How many of you consider yourselves software developers?
  • 3. Introduction ▪ Target audience: analysts who write code ▪ Objective: Basic introduction to principals, tools, and resources
  • 4. Overview ▪ Tools ▪ Software Testing Frameworks ▪ Version Control ▪ Concepts ▪ Software Development Life Cycle ▪ Don’t Repeat Yourself (DRY) ▪ Design Patterns ▪ Modularization ▪ Cinnamon Axiom
  • 5. Why Don’t Analyst Use Software Development Tools? ▪ Lack of training ▪ Imposter syndrome ▪ Requires investment of time and money
  • 6. Solution ▪ Knowledgeable mentors ▪ Awareness of available resources ▪ Continuous learning ▪ Owning up to role of software developer
  • 8. Coding Problem Problems caused by tiny programming errors appear at the worst time during my analysis and I spend time debugging when I should be doing my “real” job!
  • 9. Solution: Software Testing ▪ Types of testing: ▪ Unit tests ▪ Verification ▪ Validation ▪ Integration tests ▪ User test
  • 11. V & V Test Example 0 0.2 0.4 0.6 0.8 1 0 0.5 1 1.5 Time Ratio (t/t0 ) DragAreaRatio(c D S/c D S 0 ) WiSS-Generated Generic Chute Drag Area Growth Profiles Ringslot, WiSS Cross, WiSS Solid Flat, WiSS Ringslot, Theory Cross, Theory Solid Flat, Theory 300 400 500 600 700 800 900 1000 1100 1 2 3 4 5 6 7 C-130J-30 Exit Time Fuselage Station (in. aft) ExitTime(s) WiSS AFI11-231
  • 13. Coding Problem I know I fixed this bug already, but it has suddenly reappeared! That must have happened when I copied Joe’s version of the algorithm into my code. Now what was the fix again?
  • 14. Solution: Version Control Software Source: https://git-scm.com
  • 16. Problem I don’t really know where I’m going with this code. I just start at line one and hope it does something by the time I get to the last close bracket.
  • 18. Manifesto for Agile Software Development ▪ Customer satisfaction by early and continuous delivery of valuable software ▪ Welcome changing requirements, even in late development ▪ Working software is delivered frequently (weeks rather than months) ▪ Close, daily cooperation between business people and developers ▪ Projects are built around motivated individuals, who should be trusted ▪ Face-to-face conversation is the best form of communication (co-location) ▪ Working software is the primary measure of progress ▪ Sustainable development, able to maintain a constant pace ▪ Continuous attention to technical excellence and good design ▪ Simplicity—the art of maximizing the amount of work not done—is essential ▪ Best architectures, requirements, and designs emerge from self-organizing teams ▪ Regularly, the team reflects on how to become more effective, and adjusts accordingly
  • 19. Coding Problem: Can you find the copy/past/modify mistake? These lines are so similar, it seemed easy to just copy/paste and modify the variable names, but I can’t figure out why it doesn’t work!
  • 21. Coding Problem Everyone on the team has already solved this problem in a different way. Mike’s solution crashes all the time, but Joe’s code is slow. Should I write my own algorithm?
  • 23. Coding Problem I know I’ve written code to do this for another project. It’s in one of these main.cpp files somewhere.
  • 25. Coding Problem: I did this the brute force way last time because I thought I would never have to do this again
  • 26. Solution: Cinnamon Axiom You will never do something once.
  • 27. Summary ▪ Doing things the right way and not taking shortcuts saves time in the long run.
  • 28. Resources ▪ Software testing ▪ Introduction to Test Driven Development by Kent Beck ▪ Version Control Software ▪ https://git-scm.com/ ▪ Software Development Life Cycle ▪ http://agilemanifesto.org/ ▪ Don’t Repeat Yourself ▪ http://deviq.com/don-t-repeat-yourself/ ▪ Design Patterns ▪ Design Patterns: Elements of Reusable Object- Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides ▪ Modularization ▪ Domain-Driven Design by Eric Evans Amanda Cinnamon Amanda.cinnamon@daytonanalytics.com www.thedevinstitute.com