Nov 8th, 2007 | Management, Concepts, People
Surprisingly, Jim Highsmith, respected agile guru, argues against one of the core agile principles of self organization, associating it with anarchy. On the contrary, surprisingly again, the Army experts, Don Vandergriff and George Reed, embrace ideas of adaptability and decentralization in traditionally command-oriented military units.
Jim Highsmith says:
“I’ve been thinking recently that the term “self-organizing” has outlived its usefulness in the agile community and needs to be replaced. While self-organizing is a good term, it has, unfortunately, become confused with anarchy in the minds of many. Why has this occurred? Because there is a contingent within the agile community that is fundamentally anarchist at heart and it has latched onto the term self-organizing because it sounds better than anarchy.”
Army experts say:
“A culture of adaptability is one that accepts a lack of absolute control over events on and off the battlefield. Implementation requires revisiting mission orders or trust tactics. It necessitates raising the bar in the education, training and coaching of leaders and soldiers. It seems trite to suggest that an adaptive institution will reward those who, when the need arises, act without waiting for orders, but this also necessitates a climate that is supportive of those who act and fail to achieve stellar results. Instead of seeking perfection or optimum solutions, operators will find a solution that works locally and then exploit those results as a continual evolution facilitated by an organization adept at receiving and communicating such information.”
Read full post >>
Posted by Andriy Solovey |
Permalink |
Trackback |
No Comments »
Aug 19th, 2007 | Management, Economics

Programmer’s Side
Programmers in the software team work well together, trust and support each other. But they don’t talk about their salaries - the most important reason why they work for the company. It is taboo. Tell them that one of their fellow programmers earn 50% more than others. You’ll see smiles disappear, people don’t look at each other and become silent. They will rebound, but these things leave scars on team morale and cohesiveness. Feel of unfairness is not the best companion in the software development.
But why does compensation is so important and sensitive for us?
- We work to live. We spend more than half of our conscious adult life earning money on work. We need money to live. Money enable for us almost everything material in this world. Any non-material incentives cannot compensate insufficient money income.
- Money are social status. The better compensation means you worth more and more attractive from social and even biological perspective. People strive for relative prosperity. They could accept less themselves than see a rival get more.
Read full post >>
Posted by Andriy Solovey |
Permalink |
Trackback |
No Comments »
Aug 8th, 2007 | Management, People
4 Effective Leadership Styles in Software Development
What should be the qualities of the best leader for the software team: strong decisive knowledgeable or quiet supportive cooperative? Best leaders have two main concerns - people and getting things done (Blake and Mouton’s Managerial Grid). Both concerns have cumulative effect - high concern for people makes them motivated and therefore more productive, high concern for production creates sense of achievement and makes people more satisfied at work.
However, there is no one leadership style that suits all situations, projects and individuals. There are 4 main leadership styles (based on The Hersey and Blanchard model and Vroom and Yetton’s Normative Model), which could be effectively used in software development: The Commander, The Coach, The Supporter and Self-Organization.

Read full post >>
Posted by Andriy Solovey |
Permalink |
Trackback |
Comments (7) »
Jul 29th, 2007 | Skills, Job, Management, People
“There are very few true artists in computer programming, most are just house painters.” - Tim Bryce’s Law

Management consultant Tim Bryce doesn’t like programmers. Many programmers don’t like him either (here, here, here, here and probably in many other places).
Mr. Bryce’s view of programmers:
- programmers often bamboozle others and heighten their own self-importance
- the average programmer has a lower IQ than any other worker with a college degree
- programmers show signs of sloppiness and mental laziness
- they appear disorganized to make it difficult to judge how they are progressing on their work effort and reveal inadequacies in workmanship.
- the typical programmer often laments he/she is being overworked, underpaid, and unappreciated.
- to the programmer’s credit, they usually possess a curiosity about technological developments. However, this must be carefully nurtured by management - too much information may distract programmers from their job.
Responses on Mr. Bryce’s post (referenced above) provide many excellent points why Mr. Bryce is wrong. However, I want to comment points where he is probably right. Also I want to understand why some management consultants with more than 30 years of experience could have such view? Certainly, I reject Freudian view that an unknown programmer hurt feelings of Mr.Bryce in childhood (the main reason is that at this time the world had only few programmers and all of them are known).
Mr.Bryce’s target audience is not programmers (whose low IQ would probably prevent understanding his Theory P anyway), but IT managers and business decision makers. The underlying premise of Theory P is: “The more effectively we manage the people who program the computer, the better we can utilize the systems to support the information needs of the business”. This theory is not about live people, but about pragmatic business and lets consider the theory from this perspective. There are three points where Mr. Bryce could be partially right.
Read full post >>
Posted by Andriy Solovey |
Permalink |
Trackback |
Comments (11) »
Jul 10th, 2007 | Management, Economics
If you want to build a ship, don’t herd people together to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea. - Antoine de Saint-Exupery

I have a dream about a company that always makes users happy. The company that quickly builds high quality, simple and usable software that fully meets user needs. The company that reacts rapidly on customer demands, anticipates new needs and immediately use these opportunities. The company where people are happy, motivated and could realize their potential, dreams and life goals. The company that is successful on market and in the hearts of users, investors and employees. The Ideal Software Company.
The Barriers
What are the main problems with building software? What are contributing factors to these problem? What prevents many existing software companies from being ideal?
- Unclear, incomplete or misinterpreted user needs. The software programs often don’t solve needs on adequate level, have bad usability and contain many unused features.
- Difficulty to estimate required effort. Missed deadlines, doomed schedules and budget overruns are the common deceases in software development.
- Inability to adopt to changes. Often it is even impossible to estimate effort at the beginning as many things are changing during the course of the project: customer needs, performance requirements, business context. But for many software companies these changes still bring chaos to their projects.
- Poor, rigid or low quality solutions. Implementation defines project success. Talent, experience or knowledge are necessary to build good solutions, and they are often missing in the project teams.
The main reasons for these problems
- Top-down decisions - only few people make decisions with limited information, lack of feedback and independent information
- Poor aggregation of information from different sources
- Lack of diversity: homogeneous groups that are responsible for only specific aspect of the project (requirements, design, programming, etc.)
- Lack of accountability for the end results, mismatch in company and personal employees goals, politics and suboptimal decisions.
- Low motivation and morale - minimal control over decisions, poor relation of incentives and payout to contribution into the company success.
- Centralization - authoritative control causes inflexibility, lack of independence and adaptability; missing local tacit knowledge in decision making.
James Surowiecki in his book The Wisdom of Crowds clearly shows that traditional top-down companies are inefficient in making the best decisions.
The Ideal Software Company
A. Company organization
- Powerful teams - the company represents a conglomerate of powerful teams. Projects teams are small, diverse and empowered to make most project decisions.
- Egoless management - management carry mostly support, coordination and representation functions. Leadership is moved to the teams level. Top management is a consulting body, which includes highly skilled professionals in finances, technology, sales, etc.
- Shared and competing infrastructure - company infrastructure could include services as hosting, customer support, recruitment or distribution. These in-house services are shared and compete with outside providers.
Read full post >>
Posted by Andriy Solovey |
Permalink |
Trackback |
No Comments »