Design Methodology
When it comes to successful software development, it's not about working harder;
rather it's about working smarter. Anyone can write a program. Many can get
their program to do its intended task. But in today's world of complex task
requirements, integrated technologies and advanced programming models, one must
employ a method of development that ensures the success of a project from the
very start. Fox Solutions has developed such a methodology.
- Requirements Gathering:
- Before even a line of code is written we first listen to you, our client,
to understand how you do business and what your needs are. Then we design
a software solution that meets or exceeds your need requirements. Once this
initial design is complete, we review the design together and make changes
as needed.
-
- User Interface Design:
- The graphical user interface (GUI, pronounced "gooey") design
is often overlooked. If the information and input fields on a form do not
flow logically, the user will get lost and the application will be more difficult
to learn. In addition, for long processing times, it is important to give
the user an indicator to show that something is happening and an estimated
time of completion. Check out some of our sample
screen shots for some examples of good GUI design.
-
- Flexible Architecture:
- Your business is not static; it changes with the needs of your vendors and
clients. So it makes sense to build flexible software that changes with the
times too. For example, you may be invoicing your customers every month now,
but as your business grows, you may need to invoice every week or even every
day. Schedules change, fees change, discounts change, even your company name
may change someday. At Fox Solutions, we design our applications to be flexible
enough to change with your needs. This allows you to configure your application
to suit your needs without employing a programmer.
-
- Programming Structures:
- In the old days of programming, code was written line by line as if on a
scroll of paper. Though programmers were able to reuse code through functions
and subroutines, it was difficult to write and reuse larger blocks of isolated
code. Today, through object oriented programming (OOP), we can write reusable
blocks of code called "objects". These objects can be written independently
and then reused easily in many applications. At Fox Solutions, we reuse code
as often as possible. Reusing code reduces the size of the program, helps
keep the code easy to maintain, and reduces debugging time.
-
- In addition, Fox Solution employs a three-tier structure when developing
larger information systems. The three tiers include the user interface, the
business logic, and the database containers. By isolating the individual tiers,
we are able to use the same business rules for Internet users as we do for
Desktop users. We can also minimize compatibility issues when connecting to
many different types of databases. But the main reason we use the three-tier
structure is that, when completed, the code is easier to read, modify and
maintain.
-
- Optimizing For Speed:
- Regardless of whether you are using a slower database like MS Access or
a more powerful one such as Oracle, it must be optimized for speed. Record
indexing and poorly written SQL statements are the two most common reasons
for slow performance. If a table is indexed poorly, you will get abnormal
lag times when searching and retrieving data. However, sometime the tables
have been indexed properly but the SQL statement has not been optimized. If
this is the case, a minor change to the SQL statement can improve performance
dramatically.
-
- Software Integration:
- If you were to build a house, odds are you would purchase the lumber, nails,
fixtures, etc. from a hardware store. You wouldn't even think about manufacturing
these items yourself. Well, the same is true in software development. Though
sometimes we must start from scratch, many times there are pre-made products
that can be seamlessly integrated into your software to do a specific task.
Browse our integration ideas page for some
ideas on how you can use third party products in your application.
-
- General Code Guidelines:
- When programming, it's easy to get lazy and write code that is difficult
to maintain or impossible to build on. When this happens, a project will grow
out of control and eventually become too difficult to work with. To avoid
going down this path, we at Fox Solutions follow a few coding guidelines for
writing high quality code.
- Reuse of Code: For common tasks, a procedure should be written once and
reuse s throughout the application.
- Centralization of Code: A business rule or calculation should exist in one
place and one place only.
- Flexibility of Code: A fixed value in any given business rule or calculation
should be referenced in a configuration table or file.
- Isolation of Code: When it's possible, functions, subroutines, or objects
should be kept isolated and only depend on their given parameters.
- Object Oriented Code: When practical, object oriented principles are used
to reuse, centralize, isolate, and organize code.