Konstantin Berlinskii
© Konstantin Berlinskii, 2022
ISBN 978-5-0056-9705-9
Created with Ridero smart publishing system
1. INTRODUCTION
“Well, – you will say after reading the headline of this book. – There is one more new profit appeared, one more impostor who tries to teach us how to live, how we should implement the software projects! We have already found the methodology that copes with all the problems. We adapted it for our needs and there is likely to be less problems.”
And you will be right… but not completely. In no way I consider myself some kind of a new Messiah who will finely tell everybody how to achieve a success.
But I am really interested in a method of effective software development (and as a result of this knowledge I am interested in extending the level of my professional skills as an informational system developer).
This book is not a written justification against a certain methodology. But before, on the forums of the special sites I permitted myself to express my rough point of view about different up-to-date development methodologies that were supported by their staunch defenders with a religious fanatic ardor.
You will not find here any arguments for a certain methodology, as can be supposed, taking into account that for a long period of time I was a faithful supporter of the RUP methodology, I learned it and took an active part in its introducing in activity of the company where I was working.
Moreover by that time I was in the firm belief that a strict divisions of the team members working over the project into separate roles and appropriate functions could make the process of development easily controlled and successful while their participants – satisfied with the work.
In this connection with my book I have the risk to incur just anger of defenders and supporters of the existing methodologies of software development or those that will appear in the future.
However, everybody has the right to express his own opinion and I will use this right.
I am sure that the truth about different methodologies is that they do not exist at all.
But now let help those who has fainted away to come around and confess to themselves what is the newest methodology of software development about which you have got to know from the latest marketing statement of a company.
Or what is the methodology that you use now in your day-to-day activity, where you have put many resources (learning materials, courses for key specialists with business trips in other city/country and finally the most important thing – time)?
You think that the methodology plays an organization role, that clearly prompts how you should work in order to achieve success in the field of informational technologies. And finally you hope to take a competitive priority “throwing dust in eyes” of the potential customers by the phrases difficult for understanding, such as “We are on the 6th level of CMM”, “Re-engineering of the business processes”, “Automation of the chaos by means of function separation in the alternative activities”, etc.
However, running the same methodology in different organizations and projects (frequently in development stages of the same project) shows for some reasons absolutely different results. Those things that perfectly work in particular cases and serve as motivation, in other cases, on the contrary, are obstacles.
What is the main reason, you could ask. I think that the project success depends on the following:
– Resources available (first of all it is the developers quality and the second – the time)
– Way of their interactions
If there are resources available and they collaborate with the maximum efficiency I think the project stands a better chance to result in something valuable.
As for methodologies, it seems to me that all of them describe the final collection of different efficient use methods of scarce resources.
My point of view consists in the fact that number of these methods (successful project solutions SPS) is infinite and you should not restrict yourself to the subset in the context of the methodology X. if we wish to advance in the field of successful program development we should gather these solutions (in a similar way as pattern) and learn to use them in a necessary situation.
This book is an effort to collect all the methods of successful development clear for me in a single place.
I wish you pleasant reading and good luck!
2. THE REASONS WHY THIS BOOK WAS WRITTEN
This book was written in order to collect in a single whole those things that I call “gold crumbs of knowledge”, dispersed in the great number of sources such as Internet, literature and some kind of folk arts.
Phrases like “Two heads are better than one” or principle “divide et impera”, known as early as in the Rome Empire, contributed in the development of program engineering more than both Microsoft and IBM.
After reading any book, article or message on the forum I was always interested in what useful I could get from this source exactly. Does it contain any useful thought unknown for me before? There were luckily to be new ideas in the most cases, but unfortunately they were diluted with secondary information that confused the issue.
Therefore after reading the next work I tried as far as possible to make up a summary with a list of the main ideas (unknown or not very obvious by that moment for me) that the author tried to express.
For example, here is the following result I have got after reading the book [3]:
1. The business-process description in text is much smaller than graphic format (it’s really truth – the greatest working problem with diagram was that the printer did not support A3 and A2 formats).
2. Customers will read the text, understand and sign it (admit or express their claims) faster than learn UML (for example, I spent a lot of time for explaining the include/extended link on usecase diagrams.
3. A new employee will easily learn how to write the text in the format of Cockburn’s usecases than make him use UML and the supporting product correctly (for example, Rational Rose – graphics editor that leaves much to be desired).
4. Good classification of aims – you should always work on the same goal level. The level comes up if you ask the question “Why?”, and comes down if you ask “How?” (this is the great art to be on the needed goal level – the diagrams become smaller and more general or too big and detailed).
5. An excellent, intuitive comprehensible pattern of use case description (main scenario from 10 steps without “if” + main scenario extending + additional information).
6. An excellent idea concerning methods of multivariate analysis of the requirements collected (for example, with the help of electronic worksheet) – use of sorting, grouping in different attributes (importance, term, module, role)
7. And finally, I consider that the most important thing is that the lower the goal standard is, the less useful and obvious diagrams are.
It follows from this the idea of dividing the task between different CASE-tools: for creating diagrams of higher level (business process scenario, schemes of traffic, diagram of main document mode, collaboration between program module) to use tools effectively applied for drawing diagrams, connections between them (Rational Rose, MS Visio), but for more detailed description to use Cockburn’s use cases.
I must confess that writing this book was a quite risky business: every time I can