Enthought Home
Enthought Consulting

Our Approach

Enthought uses an iterative development process in every project. This means that usable versions of the application are delivered to the client early and often. We have found that by reviewing versions of the product throughout the project, our clients are able to make suggestions, evaluate performance, and clarify requirements, and thereby enhance the quality and usefulness of the product. Our clients prefer this development process to that of a "big-bang" approach, in which all work products are handed over only at the end of the project. This approach requires a commitment of time by individuals on the client side, to try out interim releases and provide feedback to the project manager. Our customers have found that this commitment is worth making, because of the gains they accrue in productivity and capability from the resulting application.

Enthought consulting process

Four Keys to Custom Software Development

In our experience, there are four keys to a successful effort in developing custom software: excellent programmers, close communication, a strong toolset, and passionate, motivated clients.

Robert and Eric programming

Smart, talented programmers

About half of our staff have advanced degrees in science and engineering (for example, electrical engineering, geophysics, mathematics, and biomedical imaging). The other half have extensive experience in programming and software development. We have the domain experience and aptitude to understand and solve the toughest data analysis problems, along with expertise in software architecture and development to help you meet your business objectives.

Client on phone

Good communication

We collaborate with clients in an iterative, evolutionary development model. This means that we deliver usable (if initially limited) versions of the application early and often. By reviewing versions throughout the project, you can make suggestions, evaluate performance, and refine requirements, thereby enhancing the quality and usefulness of the end product.

Enthought project managers report to clients on a regular (usually weekly) basis, but also communicate continually to ensure that issues on either side of the relationship are addressed promptly.

We employ a variety of channels to foster clear communication between software developers and client team members:

  • A secure Web site gives you direct read and write access to the source code, issue tracker, and wiki-based project documents for your project, for a high level of transparency.
  • A private mailing list gives all team members access to questions and responses as they occur, and an archive for historical reference.
  • When feasible, co-locating our developers with client domain experts, either at our offices or at a client site, is extremely effective at fostering productive relationships.
  • Web-based desktop sharing can create a workspace for remote collaboration.
  • Good old-fashioned phone calls and in-person meetings never go out of style, because they work.
VMS client in mixer

Building on the right tools

Our extensible and powerful software is made with a coherent Python toolset. We code in Python because:

  • Scientists and engineers can write scripts or code blocks to encode their algorithms.
  • Software developers can write robust, full-featured applications.
  • We can integrate the scripts into the applications, along with legacy code in Fortran, C, C++, etc.
  • A huge range of tools is available in Python for numerical processing, data visualization, graphical user interfaces, etc. These include Python, NumPy, SciPy, wxWidgets (QT), Envisage, and Traits.

In terms of interactivity and customization, there are a range of software approaches. Some applications are essentially big red "solve" buttons, while there are also tools that can only be manipulated with hard-core assembly programming. We strive to build systems that smoothly connect users with needs that lie anywhere in that spectrum.

VMS client in mixer

Passionate clients with real problems

This is where you come in. Whether you have a data analysis problem that is costing you money, an obsolete application you need to transition to a more flexible programming language, or want a better interface for your data collection hardware, we can help.

If you are interested in learning more about how we can help you, please contact us by email or call 512-536-1057.