In the first part about why requirements engineering is important, i spoke about that most project/s fail to do the right estimation work.
Here is the second part:
In my favorite book “The mythical man-month”
, you will find statement like following: „Adding Human Resources to a late software project makes it later“
This book is not new, I always find it strange and ironic that so many senior developers and managers just not aware of it.
Our IT industry is not so old,
but we are not children or teenagers anymore, we adults and should behave like ones and take full responsibility for our work and decisions which we make.
Some company owners would respond to my statements like following
"well we can’t do anything about our deadlines and they are fixed (due to government agreements and contracts and previous agreements)."
I respond most times like following:
Sure, I do understand this, but do you plan to ship sh***t or you plan to do something great and the best possible job?
Then the most company owners say:
a) "Well we can’t do jack sh** about this, thank you for your offer , you will hear from us!"
Then I never hear anything from them. ;)
b) "You presented your analysis clearly and it obvious to us that perhaps we should reconsider our possible partnership,
but I don’t think that our major client would agree on new terms which your company suggest!!!"
Then I receive a formal rejection from those companies.
Here is a big problem,
because its a fact, that many German companies are not ready for the change, they usually say we use agile or mix with Kanban and Scrum, but in my opinion it goes nowhere and just postpones the enevitable failure of theirs project.
The real root of this problem as follows:
not right prediction of estimate on delivery of final product, here I recommend to be honest.
Always say that your company obviously would not be able to deliver all previously negotiated features and try to negotiate a new delivery pipeline where clients feature request’s would be delivered in the predictable and honest and accurate manner.
I strongly recommend and advise companies to take action and revaluate
software projects and business models , most times there signs,
that something is not right and it must be fixed.
Requirements engineering would help, because it allow to recognize following:
- What are actual functional and non-functional requirements ?
- What are the corner conditions of the requirements?
- Because of formal requirements, they would be recognized by all team members you will be able to validate them, by that I mean to validate trough all involved stockholders, product owners and team members.
- If requirements engineering done right, you will be able to catch the misconceptions and misunderstanding sooner than later.
- The developers would spend less time in understanding and implementing of requirements and even less in debugging.
- Requirements help to create enough documentation for your project and it is good feeling when you can read a requirement and able to repeat the test as user and validate that was implemented as expected