Recently I saw this film:The Recruithttp://www.imdb.com/title/tt0292506/ It portrays an organization with very, very high standards for its applicants and how they get trained for active duty, where staff members face extraordinary challenges and brutal circumstances of colossal complexity; yet, every staff member should be skilled enough to overcome them all and stay alive. There is a word in the story, used to describe how such organization achieves those levels of ability into its already capable people: traincraft. Regarding the current state of affairs within the software design and programming endeavor, the people is also a key factor. Other pillars of software development are process, architecture and technology, but the people factor remains the most influential to good results (another note about this here:http://blogs.msdn.com/marcod/archive/2005/05/04/FactorGroupsAndDesign.aspx). Software development is hard, practitioners and customers alike can often found themselves in complex situations. The particularities of specific development projects can be quite challenging; in addition, technical concerns and quality goals quickly become of large-scale magnitude in many cases. All this sounds like a continuous and uninterrupted flow of very, very big challenges to be solved...by people, not technology alone. While we are going to see continuous improvements in the technology area, because it is and will continue to be one of the pillars of software design and programming, what we as an industry really need is a boost in the people area. I am not talking here about certifications or making prima-donnas out of technical people, I am talking about being respectful with each other work, mainly between who ask for the software and who write it. Part of this respect is to take the time needed to know what entails the work of each other, to open honest channels of communication to talk about concerns and how to achieve mutual interests. I am talking about practitioners taking the fate of software development industry in their own hands. Software development is a multidisciplinary activity and members of technical teams in particularly, need to expand their skills in order to be more effective at the technical level and facing the non-technical world. So definitely now is the proper time for the next big thing in the people factor of software development: traincraft.