Requirements
In this week’s class we looked at the importance of
requirements through a practical and theoretical setting. As discussed briefly
in my last post Life Cycles: The cycles of life? we explored very briefly the
importance of specifications, which are a base of requirements.
Requirements are comprised of scope, purpose and a
description that will allow the user/client to carry out the specific task that
they need address/completed by the product/software programme. The requirements
will generally set out the limits and simplifications that are required from
the finished product. Requirements will generally consist of goals and scenarios
that are required by the finished product and developers are obliged to meet
these.
The requirements will also look at the risks and deadlines
that are a part of the development process. Deadlines are an important aspect
as they outline when the product is required and also can determine the cost of
the project. It is especially undesirable if the project is delayed as generally
any agreement, will ensure that the developers are liable for any costs that
arise due to an extended timeframe.
Time is crucial in all aspects of life. Generally, the
reason for developing a new product/service is to increase
efficiency/productivity. The goal of a product/service is a mandatory level of
the requirement as it provides an area upon which the developers can picture
and place the product/service into a working environment.
When a requirement is missed it can have a devastating
impact on the finished product. The finished product/service can become
unusable if it fails to address a requirement. As a requirement is a direct
order from a client/customer it can potentially have an impact on any future
contracts. It can also lead to the client/customer losing out on crucial
business due to an inability to address customers’ needs and wants.
In addressing needs and wants, the requirements should be
addressed and labelled in terms of their importance, with the most important
requirement been addressed first, this ensures that any key advantages/selling
points for the customer can be addressed. In dealing with software, that will
be used directly by customers such as an online banking website, the interface
design should focus on been interactive and ensuring that usage is a simple and
efficient as possible for the user.
Generally, in almost all cases the client does not communicate
directly with the developers. The communication process generally features an
analyst that sits in between as a buffer between the two parties. Grasping an
understanding of the intended user’s preferences is a crucial aspect that can
ensure satisfaction and functionality for the requirements.
Implementation is the first time a user can measure how
successful and usable the product/service is in a working environment. Such an
environment will allow for the discovery of any issues, bugs and errors that
may have been missed during the testing phase. Following initial
implementation, a deployment will take place this involves the full-scale
expansion of the product/service to its users. A mutual adaption is always the
intended result, this allows for both the technology and the user to be
mutually satisfied with each other.
The role of requirements allow for a greater direction towards the satisfaction
of a customer’s needs and specification, this can ensure that functionality and
purpose are achieved. Most importantly it can allow for a greater level of
customer satisfaction, through accomplishment of needs and wants.
In relation to requirement and communication the role of the
analyst is crucial. Analyst communicate to developer from customer. Analyst can
sometimes get in the way and can become the spokesperson for the customer but
may not necessarily know what the customer needs, however when knowledge of
customers’ needs is communicated, the role of the analyst can be critical to
success and future projects.
One way of developing corrective requirements is by using
user storeis, User stories are goal driven method that a simple and effective
in portraying their purpose. An example can be seen here, …. I want to ….. so that …. , for this simple reason it is
believed to be the most meaningful processes of gathering requirements.
User involvement is a technique that is used to ensure that
the level of satisfaction and function can be enhanced, by allowing for a user
to be involved in the process. This can reduce time and costs, however with the
customer changing their mind frequently, there may be an increase in both these
measurables. The aspect of having a user involved can be quite attractive in
complex scenarios and requirements.
Implementation of the product/software focuses around making
things happen and placing the finished item into a real-world setting. This
contrasts with the deployment method, where a higher level of failure exists
due prototypes been rolled out. Further differences can be highlighted below, deployment
in a live environment is an additional aspect of sdlc. Deployment is the
bringing of value to customers and in return technology is welcomed. Implementation
is introduction to a live market of people that have never used it before.
Mutual adaptation is where technology and user adapt, this
is an important milestone, as it can ensure that a relationship between the
user and technology exists, such a relationship can be critical to success and
usage amongst its daily users. To ensure that adaption exists for a longer time
span, incremental evolution should be considered, this is where changes are made
over a longer timeframe, it can
continuously add value to the product/software and retain the products/software
value to the user. It can also reduce costs to the customer, thorugh new
features addition which reduce the need for a completely new product/software
for the company.
Maintenance and use can be seen to be the longest phase upon
the lifecycle and can be impacted by the lifespan of the product/service. As
some organisation’s focus on Optimising for maintenance it can lead to
company's forgetting to Innovate, such a short sighted view can be seen to
place these organisations in weak competitive position, if a disruption was to
occur. It is therefore encouraged that an organisation diversifies its position
and to expand upon its services and market offering.
One possible way of diversifiying is by refactoring existing
computer code, which can can be seen to remove complexity and efficient as it
adds more value, without restarting to build the architecture from scratch. Software
updates, can be seen to be a form of refactoring as updates can add value, they
can be seen to update technology at a lower cost.
Maintenance and use is the most important use of refactoring
as it allows for errors and bugs to be fixed at a quicker pace. The speed of
error resolution can be seen to impact the level of satisfaction by a user of
the software in use. As technology can be updated, value is added and enhanced,
think of mobile phones and tablets, once they can be updated, the user may refrain
from buying a brand-new device, due to new features and improved layouts. Once
these updates are matched by physical features such as screen quality, handheld
design and sound quality to name a few, satisfaction and usage can be
maintained over a longer time span.
Comments
Post a Comment