SlideShare une entreprise Scribd logo
1  sur  94
   Loosely Coupled    Thoughts Andrew Lenards Feb. 12, 2010
Andrew Lenards iPlant Collaborative S/W Eng on Core S/W team University of Arizona CS Grad, 2001 Reformed .NET developer Former consultant,  instructor, & technical trainer Domain experience: Motor Vehicle Domain Phylogenetics / Bioinformatics (sort of)
Andrew Lenards - Activities Learning about: Requirements, User Stories, etc.  S/W Design/Architecture, Patterns, SOA Molecular Biology, Phylogenetics, Phyloinformatics, Genetics, and Genomics Active in: Tucson Java Users Group Semi-active in: Tucson Startup Drinks Ubuntu Arizona Local Community / TFUG
What do you expectwhen you graduate?
The Myth of the Lone Developer
SRS -> * -> Code (rarely talking to anyone else, if so only other devs)
in-practice: lots of interaction w/ technical&non-technical people
Small team
Varying backgrounds
(brilliant co-workers)
Diverse skill-sets
What’d I get out of it?
“Lone” Developer, Meet your team:- PastYou-FutureMe
Systems grow & change in organic ways (related topic: Entropy)
Learned importance of unit testing
“Safety net for refactoring”
Ruthless refactoringw/ extreme confidence
Automation keepsyou & your team honest (Continuous Integration)
Broken Window Theory (Pragmatic Programmer)
Need an infectious attitude towardtesting…
Robust software is well-tested software
Good day for QA ==Bad day for Dev
"Testing is the engineering rigor of software development." -- Neal Ford
ExecutableDocumentation
Testing affects your design
TDD: Test-driven Development
TDD: Test-driven Design
Flexible design grows out of making code“testable”
“Legacy Code”:any source w/o unit tests
… of the community, by the community,for the community
Empowering the next generation of biologist
Why?
The world faces tough problems in the future
Fuel/Energy
Food
Water Supply
…
Cyberinfrastructure
“In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.”
Large systems designleads to diverse,interdisciplinary teams
With the direction of Computational Biology & Bioinformatics…
Software Development as aCollaborative Game
Soft skills are important
Speaking in tongues is not allowed
Working in pairs, not just forpair-programming ordebugging
Impromptu design discussions  (they often include more than just technical folks)
Code for Science
I wasn’t always interested in science/biology
Confused looks are commonplace for me
YOU > me
Biology is an interesting domain
I know too much aboutAuto titling & international trucking fees
Going forward…
Test, test, test
If not test-first, test-very-soon-after
Help a FOSS project(best place to start: testing) [FOSS or F/OSS: Free or Open Source Software]
Practice communicating Join/start a FOSS project (as a group) Writing / Blog / Whatever Present@User Groups Toastmasters? UTA Program?
Design READ Books, Blogs, Magazines, PublicationsAND other people’s code Code Make mistakes and learn from them
Suggested Reading Pragmatic Programmer Andy Hunt & Dave Thomas 97 Things Every Programmer Should Know Productive Programmer Neal Ford Read “Uncle Bob” “The Humble Dialog Box” Michael Feathers
Learn a new programming languageevery year (or two)
Groovy, Python, Ruby,Perl, Icon, Scala, Lisp, Self, Scheme, Smalltalk, SML, …
Become familiar with popular FOSS projects…
What’s Inversion of Control?Don’t know? Learn more about Spring or Guice
Interested in biologyor computational biology?
Fun Foundational Materials The Manga Guide to Molecular Biology The Stuff of Life: the Graphic Guide to Genetics and DNA Cartoon Guide to Genetics The Manga Guide to Statistics  Cartoon Guide to Statistics
Still interested?
Really?!?
More Materials Lawrence Hunter Introduction to Molecular Biology for Computer Scientists http://compbio.uchsc.edu/Hunter/01-Hunter.pdf The Processes of Life: An Introduction to Molecular Biology A Computer Scientist’s Guide to Cell Biology …
Miscellaneous Info Contact Info lenards@iplantcollaborative.org lenards@email.arizona.edu Slides Will be posted here: http://www.slideshare.net/lenards
Image Acknowledgements http://www.flickr.com/photos/lenards/3955049100/ “Mad Scientist Photo” of Andrew by Alex Yelich http://www.flickr.com/photos/thatgrumguy/402041540/ http://www.flickr.com/photos/freya_gefn/2777209147/ http://www.flickr.com/photos/pkmousie/2652404430/ http://www.flickr.com/photos/sklathill/479528238/ http://www.flickr.com/photos/lorelei-ranveig/2294093649/ http://www.flickr.com/photos/roadsidepictures/389828793/ http://www.flickr.com/photos/graylight/72935997/ http://www2.genome.arizona.edu/images/bio5bldg.jpg http://www.flickr.com/photos/7298460@N03/4335819270/ http://www.teachforamerica.org/assets/images/img/logo_tfa.gif
The content of this work is licensed under a Creative Commons   Attribution-NonCommercial-ShareAlike License.  Your use of this material constitutes acceptance of that license and the conditions of use of materials on this site:  http://creativecommons.org/licenses/by-nc-sa/3.0/

