Code + Course Name
The purpose of this article is to review recent issues of the User Centered Design (USD) in software development. The paper will discuss and present a structured and an insightful look into the USD and the implications it might have for a software development. It will also present some opportunities and difficulties or problems surrounding the USD approach while showing a brief survey of some User Centered Design methods. The paper will further identify some key factors that can imply success when applying the UCD process in software development. According to Vredenburg (2008) reports from some UCD surveys show that a cost-benefit compromise is a key and major consideration when adopting a UCD approach. Further, measures of the design effectiveness are inadequate and rarely applied. These results therefore, show that there are implications and consequences for the introduction and execution of a UCD project. The article will therefore review the UCD in a reflective and critical manner in order to reveal its experience in software development.
Over the years, User Centered Design (UCD)has generally gained a wide acceptance as an approach to or model used for IT development. The UCD is an approach or design philosophy that outlines and involves distinct phases throughout all development stages and a design life cycle while focusing on gaining an explicit understanding of the users, environments and tasks. According to Sy (2007), the process is iterative and involves a user-centered evaluation throughout the development and design process. The four general phases of the UCD process are as follows; designers should attempt to specify and understand the use context, and subsequently specify consumer goals or business necessities, then create or produce design solutions (design phase) and finally evaluate the design or assess outcomes of the evaluation. Evaluating the design against users’ requirements and context is important as it determines a good software development.
The User Centered Design
The UCD is a methodology or repertoire of a philosophy and design methods, which is used to describe a design process which focuses entirely on users through any process of planning and designing a product. When an organization decides to apply the UCD, it should consider users involvement. This is because users influence a product’s design and development since factors such as their expectations, limitations and necessities must be taken into account. The UCD approach can be used to generate effective and efficient software systems for various users which eventually meet the requirements and various needs of each individual user in the most possible manner. However, due to problems and complications encountered in the UCD approach, it cannot be defined as the simple way to develop a successful system.
From the beginning, the focus of applying and implementing the UCD approach in an industry was to develop systems that could be used in businesses rather than to develop products or services directed for use by the consumers. However, the process is fast changing and paving way for creation and development of system designs that suit the expectations of the end user. It is therefore important to clarify the UCD approach and understand issues in the design in order to develop better software systems.
The UCD approach is a continual improvement process despite having the analysis, plot, and implementation and deployment phases. For the development of a completely new software system, the process starts at the analysis phase followed by the remaining three phases. However, at the deployment phase, there should be an on-going evaluation of both the system and the users. In the analysis phase, all the user or business requirements should be taken into account and the services should include conducting a stakeholder analysis, defining usability goals and competitor benchmarking. The design phase should provide a thorough approach to the system design and ensure that the software design meets the customer requirements. Some of the services that should be conducted in this phase are information architecture, paper prototyping, and user testing and interaction design.
The implementation design takes the interaction design and the tested system and implements the two into a working system with services such as user interface integration and documentation. Finally, the deployment phase involves a continuous performance monitoring and evaluationof the new software system. Performance is monitored against the usability objectives and the services included are user surveys, performance analysis and a continuous evaluation.Abras, Maloney and Preece (2011) suggest that the current UCD models involve users in exploring various options and include innovation as a part of developing software that suits the end users.
Usability and its importance
Usability is a process that is used to measure interactive user experience which is associated with a particular user interface, for example, a software application. There are various factors which define a software usability and include; how well the UCD design functionality, flow through the application and application response fit the user needs, user tasks and user expectations respectively. Usability is therefore the quality of a system which makes the system easy to learn, use, and remember and error tolerant. Bevan (2009) suggests that a good UCD is therefore one that can create a highly usable software system through people involvement process to get adequate information about a system use. Usability can be used to depict the difference between a software system failure and success. For instance, software with poor usability can greatly reduce a workforce productivity level.
The Relationship Between the UCD and Software Development
UCD and software development practices are repetitive approaches when it comes to developing software that can shoot up a projects’ success. UCD creates the software development success by involving the product’s end users and through a research and iterative product design and evaluation. By doing this, it results in a software product that meets users’ needs better and is more usable. The UCD approach deals with the design, evaluation of the system user interfaces and user research. On the other hand, software development practice concentrates on crafting suitable software that can meet the necessary project management. Both the UCD and software development practices are critical in developing usable and working software. Some aspects in the software design approach conflict each other and possibly create a poorly integrated system development process.
According to Brhel et al. (2015) conducting real world studies on software developmentis challenging. The main reason behind this is because software development nature is quite unpredictable and it is the humans, instead of the development process who craft the software. Development of software involves various activities in the execution phase and these are; engineering research, technical design or software engineering, programming and finally testing. In the current iterative model, the work activities involved in software development practice are performed concurrently.
Brhel et al. (2015) reports that software products are usually and unique hence, the software development projects are highly uncertain. The high level of uncertainty is as a result of the constantly changing building blocks, tools as well as the industry standards. It is quite challenging to develop or create an executable software program since there is a lack of user interface to conduct tests with real users. The User Centered Design (UCD) is nevertheless a critical tool used to plan and develop software that can satisfy users’ needs in the fast-paced and technical-evolving industry.
UCD Practices and Methods Relevant to Software Development
Work tasks in a UCD life cycle consists generally of an iterative design, user research and product evaluation. The specific activities involved are designing a website’s information architecture, conducting usability tests and conducting a user interface usability test. The UCD approach concentrates on areas such as research, generating design solutions and finally testing them. Some usability engineering techniques that can be adopted to perform possible UCD activities in software development are prototyping a user scenario, task operation and usability testing. The most commonly UCD processes used are task analysis, iterative design, informal expert review, usability evaluation and field studies. A user requirement analysis is also considered as an effective UCD method as it has a very strong cost to benefit tradeoff.
Benefits and Challenges of the UCD
According to an ISO 13407 standard, developing a human-centered interactive system has essential social and economic benefits. It is therefore necessary to use UCD methods throughout a software creation project that can greatly increase products’ usability. Some of the UCD benefits are:
Investing in a UCD approach pays back as it results in costs savings and raised monetary income from the increased productivity and the number of sales. It is however criticized that the UCD does not necessarily meet the software industry needs at an enterprise scale. Vredenburg et al. (2008) also suggests that the UCD can take up more cost and time and thus result in a gradual software development process and poor usability software systems. However, despite the time and money factors, the benefits of adopting UCD outweigh the costs and save on the software development costs.
Implications for Software Development
In my view, the UCD model is an essential software design and development approach. The planning of a UCD practice with greater usability and suitability for a specific software development should be carefully selected. Doing this will facilitate yielding greater benefits and to ensure cost-effectiveness during software development. It is also possible to implement a UCD as most of the current software development practices are not based on an approach that is human-based. The UCD approach is therefore a successful software development practice to adopt and apply as opposed to the different approaches that omit the user in the process.
Developing a software system is a challenging task more so when a user is involved. Abras, Maloney and Preece (2011) suggest that the challenge is as a result of different users’ expectations, beliefs, attitudes and preferences and the role of the user interface. The current software development systems involve a combination of the key issues in software development, that is, the user interface and interaction. One approach in developing successful software is through integration of usability experts and the software engineers to work as a team. There are several integration models that can make the integration process easier. Nevertheless, the UCD approach is one of the key acceptable models as it develops software that can be easily understood and adapted for use by a human user and with a user-centric focus during development.
Abras, C., Maloney-Krichmar, D. and Preece, J., 2011. User-centered design. Bainbridge, W. Encyclopedia of Human-Computer Interaction. Thousand Oaks: Sage Publications, 37(4), pp.445-456.
Bevan, N., 2009. Usability. In Encyclopedia of Database Systems (pp. 3247-3251). Springer US.
Brhel, M., Meth, H., Maedche, A. and Werder, K., 2015. Exploring principles of user-centered agile software development: A literature review. Information and Software Technology, 61, pp.163-181.
Sy, D., 2007. Adapting usability investigations for agile user-centered design. Journal of usability Studies, 2(3), pp.112-132.
Vredenburg, K., Mao, J.Y., Smith, P.W. and Carey, T., 2008, April. A survey of user-centered design practice. In Proceedings of the SIGCHI conference on Human factors in computing systems (pp. 471-478). ACM https://www.usability.gov/sites/default/files/user-centered-design-chart-example.jpg