How long does software development take

The factors that go towards determining how long software development can take.