Loosely Coupled Thoughts
-
Upload
andrew-lenards -
Category
Technology
-
view
967 -
download
0
description
Transcript of Loosely Coupled Thoughts
Loosely Coupled Thoughts
Andrew LenardsFeb. 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 toward
testing…
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 for
pair-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, Publications
AND 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 language
every 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– [email protected]– [email protected]
• 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/