What is Agile to me?
It is an incremental and iterative development methodology. It is catering for changing client requirements. Mainly focusing on frequent delivery of products in short iterations.
Where does the work come from?
Scrum Master and Product Owner (Project Manager) decides what to deliver at the end of the sprint. So you get the tasks to complete from them. After completing my task, it is tested by the agile tester within the same sprint (2 weeks). If the tests are passed, then your task for that Sprint is finished.
Pair Programming as an agile methodology
Advantages:
Knowledge is shared among the team members
Motivating and innovate new ideas using 2 brains
Catch the bugs quickly and prevent them
Synergy and less frustration (share the pain)
Speed learning
Disadvantages:
More resources required (2 people to do the same task at same time)
One person might do more than half the work if the other person is not up to the same level.
Not effective when developing easy and simple functions
TDD as an agile methodology
Before writing the code, first write the Junit test methods.
When I run the test methods first time, they should fail.
Now start developing the actual code and continuously test it by executing the Junit test cases.
Once the test starts to pass, continuously re-factor the code.
Benefits:
Get a better understanding of what you are going to code
Take small steps when writing the code
Verify the functionality of the code
Test cases are a self documentation of the code
Check the last changes of the code change breaks the existing functions
Improves quality and less bugs
Continuous Integration
Continuous Integration is a development practice where several developers working on the same source files simultaneously and check in to a single shared code repository in the same day, so that all the code changes has to be integrated. After each check in, the software has to be built by an automated build server to verify that nothing is broken.
How to do:
It is easy to do when there is no other branches so all the developers work on the main branch (trunk)
Each developer has his own copy of the source code (checked out from the code repository) in his local computer.
After finish developing, each developer can checked in the source file to the repository.
If someone has modified the source file after the developer has checked out the same source file, then the developer need to get the most updated source files from the repository and merge his changes to that latest copy.
After this code check-in, the build server will run all the junit test cases and build the software.
