The EVN Solutions team follows a pragmatic, agile design and development methodology.  The major functions of this methodology are:

EVN Solutions Methodology

1.  Evaluation – a first dive understanding and articulation of the problem  space and first estimate

2.  Proposal – an estimate of the effort and how EVN would solve the challenges

3.  Agreement

4.  Discovery - includes accumulating the information necessary to create a Definition document

5.  Definition - includes:

  • Vision – A detailed statement of the evaluation a - what does the system want to do, what problem does it solve, and what opportunities does it create.

  • Use Cases – These capture how the different types of users – like administrators, unregistered web users, publishing editors, etc will interact with the system. How each user expects the system to react, what information it provides for decisions, and implied capabilities and requirements.

  • Block Diagrams – these capture the overall architecture and/or functional blocks of the system, they are one way of visualizing the overall system.

  • Flow Diagrams – these show how users will take steps through the system to solve tasks and create results, this is another way of visualizing the entire system.

6.  Design - includes:

  • Systems Architecture – the platform upon which the solution will be implemented.

  • Wire framing – these are functional diagrams of the display device (e.g. PC screen) that capture the blocks of information on the required screens.  This would typically include header, footer, logo, search entry, left column navigation, center and right column data display, etc.

  • User Interface Design – takes the Use cases, block diagrams, flow diagrams and wire framing and applies human interface design principles and graphics design to create a user interface for the system

7.  Development – takes the same data set as design and creates a Software Requirements Specification that captures how the system will actually be built.  This along with the output of Design are coded to create the system

8.  Quality Assurance – the Software Requirements Specification and Design Specifications are used to create a Test Plan.  QA executes that plan against the resulting system to ensure it meets the system design.

9.  Deployment – Placement of the production code onto one or more customer servers, configuration, loading content and allowing users to use the system.  Monitoring the system for correct operation.

Pragmatism is illustrated by documenting a necessary and sufficient representation of the system to enable it to be well built.  We find that projects defined under antiquated “specify exactly what is to be built” methods never quite get the expectations and design right.  Agile is the act of iterating at each step and amongst steps to ensure that the vision and design of the system come to fruition during the development and QA.  In sum, if a system were to be specified and coded using the old methods, with a first result taking 100 time units, that often does not meet what was desired; this methodology invests more time in articulating the vision and design to be built without the onerous task of writing a comprehensive specification – leaving time to iterate the implementation so that at 100 time units, the system is complete and meets the vision.