Forum Post: Better Software Development Practices that lead to decreased reliance on the corruptable Finance System!!
Posted 10 years ago on Dec. 2, 2011, 5:23 p.m. EST by mantelln
This content is user submitted and not an official statement
I just quit my job this week at a company who unfairly treated low budget, outsourced contractors and released them without adequate effort made to transition them, on the grounds that the contractor produced poor quality software, although the quality appeared to be due primarily to poor management decisions.
The company used what is called an "Agile" Development Methodology to produce the software. Different methodologies have different maintenance patterns, meaning that there are different ways the software and development team must be maintained depending on the methodology used, and the strategy and time management of the development effort must conform to the patterns of the development methodology in order to be successful.
Agile development requires a technically proficient team to be effective. The developers used were Indian developers, one, the supervisor of the contracting company with 7 years experience, but the other two were college graduates without much practical experience. Over the course of the year I was with the project, one of the junior developers quit for a better offer (as he was only getting paid $1000 a month under this agreement) and was replaced by another developer fresh out of college. The contractor made $3000 a month in total for himself and his team, and to sustain his company, which only consists of those three.
Shortly after I had come onto the project, the existing tech lead and I did an analysis of the architecture of the software and recommended a period of re-factoring, which means to focus for a month or two on fixing architectural problems before continuing with many bug fixes or feature additions. This is an essential step in the "Agile" development methodology, because projects developed this way accrue what we call a "technical debt", in which the software becomes so complex and disorganized during construction under this methodology, that it becomes extremely difficult to maintain, meaning that bug fixes and feature additions take an extremely long time to accomplish.
The company did not heed the advice, and as predicted, all bug fixes and feature additions took far longer to accomplish than the company optimistically expected and every single software release since then went far past the deadline.
The management of the company ignorantly decided to start enforcing abusive payment policies, despite my initial protest within the company, in which they cut spending on the team and were unclear as to their future expectations of the contractor, whether they were supposed to continue work or not, at one time demanding exclusivity of the contractor then unclearly releasing them of that duty and then totally cutting off work soon after, refusing to compensate the team for a month which they felt they deserved compensation. This action will put them in further debt after already having to take out loans to make up for the losses incurred from the previous months of cutting pay for what was perceived as poor quality software.
I quit the company in protest because I felt these practices were unethical.
I also feel that forcing contractors to get into debt this way ultimately siphons the money out of the software development community and into the hands of the financial system. Money that might go towards education, books, and software development tools will now be forced into the financial system through the accrual of debt.
Please note that this is a complex situation and it is technically difficult to say what happened and the events that led to the consequences, and also if the consequences are really that harsh given the state of the global workplace.
I would like feedback from the community as to what people think about this kind of stuff and what else should be done - please developers and experienced software project managers comment on this especially -