Just checking in to see how others estimate software development tasks. Currently, I am leading a project to upgrade an in-house product to one running in the cloud. Additionally, they are converting all IBM DataStage and IBM IIB middleware jobs to Informatica as part of the upgrade to this cloud product. Since the current developers are not the ones who wrote the middleware, they don't have a great deal of experience with that code. Furthermore, they felt it was easier to "start from scratch" rather than waste time understanding existing code. They estimate their "finish dates" each week; however, almost every week, those dates shift to the right, extending the project's completion date. Upper management told the team "that's it", they could make one more change and "no more". Being a developer myself for many years, my question is how can these developers accurately estimate a "finish date" given their lack of understanding of the current code base, the move from an on-premises database to a cloud-based database, and the use of REST calls to retrieve and update the data. Any attempt to mandate a software development completion date has been disastrous in my experience. I understand that upper management and the business require a fixed "trackable" schedule. However, given the situation outlined above, I don't see how this is possible. Any help would be greatly appreciated. Saving Changes...
Given the team's lack of experience regarding the specific development work, any estimate will at best be a poor guess.
Rather than estimating what it takes to complete all the work, it would be better for them to identify the level of uncertainty associated with the work items and have them tackle those in order of greatest uncertainty wherever possible (taking into account dependencies between the work items). This way, the overall degree of uncertainty will decrease over time and their estimates will improve as their knowledge grows.
This is not a case where you can take a fixed date approach as I'm assuming all of the jobs will need to be converted and not just a subset. So, given that it is fixed scope, then time has to be flexible given the degree of uncertainty involved.
The commitment to senior management won't be for the overall project but rather for the next milestone.
The only way to get a better estimate would be to engage a third-party that has significant experience with the specific of this development work but I'm assuming that option is off the table.
This is no different than someone asking a team of inexperienced anglers to catch a particular type of fish in a large body of water and asking them to estimate how long it would take to do so...
Kiron, thank you for your prompt response. I appreciate your recommendations, even though I am not sure if they will be accepted. Your last paragraph perfectly sums up my thoughts.