Sharpening your APL knife
Agile Paradigm
APL - Agile Programming Lads
- Over the past few years, the Agile Paradigm got recognized, accepted and successful
- Ruby, Python and Perl are counted as typical "agile languages"
- These languages do not offer much that is not available in APL, too
- But APL has much better debugging features!
What's agile, then? (1)
- A development cycle called an iteration is short
- Typically, iterations last between 1 and 4 weeks
- An iteration normally consists of several versions
- Each of them is supposed to be more or less stable
- An iteration ends in a release which may or may not make its way to the customer
What's agile, then? (2)
An iteration is a complete project and consists of:
- Planning
- Analysis
- Design
- Coding
- Testing
- Documenting
What's agile, then? (3)
- Face-to-face communication is preferred over written docs
- Customers define the product
- Customers may be product managers, business analysts or clients
- Very close cooperation (daily?!) between business people and developers
What's agile, then? (4)
- Agile projects might work with some junior programmers...
- ... but they won't work without senior programmers
- Primary measure of progress is working software
What's agile, then? (5)
At the end of an iteration two things need to be re-evaluated:
- Design and code quality
- Project priorities
Test Cases -1-
- Since the agile paradigm welcomes changing requirements at any stage, automated test cases are extremely important
- Code is supposed to go into a release only after having passed these tests successfully
- That helps in preventing broken code making it into the repository
- But automated tests are also of great importance in terms of documentation!
Test Cases -2-
Test Cases as a kind of documentation:
- Point out which data a method is supposed to work with properly
- Ought to reject invalid data by performing appropriate checks
- That helps with a typical APL problem: to find out what code is supposed to do when ill-formed data is passed can be very tricky
Test Cases -3-
- Ruby on Rails is by far the most successful framework following the Agile Paradigm
- In Rails, test cases are fully integrated
- When a new class/method is created, test cases are created automatically
- If database operations are involved, appropriate data is created and deleted automatically by executing the test case
Technical stuff involved
- Interpreted language (Ruby, Pearl, Python, APL...)
- Version Control (SubVersion)
- Project Management Software, typically Wiki based
End