
IT sectors includes a lot of IT companies that develop software projects, and many customers contract IT projects, but are all of those customers happy with these projects? And how many of the IT companies deliver to the customer requirements?
Understanding the Customer Requirements Improves Quality and Reduces Cost and Time!!
Developing a small building is different than developing a huge one, this is exactly what happens in the software industry, as you may not need to have a junior engineer build a small house but you cannot imagine building a skyscraper without using an expert senior engineer. Therefore ERP, complex workflow, huge document management, and Complicated Financial Systems are examples of those projects that need organized engineering efforts. This means that building a very small program by just writing code may be acceptable, while building larger projects by just writing code is completely unacceptable due to the obstacles that will happen in the present and future.
These obstacles are polymorphic and represented by waste of time (as it is very difficult to understand the business needs by just reading the lines of code), costly changes, and development problems. These obstacles are obviously noticed in a whole software life cycle especially at the following phases: Requirements, Analysis, Development, and Maintenance. This leads us to conclude that the requirements phase is the most essential stage for any software project and even for any other projects. Requirements must meet the customer's expected business needs; otherwise the customer will not be satisfied. So what are the techniques that can be followed in order to meet the business needs and consequently produce high quality software? To answer this question we must understand the customer's requirements, and also realize that the requirements gathering phase is not a collection of documents as sometimes a lot of documents may lead us to scattered information which complicate the problem, the purpose of the requirements phase is to clarify the business to all concerned parties and enable all the stakeholders ([1]) to understand what the customer exactly wants.
Choosing the Suitable Process Model Improves Quality and Reduces Cost and Time!!!
We must know that the software process must be compatible with the project being developed, in other words: there are different software process models but not all of them are suitable for all types of projects, because each one of the process models has its advantages and disadvantages so that we have to choose the best suitable process model for our project in order to achieve high quality and low cost software. This means that you can follow more than one process model in your organization as you have different types of projects. Deciding the best process model for each project can be achieved by understanding the main differences between the different types of process models and the advantages and disadvantages for each one of them. ([2])
Finally, all of these efforts are being made because the ultimate goal of any outstanding reputable IT firm is to serve the surrounding community life and keep its customers happy and satisfied.
[1]: The Stakeholder: is anyone who interacts with the system including the Software Developers, Business Analysts, Designers, Project Managers, Document Reviewers, Customers, Team Leaders, Administrators, QA members, and even Technical people involved in deployment and maintenance, and so on.
[2] For more information about these process models, please refer to: Ian Sommerville, Software Engineering, 6th Edition, chapter 3 (Software processes).
Mr. Yahya Abdel-Hadi
ITEC, Senior Software Developer
Amman – Jordan