POSITION STATEMENT FROM PETER HANTOS

 

 

Preambles:

(1)     While most of the debate is on the published practices of agile methodologies, I believe that addressing and resolving some higher-level, fundamental issues is more important.

(2)     Project teams/project managers should have considerable freedom in selecting project management processes and process or engineering tools under any circumstances. Nevertheless, they are not totally little islands to themselves, and all projects have to always operate in a bigger context.

(3)     Sincere focus on people’s needs and optimal working conditions instead of giving lip-service should be a primary concern regardless of the chosen development methodology.

 

Fundamental Issues:

(4)     The main, declared reasons for the emergence of Agile Methods are the disappointment with processes, and the characterization of software development as a sequence of repetitive steps instead of a creative endeavor.  We have to realize though that the real source of process disappointment is the past abuses of major frameworks, and not necessarily the content of those frameworks. Piece-meal negotiation of practices and processes between Agile and Conventional camps is an exercise in futility. Until the representatives of the Agile Movement receive believable guaranties that the new planned, hybrid processes will prevent abuses by virtue of their definition and people will have a chance to focus on what they like to do and not what they must do, there will be no “peace”.

 

(5)     Software engineering is a social process (although some people like to view it as a collision sport …). Trust is the most critical component of any human interaction. In most cases heavy documentation, policy statements, detailed contracts, reviews and assessments, the long list of verification requirements in the CMM are acting as substitutes for establishing trust between the impacted parties, for example between organizations and their contractors, or managers and their teams. Frankly, just because of the use of lightweight processes there are no guaranties in the agile/extreme teams either that the necessary trust is built. In fact it is very naďve to expect that trust can be created by a mandate. (Shunning documentation, contracts and assessments, and relying only on verbal interactions implicitly mandates a trusting behavior.) Finally, trust has to be earned. Most people in their human interactions would start with a careful stance, and would loosen up only after substantial positive experiences with the other person. There is no reason to think that programmers, teams, and their managers behave differently.

 

Other important points:

(6)     All projects have to comprehend the context they are operating in. The context has a relationship with size, but not in a simple, obvious fashion:

 

·          The straightforward – and commonly accepted – issue is the growing complexity of communication between people when the team grows

·          Scaling issues are determined by both the size of the task, and the size of the team. There is an underlying assumption that it will be always possible to pull together a bigger team for a bigger task, but it is not always true. For example at a certain point the organization will trade schedule for manpower, by freezing the headcount but negotiating longer schedules. The opposite can be true too: Even though the generic model for effort distribution across the life cycle is a Rayleigh curve, in practical situations the manpower loading is kept steady, even though the model would call for less engineering involvement.

·          In case of stretched projects of artificially small teams maintaining communication is not an issue, but the lack of “organizational memory” might become one.

·          Similarly, even if the team is kept small, if it will be engaged in numerous, similar projects in the future, then the rules about dealing only with immediate requirements and implementing only those features the current customer wants might have to be reevaluated.

 

(7)     The attitude toward risks is different in Agile and so-called process-oriented organizations. Agile teams are more optimistic about their ability to deal with any kind of risk in “real-time”. Other kind of organizations and their managers are very risk aversive, and that’s one of the reasons why some of the processes are developed and their performance is monitored.  Again, being ignorant toward risks is an attitude on their part and not an oversight. This attitude should be subordinated to the greater operational context, but unlikely that Agile people would make this concession easily.

 

(8)     Agile methodologies do not address two critical levels of the Product Development Framework:

(9)     Cross-Functional Project Management and Enterprise-wide integration of Product Development. They are certainly provide an alternative though on the lowest, Functionally Focused Project Level.

(10) Agility is an attractive characteristic. Nevertheless, agile organizational components do not guarantee agile organizations.

 

***