Creating software requires a certain degree of skill that makes it very difficult to develop. This skill is something that cannot be learned in a day.
Since there are so many computer companies in existence, there are going to be plenty of different programmers who work for different companies.
Each one has a different set of skills and capabilities.
This is why creating software is always going to take a little more time than it would if one company was to create the software.