In today's modern computing era, computer applications have become indispensable for engineers to do their work. Some software works well, meeting technical requirements and expectations, while others are not very effective because of their instability, unfriendly user interface, or difficulty to use. Since computing is a typical skill of engineers and the engineers also know the solutions for the particular problems, it is common for them to write programs for their own needs. However, as a project and application grow bigger and more sophisticated, the problems related to application software design and architecture, which impact software extensibility without degrading the software performance, become apparent. When a program is written without concern for overall design, the maintenance of the software becomes more costly and difficult. Alternatively, a program developed by an individual who lacks the necessary technical background, may not be intuitive to use or may not address all technical needs of the engineer. A good program not only must meet the business requirements and specifications necessary to provide engineering solutions, but also must be user-friendly, and intuitive for users to learn and use easily. Thus, the users can focus on their specific job instead of struggling with a confusing manual, or trying to avoid causing a software crash. Understanding the business domain and prospective user's practice helps developers create more useful tools.
This paper discusses the cause of the problems in software quality from the perspective of both the user and IT professional on complexity and facilitation, extensibility and adaptability of software. The paper also proposes some suggestions for IT professionals to develop quality, favorable application software for users. It also provides guidelines for engineer users and project managers to evaluate and purchase software.