The questions
How can we avoid ending up with contradicting requirements raised from the users? We'd appreciate process improvement suggestions that'd fit our limited resources.
Disclaimer
I haven no idea if this question suits this Stack Exchange site. If not please delegate me to a better place.
Background
We're basically two and a half IT guys working on a huge webssite. The website is what generates the companies revenue. Due to some limitations the company doesn't have the money to have a dedicated project manager.
So usually sales is more or less dictating what IT has to do which can't be blocked in every case, no matter how silly and work intensive a feature is in terms of time to invest and the benefit you gain from it. Which is already a flaw I'm aware of but which I'm not in the position to fix.
We're using Github to mangage issues and have a git branching strategy and continuous integration for automated testing and deployment in place. That part works nice.
We use the Github wiki to get somewhat of a software requirements specification done which is written by a person with no IT background but who knows how the business processes in this company work. He is no project manager nor got any background and experience in writing such documents.
The problem
We're very often ending up with situations in which we have contradicting requirements in our ticket descriptions. Also it seems that requirements change and effect previously done work in an unintended way, not technically but the workflow / business logic of the application.
For example I've got a ticket to implement image upload that has two constraints: 1) Profile type can or can't upload images 2) If it can upload, then the amount of images is limited depending on the type. So far so good you might think. But now, in a follow up ticket I've discovered that the requirements contradict with the previously designed constrains and that there is a third field and the use of the third field is now in question.
I would like to find a way to avoid ending up in situations like that every few weeks.
I've worked before in a bigger company but they had the same kind of trouble in larger projects. I'm a senior software developer, not a project manager and had to lead a small development team before. I can manage our development process and I'm happy with how things work in this area but I'm clearly not happy with our requirement gathering and the the contradicting requirements. I don't think the person who writes the requirements is doing that intentionally or is doing a bad job, it's just that he is not used to it. Also he is only four days a week available.
#<id>
. See help.github.com/articles/autolinked-references-and-urls/… I've also requested that the Wiki pages that should contain the info and should kept up to date are linked, but they aren't always kept up to date. I think the problem is that nobody, even sales itself, and this has been proven, knows all possible weird edge cases they've made up.I begin to think that answering this question is not possible without spending a day in our company. It's probably just the lack of a dedicated PM.