Our Methodology
APL was probably the first environment in which agile development was widespread – at least 30 years before the term was coined. Right from the start, users took to the notation and wielded it to quickly forge solutions to the computational problems they were faced with and revise them as the problems mutated.
While software engineers, despite extensive tools and elaborate methodologies, struggled to satisfy their users, APL developers were able to do this quickly and efficiently, in many cases making multiple releases a day and reacting to market changes in real time.
Dramatically Reduced Communication Requirements
Because APL is a very high level language, fewer developers are needed to deliver a solution. In many cases, the users themselves are able to build at least a prototype of the solution. This drastically reduces the communication requirement, especially as the resulting flat hierarchy means there is much less need for structured communication between different levels, thereby reducing the potential for loss of information at each link in the chain.
Modern software methodologies have finally recognised this problem, and the agile manifesto reflects this.
Seeding with IT Specialists
While we strive to produce a product that allows the keen domain expert to build complete applications, it is clear that good software practices require a degree of compartmentalisation or layering: databases, web servers and user interface frameworks (and so on) are standardised components. For professional software development, Dyalog Ltd recommends that teams of subject matter experts are seeded with IT specialists whose role is to ensure that corporate standards are adhered to, that commercial components and methodologies are used where possible and that new tools and methodologies like test-driven development are adopted where relevant.
Thanks to the addition of functional and object-oriented features to the APL core, Dyalog makes it straightforward to combine the benefits of APL with software engineering best practices.
Further Reading
Although the practices have evolved in the 15 years since it was first written, a good source of insight into agile development remains Extreme Programming Explained by Kent Beck (updated in 2004).