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

Popular posts from this blog

Systems, systems, systems!

Design and Evaluate