Ethics is often seen as being about what should NOT be done. The CIPS code of ethics says we should avoid conflict of interest. But it also says we should behave with integrity. How can we show integrity? What we say must be trustworthy. Every time we give an estimate that is really out to lunch, the integrity of our shop is questioned. So we need to track our time spent on projects and measure what is produced so we can give better estimates for the next project. Better integrity through time management.
The two most common ways to measure what IT work is being done are lines of code and function points. Both have drawbacks but they have both been at least partially validated by science to indicate size if you use them properly. Function points are the easiest to use when predicting the amount of work on a project, unless you have a similar project. In that case, the best solution is to check how much time was spent on that previous case. All of this requires the shop to keep (and use) a database of projects, their size and the time spent on them. Is that really something you would expect to do to improve the ethics of your shop?
There is much more consensus on what ethics tells us not to do. In this case, if I said “He misrepresented his ability to get the job done on time” most people would agree this was not ethical. But the leap to say that we all need to track and measure and improve our estimates is not always seen as an outcome of applying ethics. I suppose there are alternatives like I discussed in a previous blog where we get people to understand the uncertainty of the estimates. But I think we are much more obligated in the long run to improve our estimates and improve our integrity.