Evolution Softworks

> Home   [>] Practices

Development Process

Whether we're building a database-driven web site, guiding the design of an in-house intranet, or upgrading an information management application, our customers benefit from the lessons we've learned about effective development processes.

Close Collaboration

We believe that successful software development must include the customer as a vital player. Continuous and effective involvement is required to ensure that the software supports your business and reflects the key aspects of your strategy, instead of the other way around. We work closely with you and your other vendors and consultants throughout the project to enhance and extend your business in measurable ways. And we customize our approach to each project to ensure it fits your team.

Online Tracking

Our approach to development has been specifically adapted to the needs of Internet-centric projects. Feature development, change requests, and problem reports are tracked through a web-based intranet application which records site features, bugs, change requests, suggestions for future enhancement, ongoing schedule priorities and the like. Clients are encouraged to use this tracking application to review development progress, enter new feature requests and bug reports, respond to developer questions and approve site features whose implementation is up for review. Continuous integration on our development server means that all changes are immediately visible, and can be deployed to the production server as they are approved.

Iterative Refinement

Any modern software methodology will enable you to meet the initially-specified system requirements, but to exceed expectations you must continuously refine your results based on feedback. Evolution develops software using a incremental, rapid-release project life cycle. An initial system is developed during the first couple of weeks of development, and then extended in subsequent iterations, providing a concrete and visible source of feedback regarding the system's design and development.

Low Inertia

Change is an inevitable part of technology development projects. Coping with change effectively requires both low process overhead and technical flexibility. Evolution emphasizes code quality and continuous design improvement to maximize the ability to revise and enhance the system in the future. System architectures that are elegant, flexible, and leave clearly marked paths for growth enable the organic growth of the system and its adaptation to a client's evolving business needs.

Accessible Source Code

The business rules encapsulated within an application should not be confusing or obscure; they must be accessible so that they may be read, understood, and used as a basis for revisions. This requires both documentation in plain English, and clearly written source code that can be maintained by others. Full source code for the custom software that makes up the system is made available throughout the project, and the client owns the copyright to all proprietary application code.

Effective Reuse

Reusing proven solutions is a crucial step towards improving quality and increasing system manageability. Evolution seeks out reuse opportunities ranging from high-level approaches like design patterns to the concrete functionality provided by class frameworks and third-party toolkits. We are intimately familiar with a variety of industry-standard open source software packages, and publish our own re-usable code libraries online. The shared improvements made possible by the widespread reuse of open source software makes this an extremely reliable platform for further development.

Open and Interconnected

The advent of the Open Source explosion is only one indication of the enormous potential of multi-party interactions within the universe of the pervasive, standards-based network. By supporting open formats and protocols in the software we write, we allow it to connect and collaborate with an ever-expanding network of other software and services. And our modular approach ensures that applications can be easily extended to support additional features, such as specialized reporting, document sharing or automatic email notifications.

>> Home Page   >> Copyright   >> Email Me