Analyzing a customer’s development requirements may seem trivial at the outset. However, the task is often quite time-consuming given the various factors that have to be taken into account. The main objective is to meet the requirements of the customer, while minimizing custom programming and modifications made to the application. It is also important to standardize developments so that other users can benefit from them and not be hindered by them.
Primary requirements
First of all, it is important to properly understand the
user’s request. People often tend to suggest solutions, instead of describing their
requirements. This can result in the analyst moving in the wrong direction and lead him to propose a
solution that may meet the customer’s requirements, but inconvenience other users. It is
therefore essential to ask the right questions to correctly define the requirement. To do this, it
is often necessary to expand the context of the requirement, taking into consideration its position
in the overall process. For example, a user may request a new report. It is important to know what
needs to be printed and to ensure that all of this information is available in the application. You
must also determine the order in which the information should be printed, the frequency, time
available, etc. Responding to these points could require the analyst to review some of the table
formats, create new tables or change data entry to be able to gather the required information.
Determining the parties involved
The people who will use the application must be
identified. Will they use it in series or simultaneously? For example, if a process is continuous
and the information has to be sent from one person to another, the transaction must move from one
person to the next based on a predefined process. The application must allow more than one person
to modify the same information, with the ability to integrate security. Will several people use the
same application at the same time? This may require managing secure access to ensure that two
people cannot modify a given transaction at the same time, or allow one user to reserve a
transaction number without disrupting the work of other users. It may also be necessary to know the
responsibilities of each user. For multiple processes, each party may have access to only some of
the options. This important fact must be considered when setting up security rules.
Knowing the source of information
If data is to be entered in the application, where is
the data from? Is the data generated by an external application? If yes, can the data be imported?
If the information is incomplete, can it be completed by linking with other configurations in
maestro* or must the data be imported? There are many questions the analyst must answer to find the
best way to combine all of the information. Entering information manually is not the same as
importing it. In some cases, even if importing is necessary, manual entry is still required to
manage, modify or simply enter certain data manually.
Validating exceptions
Once the solution is determined, it must be validated taking
exceptions into account. In any process, there are always one or more non-standard cases. For
computer applications, managing these cases is often the most time-consuming task. The advantage
with software is that you can quickly and easily reproduce an established process or transaction
hundreds or even thousands of times. However, when an exception occurs, there must be a way for the
application to recognize that the standard process must use a different method. It is therefore
important for the analyst to know these exceptions, and ideally, be aware of all of them. In fact,
when conducting a basic analysis, a good analyst will take the exceptions into consideration to
develop a solution that can handle all of these cases. Learning about an exception after the fact
can make work already done useless. The user must therefore provide this information.
Amount of information
The solution can vary significantly based on whether some data or,
more specifically, whether dozens, thousands or millions of bytes of data must be managed. This is
why it is important to determine the amount of data to be managed in advance. In addition to having
an impact on how data is entered, the volume will also affect subsequent processing, the format of
data tables and how analysis reports are generated.
Future
Custom programming is often only one phase in the context of a more general
requirement. In some cases, the situation is clear, while in other cases, more thought is required.
Whatever the case, this is an important exercise. If he is aware of future developments, the analyst
can plan for flexible options from the initial phase to facilitate future development.
Tests on modifications or adding functions
Once modifications have been made, it is not
only necessary to modify them, but also any functions affected by the changes. For example, a
change to the payroll system may require several validation tests to ensure the changes have not
affected other calculations. An application consists a set of compiled objects to provide the
desired result. If an object is modified, you must, in theory, revalidate all applications that use
the object. Therefore, a change to our "Entry Grid" object would, in theory, require
revalidation of all options that use this grid. In practice, the quality control team checks
several typical cases and presumes the result can be applied to the entire application. This said,
the number of tests also affects the analysis. Under the circumstances, whenever possible, a
solution that requires few or no tests will be preferred over another. Often, this also affects the
choice of the version in which the change is made.
Other factors
During his examination, the analyst should also consider how the
application currently works, and how it is used by users. For example, if he knows that a function
is not used much, he may be more inclined to change the behaviour of the application than if it is
heavily used.
He must also consider existing information and, more importantly, how much information is involved. A change to a table or adding information may require an upgrade to adjust customers’ tables based on the new development. This can represent many minutes or hours in some cases.
To conclude, it is always very important to check that new developments do not inconvenience current users. This can be done using a new configuration in which the user can enable or disable the new function. In some cases, default values can also be assigned to limit the entry of information for example.
Obviously, some functions can be added without changing the situation. For example, adding a report simply changes the menu. However, introducing a new step in a process would, in theory, affect all users.
Conclusion
We are often asked for changes that appear simple in the eyes of the user.
However, the analyst must consider all factors and provide a solution that will be simple,
practical, inexpensive, safe and progressive. This is not always an easy task.