How one can develop large software products? It is no secret that in practice large and complex software product development has always been independent of the latest technologies. It has its own peculiarities, and requires special methodology.
Researching and analyzing existing approaches to software development, our company wasn’t able to answer very simple questions related to “correct” development of high-quality programs. And it’s no wonder! Nobody can develop common formalized approach to large software product management. For example, one of the simplest questions, we raised in Oxagile, was the question of how to assign “correct” version numbers to issued software. Probably many of you will agree that this question is connected with not only large corporate software, but also with the simplest applications, developed by students and beginners in programming.
All the version numbers reflect consistent approach to development. On the one hand, they correspond to project requirements, and, on the other hand, they represent their connection with previous versions (for example, in the form of source codebase).
Before we start a software project we solve some important questions: where to get financing, how many people will work on the project, how to plan the work to get it done by the date fixed (deadline!) and many others. It’s all managerial stuff. But what about programmers? How they look at the same project from their side?