Agile Development Practices - Productivity

689 views

Published on

Lunch and Learn I did on some general Agile and other practices that can make developers more productive.

Most of the content was in the speech though unfortunately.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
689
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Short List from Wikipedia: http://en.wikipedia.org/wiki/Agile_software_development#Agile_methods
  • Photo fromhttp://www.flickr.com/photos/dnorman/2172773143/Creative Commons Attribution-NonCommercial 2.0 Generic (CC BY-NC 2.0)
  • Horse: http://www.flickr.com/photos/cristic/265149677/ CC Attribution 2.0 Generic (CC BY 2.0)Bunny: http://squeak.preeminent.org/orgBlog/C244531379/E20051003220643/Media/trojanBunny.jpg Fair Use
  • http://lostechies.com/wp-content/uploads/2011/03/pablos_solid_ebook.pdfSingle responsibility principlethe notion that an object should have only a single responsibility.Open/closed principlethe notion that “software entities … should be open for extension, but closed for modification”.Liskov substitution principlethe notion that “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program”. See also design by contract.Interface segregation principlethe notion that “many client specific interfaces are better than one general purpose interface.”Dependency inversion principlethe notion that one should “Depend upon Abstractions. Do not depend upon concretions.”Dependency injection is one method of following this principle.
  • PIE – Program Intently and ExpressivelyBaby Steps – Don’t try to do the whole thing in once giant leap, cut off small pieces, work on them, test them, rinse, repeat. Keep this cycle tight so you know exactly when/where you messed something up.KISS – Don’t build a space shuttle, a bottle rocket would probably do.YAGNI – THROW AWAY CODE IF ITS COMMENTED OUT OR NOT IN USEDRY – Smack yourself if you copy paste code more than once. Move to method is great here, start with procedural then move to more genericized code.Boy Scout Rule – Leave it cleaner than you found it – renaming variables helps muchoGood Neighbor Rule – Cut your grass, make tests, automate things so you don’t leave a mess for your coworkers.
  • http://en.wikipedia.org/wiki/Git_(software)
  • Explain story with flaky VPN.Don’t have to be connected to the server to branch, merge, swap changes with coworkers.http://nvie.com/posts/a-successful-git-branching-model/- creative commons
  • Two-way bridge between GIT and TFS.
  • http://www.flickr.com/photos/tuxophil/54865095/sizes/l/in/photostream/
  • Original:http://en.wikipedia.org/wiki/File:AT4_rocket_launcher.jpg
  • http://www.geograph.org.uk/photo/1730107 -- CC Sharealike
  • http://www.flickr.com/photos/thebusybrain/2492945625/
  • Agile Development Practices - Productivity

    1. 1. AgileDevelopmentPractices:Coding &ProductivityAlex Moore, HMB
    2. 2. Traditional Big „A‟ AgileIndividuals and interactions over processes and toolsWorking software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
    3. 3. Traditional Big „A‟ Agile Agile Modeling Agile Unified Process (AUP) Dynamic Systems Development Method (DSDM) Essential Unified Process (EssUP) Extreme Programming (XP) Feature Driven Development (FDD) Open Unified Process (OpenUP) Scrum Velocity tracking
    4. 4. Little „a‟ agile
    5. 5. Little „a‟ agile1. Can you react immediately and without panic if external constraints on your project change?2. Do you review your process frequently and regularly to make sure the answer to the first question is always yes?
    6. 6. How can we do this inwaterfall or constrainedenvironments?
    7. 7. Subterfuge!
    8. 8. Agile Coding
    9. 9. SOLID Coding Single Responsibility Principle Open/closed Principle Liskov substitution principle Interface segregation principle Dependency inversion principle
    10. 10. Clean Coding PIE Baby steps KISS YAGNI DRY BoyScout Rule Good Neighbor Rule
    11. 11. Using GIT for Great Good!
    12. 12. What Git is about1. Use CVS as an example of what NOT to do.2. Support a distributed workflow3. Strong safeguards against corruption, PEBKAC or malicious4. High Performance
    13. 13. Branching, Merging
    14. 14. Branching, Merging git branch NewBranch git checkout NewBranch <do work> git commit –a –m „bug fix‟ git checkout master git merge NewBranch
    15. 15. Decentralized Goodness
    16. 16. Git-tfs Treats TFS as a remote repository1. Setup TFS “remote repository”2. <do work>3. Fetch latest4. Merge5. Use Checkintool.
    17. 17. Other Productivity Tips
    18. 18. Keep you hands where I cansee them!
    19. 19. Application Launchers
    20. 20. VisualStudioShortcuts
    21. 21. ReSharper
    22. 22. Beyond Compare
    23. 23. Notepad++
    24. 24. Resources
    25. 25. domo arigatoanm@hmbnet.com

    ×