I currently work in the IT dept of a small company. Our team consists of 5-7 people. We do not have business analysts & our projects are all reverse engineered & started without requirements.

Because of that, we accept many kinds of projects from different fields & I am currently facing a huge issue where our client wants us to build an Accounting Software. So in this case our project manager gives us a sample Accounting Software & we are tasked to study the behavior & gather requirements ourselves in order for us to develop such software.

The issue is that I don't know accounting at all. I have to spend a lot of time learning & guessing how the given software works. I don't think I can even make the deadline at this rate. I don't know if this is the right way to do things.

Our past projects weren't successful at all & I'm beginning to doubt whether I'm a capable developer myself after spending more than 3 years in this particular company & experiencing such project failures.

So as the title says, do many companies do things this way?

2 Answers 2


While it's not uncommon at all to involve reverse engineering as part of the requirements gathering process, having it be the only step (or, one of the only two steps with the other being 'let the developers guess') is almost certainly doomed to failure.

Your responsibility in such a situation is not to be a hero, miraculously learn accounting in a week, and develop what the client needs before the deadline.

Your responsibility in such a situation is to inform your manager of the risk to the project. If you do not believe the deadline can be reached, inform the manager. If you believe you will miss or misinterpret key features the client needs, inform the manager.

Then step back, let your manager make the decisions, and accept that if things continue without change then the project will fail, and it won't be your fault.


While part of the project definition phase is competitive analysis, it's not usually done by developers.

Developers are supposed to be given a Technical Spec and they do the coding. You don't need much knowledge of the field if you have a comprehensive spec.

So you may or may not be a successful developer, but measuring that by how well you reverse engineer (your words) a product is not a measure of an engineer. It may be a measure of a Product Manager.

Especially since you're not reverse engineering. You are "borrowing" features from other products.

Real reverse engineering means figuring out the (compiled) code of a product; now that's real engineering work for both hackers and those that work in anti-virus companies, for example.

BTW: By simply creating copy-cat products and reinventing the wheel, you are not going to get any good products. You are trying to rewrite products that have been out there for many development cycles and are way ahead of you.

So, no, most companies come up with an original idea, and don't base their entire engineering spec on reverse engineering another product.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.