
INT Services span the full life cycle of a software project,
from solution design to development to application support. Focusing
primarily on technologies relating to data visualization, analysis,
and user interfaces, we combine our off-the-shelf component suites with
technical expertise and a variety of support services to respond rapidly
and efficiently to customer requirements.
INT Services can help update legacy applications or design and implement
new ones. Our team has the technical skills and product knowledge to
successfully build applications across a broad range of industries and
computing environments. In areas as diverse as finance, oil and gas,
GIS, and engineering, we translate strategic needs into tactical solutions.
INT project teams employ a repertoire of state-of-the-art software
engineering practices and tools to deliver solutions that exceed customer
expectations. For complex projects, we effectively combine talent in
data visualization, architecture, networks, and optimization to ensure
design and development success.
Software Design and Programming
We understand that execution within budget is critical to our customers'
success, and utilize a highly flexible development methodology known
as "Agile Unified Process" to provide clients
with top-notch solutions quickly and effectively.
Traditionally, customers must know exactly what they need, and how
to ask for it, when undertaking new software initiatives. The Common
"waterfall" development methods used for fixed cost projects
usually prescribe a process in which requirements are written into a
specification; a system design is generated; the system is implemented
according to the design; the final product is tested and deployed. With
this approach, change is costly and errors in requirements, design,
or implementation will result in unstable or ineffective software.
Agile Unified Process embraces change. This methodology
accepts that most software projects evolve, and mitigates many risks
inherent in software development by breaking projects into small iterations
in which requirements, design, development, and testing occur continuously.
The resulting product more accurately fits the customer's needs, rather
than representing what they were able to specify at the beginning of
the project.
Most projects follow the following procedure for each release of a
product.
Inception - Customers meet with INT developers to discuss the
scope of the project
Initial requirements are gathered. It is not necessary to define
all the requirements at this time. Requirements are decomposed into
individual features and entered into INT's task management system.
Elaboration - INT assigns estimates and a development plan is
created.
INT examines each feature and generates an estimate of its time
to implement. Customers use the estimate to assign a priority to the
features, and a development plan is created detailing what form the
deliverables will take (source code, binaries, tests, documentation,
etc...) and how they will be delivered. Requirements can be added, modified
or removed at any time. INT will then adjust it's estimates and customers
can re-prioritize as they see fit.
Construction - Work begins and continues to completion.
Development progresses in small increments called iterations.
An iteration consists a series of steps performed over a short timetable,
including: 1) Picking the features to implement in this iteration, 2)
Resolving outstanding bugs, 3) Delivering the product to allow for customer
feedback.
Customers might change requirements or priorities based on information
gained from each iteration. This iterative process can continue for
as long as the customer wants. By adding features, the product can be
enhanced. By removing features, earlier deadlines can be met.
Transition - Product is deployed or moves into support phase.
At this point the product can be deployed for use. If future
releases are required, the customer can begin the process again with
more requirements. If the product requires no future releases, it can
be moved into a maintenance state with longer iterations performed either
by INT or the customer.
Benefits of the INT Agile Unified Process:
Automated testing dramatically lowers defect rates
and improves software design for better maintainability.
Frequent releases increase feedback, lower total risk,
and mitigate risk of failure by front-loading potential
problems.
Frequent releases also allow customers to stop the
project at any time, for whatever reason, and still have a working,
stable, and clean (albeit incomplete) version of the system.
Focus on working, tested software lowers costs and
helps eliminate 'bloatware' caused by useless or misunderstood features.
The resulting design is simple, straightforward and easy to maintain.
Iterative development cycle provides high project
visibility and control, allowing customers to react quickly to changing
requirements or market conditions.
Constant feedback greatly improves the usefulness
of the system by ensuring that features are implemented the way
the customer wants them, not just how the developer chose to implement
them.
Education and Training
INT strives to help customers achieve a level of technical
self-sufficiency. With this in mind, we offer a comprehensive series
of training programs for our clients and distributors. Classes are
designed to educate clients in underlying concepts as well as to develop
proficiency in applying our software and methodologies to particular
business needs. Each course provides extensive hands-on experience
and can be tailored to emphasize client priorities.
Support
There is more to a software project than the delivery
of the first version. At INT, we understand the life cycle of a software
project and are ready to help you support your application after it
has been delivered. Because each software project is unique and each
customer has different requirements, we can offer a level of support
tailored for your needs. Example of support activites include:
Access to source code, code reviews, and documentation
Maintenance updates
Full technical support