I work as a developer in a small to mid size company in North America. I happen to work directly under the owner of the company with my small team so we have the most visibility in the company in terms of tasks and workload.
Recently we (the developers) have had an issue where because we do not have detailed requirements, we are prone to make mistakes. For clarity, the "requirements" are typically a single line item in a document written as a technical requirement. Good examples of this are similar to "Port all bug fixes from previous version to new version", "Create a feature that does something", "Add new table for this".
The issue, is that due to the lack of requirements we tend to make mistakes. We will be told to finish a change in a specific area, but not realize an entirely different section of code requires changes because of an unknown business rule. Or we will be asked to implement a feature, but not realize the implications across the application in other areas. Our boss has decided that writing detailed requirements is similar to spoon feeding an infant, and as such does not do it.
The only solutions I see are not great:
- Take additional time to do analysis on the changes. This will likely cause us to go over development deadlines (thus making me look worse then if I had just missed a requirement).
- Start demanding more detailed requirements, or asking a lot of follow up/clarification questions (already attempting this, typically met with resistance and off-hand comments like "this should be obvious").
- Find a new job.
How can I either manage a situation like this, or find a way to get better requirements in place to prevent this in the future?
...we tend to make mistakes. We will see a place something was implemented and do the same thing, but not realize an entirely different section of code needs the same change. Or we will be asked to implement a feature, but not realize the implications across the application in other areas.
These mistakes are your (dev team) fault. I would expect you to know the codebase and know how a change in one area affects another area. Why would your boss know this?