Today I found some new answers to questions I was asking and was asked. Here they are:
Q: How do you define a "small" and "large" project?A: Small project is project with homogeneous development environments. In large project the environment is heterogeneous. For instance, C# + SQL is homogeneous environment, while Java + Flash, or .NET + Perl are heterogeneous.
This definition correlates to size of the project measured, say, in functional points. When project size grows more supporting utilities, services or components are required which are often implemented with technology very different from core product platform.
Q: How do you define "mature" developer?
A: Mature developer, I would even say, engineer understands that technology is not a goal. The goal is business value, technology is only a means.
Have you ever been told that new version of XYZ came out yesterday and we need to migrate to this new version as soon as possible? Great engineer is the one who finds best technical solutions with the imperfect tools he's got.
Q: Who is a manager?
A: A manager is a person who understands trade-offs.
Manager understands what choices mean, what are the implications and why one of several alternatives is chosen. Good managers see choices where others can only see a straight way.