I am a software developer working in a project that involves two separate software systems which communicate with each other. I am primarily responsible for one of these systems, and my company hired a software contracting firm to create the other system. Once the contractors are finished with their system, they will hand the code off to my company and walk away. After that, it will be my responsibility to maintain the code for both systems, add features, fix bugs, etc.
We have done some testing to make sure the correct information is being passed between our systems, and that they are interfacing as expected, but I have no idea how the contractors have implemented their system. I don't know if they have used good programming practices or documented anything, and I don't know what kind of testing they are doing, if any.
This seems like a recipe for disaster to me because the code they hand off to us could be a huge mess and I can think of many potential maintenance problems that could be prevented if I could just be a little involved in their development process and see how they are implementing things BEFORE they hand off the finished product and walk away. However, my management does not share these sentiments and wants to believe that everything will be fine. I have brought up my concerns several times in the past few months, but to no avail.
It seems to me that, since I will be the one responsible for maintaining this software, I should have some visibility into the development process before it is handed off to me. I have been a part of software projects in the past that have fallen way behind schedule and failed due to similar situations as this, and I want to make sure this doesn't happen to this project. How can I help my boss see the importance of my early involvement in the system being developed by the software contractors?
A few clarifications:
- My boss is a smart guy, but has very limited experience with software projects and has never been a part of a project this large and involved. I don't think he understands how much time and money can be saved down the road by eliminating design smells and bad practices early in the development process.
- There is a deadline, and if we wait until the contractor is "finished" to do our first code review, there will be no time for any significant changes.
- The contractor has assigned a single developer to this project, and there has been a learning curve for him. As far as I know, his code is not being documented or peer reviewed within his organization. So, I suspect there will be problems.