Your SlideShare is downloading. ×
0
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Continuous feature-development
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Continuous feature-development

1,766

Published on

This is about encouraging our audience about known good practices. let them introduced why continuous feature development is essential and why that adds value over following rigid processes.

This is about encouraging our audience about known good practices. let them introduced why continuous feature development is essential and why that adds value over following rigid processes.

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
  • full of colourful moments! i loved it. :)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
1,766
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
1
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Explain about client
  • Offline businessOnline businessBranded clothingAll these occurs development
  • Transcript

    • 1. Continuous Feature Development
    • 2. What is feature ?
    • 3. “A set of clients expected functional behaviors”
    • 4. Feature development ?
    • 5. “Incrementally building expected functional behaviors”
    • 6. Why it is continuous ?• Client’s expectation changed• Business changed• User’s perception changed• Competitive advantages• Rebranding
    • 7. Yes! That’s why we callContinues Feature Development
    • 8. Continuous Feature Development Challenges ?• Integrating new feature• Maintaining existing stability• Maintaining new development• Making sure of seamless integration• Managing trust
    • 9. How we are managing them ?
    • 10. we leave the brokensystem  alone and let the client shout on us.
    • 11. Really!YES!, due to client’s fault sincethey pushed and wanted faster release
    • 12. How about you guys ? May be ? Not always!
    • 13. How it should be (buzz words) ?• Acceptance test driven development• Test Driven Development• Behavior Driven Development• Continuous Integration
    • 14. How we are practicing instead!
    • 15. #1 Collecting acceptance criteria• Know what exactly client wants• Ask lotta questions to get full picture• Ask for mockup• Split story into several acceptance criteria• For example – User wants to login – Which user ? – any user – Requires what ? – user id and password – How many attempts ? – probably 3
    • 16. Available tools• Pivotal tracker – http://pivotaltracker.com/• You can use any issue tracker• Trello Board - http://trello.com• Trac (or any wiki)• Or notepad
    • 17. #2 Test first development ’Loginwith valid email and password it should say Login successful it should create user sessionwith wrong email address it should say ‘unsuccessful login it should not create user sessionwith wrong password it should say ’unsuccessful login it should not create user session
    • 18. Available PHP solutions• BDD framework – Cuke4php http://rubygems.org/gems/cuke4php – Behat http://behat.org/ – PHPUnit http://bit.ly/9McVAs• Unit testing framework – PHPUnit http://www.phpunit.de/ – SimpleTest http://simpletest.org/
    • 19. BDD using Behat 1Feature: ls In order to see the directory structure As a UNIX user I need to be able to list the current directorys contents Scenario: List 2 files in a directory Given I am in a directory "test" And I have a file named ”file1.txt" And I have a file named ”file2.txt" When I run "ls" Then I should get: """ file1.txt file2.txt
    • 20. BDD using Behat 2class FeatureContext extends BehatContext{ /** * @Given /^I am in a directory "([^"]*)"$/ */ public function iAmInADirectory($dir) { if (!file_exists($dir)) { mkdir($dir); } chdir($dir); }} Source - http://docs.behat.org/quick_intro.html
    • 21. Unit test using PHPUnitclass ArrayTest extends PHPUnit_Framework_TestCase { public function testNewArrayIsEmpty() { $fixture = array(); $this->assertEquals(0, sizeof($fixture)); } public function testArrayContainsAnElement() { $fixture = array(); $fixture[] = Element; $this->assertEquals(1, sizeof($fixture)); }} Source - http://www.phpunit.de/manual/3.2/en/writing-tests- for-phpunit.html
    • 22. #3 Don’t say “Hello it’s done” without running all tests
    • 23. Available PHP solutions• Almost all standard IDEs – PhpStorm – NetBeans – Eclipse
    • 24. #4 Code in feature branch NOT in master!• Master (Main code stream) – Branches • Fix_bug_with_validation • Add_xyz_module • Migrate_to_php_5_3
    • 25. Example using GIT• Create new branch – $ git branch < branch name >• Checkout specific branch – $ git checkout < branch name >• Update branch from master – $ git rebase master
    • 26. #5 Code review
    • 27. Available solutions• Github provides pull request based code review – http://github.com• Retrospectiva - https://github.com/dim/retrospectiva• Trac code review module• Crucible - http://www.atlassian.com/software/crucible/ overview• http://code.google.com/p/gerrit/
    • 28. #6 Maintain production branch FeaturesMasterFeatures Production Branch
    • 29. #7 Use staging server• Deploy in staging server first• Run test suites• If not passes test go through – Fix again – write supporting test – deploy in staging server - Retest – Human test
    • 30. #8 Continuous Integration CI ser ver Code repositor yDevBuild failedBuild successful Staging/ test/ qa ser ver
    • 31. Available PHP solutions• Jenkins - http://jenkins-ci.org/• phpUnderControl - http://phpundercontrol.org/• Xinc - http://code.google.com/p/xinc/
    • 32. #9 Ensure revertible deployment
    • 33. Let’s summarize our talk• #1 Collecting acceptance criteria• #2 Test first development• #3 Don’t say “Hello it’s done” without running all tests• #4 Code in feature branch NOT in master• #5 Code review• #6 Maintain production branch• #7 Use staging server• #8 Continuous Integration• #9 Ensure revertible deployment
    • 34. I guess that’s all for today ! Thanks for joining us.
    • 35. Who are we ?nafi ul karim nhm tanveer hossainsenior software engineer, khan (hasan)somewhere in… head of technology,nafi@somewherein.net somewhere in… founder, www.khadok.com hasan@somewherein.netpassion – new stuffs,diversity on work,challenges, learning new work for fun!things, open to all languages. Code on rails, java, node.js, php

    ×