Contenu connexe

Similaire à Loosely Coupled Thoughts

Lecture 15 Assistive Tech
Lecture 15   Assistive TechLecture 15   Assistive Tech
Lecture 15 Assistive Tech
anneleftwich
 

Similaire à Loosely Coupled Thoughts (20)

Code for science (rev 1)
Code for science (rev 1) Code for science (rev 1)
Code for science (rev 1)
 
Toolbelt Theory 2.0 v.2
Toolbelt Theory 2.0 v.2Toolbelt Theory 2.0 v.2
Toolbelt Theory 2.0 v.2
 
How to make a better world
How to make a better worldHow to make a better world
How to make a better world
 
FLOSSCom Workshop Greece
FLOSSCom Workshop GreeceFLOSSCom Workshop Greece
FLOSSCom Workshop Greece
 
Lecture 15 Assistive Tech
Lecture 15   Assistive TechLecture 15   Assistive Tech
Lecture 15 Assistive Tech
 
Assistive Technology Reading and Writing Tools
Assistive Technology Reading and Writing ToolsAssistive Technology Reading and Writing Tools
Assistive Technology Reading and Writing Tools
 
Fedora
FedoraFedora
Fedora
 
APLA OS Session 2008
APLA OS Session 2008APLA OS Session 2008
APLA OS Session 2008
 
Assistive Technology
Assistive TechnologyAssistive Technology
Assistive Technology
 
Projects In Foss
Projects In FossProjects In Foss
Projects In Foss
 
Pimp Your Post - Tips and Tricks for Jazzing up Intro Posts in Online courses
Pimp Your Post - Tips and Tricks for Jazzing up Intro Posts in Online coursesPimp Your Post - Tips and Tricks for Jazzing up Intro Posts in Online courses
Pimp Your Post - Tips and Tricks for Jazzing up Intro Posts in Online courses
 
Nov 7-11, 2011
Nov 7-11, 2011Nov 7-11, 2011
Nov 7-11, 2011
 
NLP Tasks and Applications.ppt useful in
NLP Tasks and Applications.ppt useful inNLP Tasks and Applications.ppt useful in
NLP Tasks and Applications.ppt useful in
 
lect36-tasks.ppt
lect36-tasks.pptlect36-tasks.ppt
lect36-tasks.ppt
 
Podcasts for Postgrads
Podcasts for PostgradsPodcasts for Postgrads
Podcasts for Postgrads
 
The ROPES of presentations - Technical Communication
The ROPES of presentations - Technical CommunicationThe ROPES of presentations - Technical Communication
The ROPES of presentations - Technical Communication
 
Pimp Your Postppt Rru
Pimp Your Postppt RruPimp Your Postppt Rru
Pimp Your Postppt Rru
 
Hypothesis quick overview 2011-10-19
Hypothesis  quick overview 2011-10-19Hypothesis  quick overview 2011-10-19
Hypothesis quick overview 2011-10-19
 
Big Data and Natural Language Processing
Big Data and Natural Language ProcessingBig Data and Natural Language Processing
Big Data and Natural Language Processing
 
Cracking The Technical Interview Uw
Cracking The Technical Interview   UwCracking The Technical Interview   Uw
Cracking The Technical Interview Uw
 

Plus de Andy Lenards

Code for science (rev 2)
Code for science (rev 2)Code for science (rev 2)
Code for science (rev 2)
Andy Lenards
 

Plus de Andy Lenards (6)

Rough has advantages
Rough has advantagesRough has advantages
Rough has advantages
 
The Skill That Can Impact All Skills
The Skill That Can Impact All SkillsThe Skill That Can Impact All Skills
The Skill That Can Impact All Skills
 
Software Surrounds You
Software Surrounds YouSoftware Surrounds You
Software Surrounds You
 
Code for science (rev 2)
Code for science (rev 2)Code for science (rev 2)
Code for science (rev 2)
 
Android
Android Android
Android
 
Is There Room For Another Elephant In Tucson
Is There Room For Another Elephant In TucsonIs There Room For Another Elephant In Tucson
Is There Room For Another Elephant In Tucson
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Loosely Coupled Thoughts

Notes de l'éditeur

  1. NESCent, The National Evolutionary Synthesis Center, is a collaborative effort of Duke University, The University of North Carolina at Chapel Hill and North Carolina State University and is sponsored by the National Science Foundation.Our mission is to facilitate broadly synthetic research to address fundamental questions in evolutionary biology.
  2. Small team, communication was extremely important
  3. Small team, communication was extremely important
  4. Small team, communication was extremely important
  5. Small team, communication was extremely important
  6. Small team, communication was extremely important
  7. Unit testing helps prevent too much “good days” for QA! Jerry Schneider on the Core Software team says this all the time.
  8. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  9. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  10. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  11. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  12. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  13. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  14. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  15. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  16. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure
  17. “In scientific usage, cyberinfrastructure is a technological solution to the problem of efficiently connecting data, computers, and people with the goal of enabling derivation of novel scientific theories and knowledge.” src: http://en.wikipedia.org/wiki/Cyberinfrastructure