Agile software development is a collection of practices that rely on iterative development and prototyping to elicit and evolve requirements. Collaborative, self-organizing teams of motivated developers are integral to the process, working with stakeholders to progressively refine a collective understanding of and solution to a problem.
Customer involvement is essential to the agile software development process. Authentrics encourages its clients to participate actively in the process, in regular and frequent progress reviews.
The rule of thumb at Authentrics is to use the highest level language possible, for any given application. For web applications this typically means using a framework of some sort that overlays a programming language. We have experience with a number of such frameworks, including Ruby/Rails, Python/Django, PHP/Cake and various Content Management Systems (like SilverStripe).
Non-web services we often implement using languages at the next level, using PHP, or Python. Although we have expertise in lower level languages like Java and C++, we use them sparingly, where they are needed. Fewer lines of code means greater flexibility and maintainability in the face of change.
In our experience, it is nearly impossible to specify all the requirements for a system on paper, without something an interactive medium with which we can 'carry on a dialog'. By rapidly prototyping an interface, we can elicit a more detailed specification from our clients, working collaboratively to visualize and flesh out solutions.
It is important during the early stages of development, in particular, to meet frequently, and relatively briefly with stakeholders. Our prototypes typically start with a rough, non-interactive first draft of functionality, without a particular look-and-feel. Once we've agreed that we have a solid foundation --usually within less than a week-- we proceed to develop an interactive "dummy" that illustrates features, without providing actual data or back end functionality. Although the first prototype is developed quickly, this part of the process often requires a number of discussions and revisions.
There are no two ways about it: properly vetted open source is more robust, easier to install and manage, and better supported. Our servers are generally Linux based platforms comprising Postgres or MySQL, an Apache web server, and a high level programming language. The low cost of the server and the absence of recurring licensing costs are just added benefits.
While most everyday users work with proprietary, friendly desktops and laptops running Windows or Mac OS, they often rely on stable Linux servers for access to organizational and internet data. Many large online services, like Google and Yahoo, run on Linux.
Simply stated, the folks at Authentrics work on projects for the love of their craft. We each crave responsibility because of the opportunity for creative expression and collaboration that comes with it.
Our engineers are thoroughly versed in the latest paradigms and techniques, including Model/View/Controller and RESTful architecture, SOAP exchange, object oriented database systems, and data sharding. We understand that selecting the right paradigm for an application can speed development and save on long-term maintenance.