loosely coupled thoughts

Download Loosely  Coupled  Thoughts

Post on 12-Nov-2014

954 views

Category:

Technology

0 download

Embed Size (px)

DESCRIPTION

A collection of related ideas about software development picked up over the last couple of years of experience.

TRANSCRIPT

  • 1.Loosely CoupledThoughts
    Andrew Lenards
    Feb. 12, 2010

2. 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)
3. 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
4. 5. What do you expectwhen you graduate?
6. 7. 8. 9. The Myth of the Lone Developer
10. 11. SRS -> * -> Code
(rarely talking to anyone else, if so only other devs)
12. in-practice: lots of interaction w/ technical&non-technical people
13. 14. 15. Small team
16. Varying backgrounds
17. (brilliant co-workers)
18. Diverse skill-sets
19. Whatd I get out of it?
20. 21. 22. 23. 24. Lone Developer, Meet your team:- PastYou-FutureMe
25. 26. Systems grow & change in organic ways
(related topic: Entropy)
27. Learned importance of unit testing
28. Safety net for refactoring
29. 30. Ruthless refactoringw/ extreme confidence
31. Automation keepsyou & your team honest
(Continuous Integration)
32. Broken Window Theory
(Pragmatic Programmer)
33. Need an infectious attitude towardtesting
34. Robust software is well-tested software
35. Good day for QA ==Bad day for Dev
36. "Testing is the engineering rigor of software development."
-- Neal Ford
37. ExecutableDocumentation
38. Testing affects your design
39. TDD: Test-driven Development
40. TDD: Test-driven Design
41. Flexible design grows out of making codetestable
42. Legacy Code:any source w/o unit tests
43. 44. of the community, by the community,for the community
45. Empowering the next generation of biologist
46. Why?
47. The world faces tough problems in the future
48. Fuel/Energy
49. Food
50. Water Supply
51.
52. Cyberinfrastructure
53. 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.
54. Large systems designleads to diverse,interdisciplinary teams
55. With the direction of Computational Biology & Bioinformatics
56. 57. Software Development as aCollaborative Game
58. Soft skills are important
59. Speaking in tongues is not allowed
60. Working in pairs, not just forpair-programming ordebugging
61. Impromptu design discussions
(they often include more than just technical folks)
62. 63. Code for Science
64. I wasnt always interested in science/biology
65. 66. Confused looks are commonplace for me
67. YOU > me
68. Biology is an interesting domain
69. 70. I know too much aboutAuto titling & international trucking fees
71. 72. 73. 74. 75. 76. Going forward
77. Test, test, test
78. If not test-first, test-very-soon-after
79. Help a FOSS project(best place to start: testing)
[FOSS or F/OSS: Free or Open Source Software]
80. Practice communicating
Join/start a FOSS project (as a group)
Writing / Blog / Whatever
Present@User Groups
Toastmasters?
UTA Program?
81. Design
READ
Books, Blogs, Magazines, PublicationsAND other peoples code
Code
Make mistakes and learn from them
82. 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
83. Learn a new programming languageevery year (or two)
84. Groovy, Python, Ruby,Perl, Icon, Scala, Lisp, Self, Scheme, Smalltalk, SML,
85. Become familiar with popular FOSS projects
86. Whats Inversion of Control?Dont know? Learn more about Spring or Guice
87. Interested in biologyor computational biology?
88. 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
89. Still interested?
90. Really?!?
91. 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 Scientists Guide to Cell Biology

92. Miscellaneous Info
Contact Info
lenards@iplantcollaborative.org
lenards@email.arizona.edu
Slides
Will be posted here:
http://www.slideshare.net/lenards
93. 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
94. 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/

Recommended

View more >