Agile process is considered as one of the best iterative software development processes for fast software delivery. It is helpful for organizations to launch their products and updates faster than ever. Agile methodology is being used by leading and most of the organizations in IT industry nowadays. In fact this process is formed by some of the top IT Industry leaders and has been projected as one of the most success methodologies of recent times.
Agile includes daily task schedule and task assignments, daily update tracking and daily planning. It includes Scrum based process for task tracking/meetings.
Everything sounds good so far as they are written above. It looks like a company or a development team has nothing to loose in this mentioned procedure. But if looked closely, it is always a loss to organization as well as individuals who work in such methodologies. Although marketed as successful process in Software Industry, a common outcome of this process is that the teams break-down and people working in such teams keep leaving the organizations on regular intervals while new ones keep joining in. There are reasons behind that.
Here I will prefer to put my view-point in perspective of Indian Software Industry or Offshore Development Model rather than generalizing the concept for IT industry which will be unfair on my part given more than 90% of my work experience has only been in above mentioned arena. You are also requested to read in with that conceptual view only.
In IT development, there are two levels – Management and Development. Generally Development teams are supposed to be the building block of an organization while Management team is supposed to manage the development efforts. But with passage of time, Management teams in IT industry have started getting more focus and importance as there has been notably higher rate of increase of development pool and hence easier availability of skilled developers which resulted in ignorance the criticality of Development structure.
Agile considers flat organization structure which exists in very selected IT organizations. Most of the IT companies have hierarchical distribution starting with Management at top and Development below it.
As whole Agile concept is based on correct planning and estimation of tasks and proper tracking, this process is expected to be started by Management and completed/implemented by Development.
As mentioned above, in hierarchical structure in most of the organization and today’s importance of management over development, Managers had already started exploiting the Development teams before processes like Agile came into existence. So when such processes like Agile and Scrum brought more focus on management functions like planning and estimations, it brought more power into hands of management and ultimately, that planning and estimation of efforts was brought down as much as to burn up the caliber of Developers by over-expecting from them.
It ultimately leaves Developers with no choice except to stretch themselves to as much as they can and then quit when limits are reached.
Also it brings more insecurity to the Developers.
For management, it becomes regular process to keep pitching in new Developers by luring them for one reason or other for compensating the lost Development efforts.
Above that, it becomes more difficult to new Developers to get going with existing system in place as in Agile based Rapid Development environment, minimum documentation is created and maintained. So new Developers consume quite much time in installing and understanding existing system which already puts them on back seat in ongoing Agile Development process by the time they are ready to perform.
Further Agile works best in teams where they are not separated geographically (as also mentioned in its official documentation) and in today’s distributed team philosophy over onshore and offshore model, Agile and Scrum is being implemented wrongly over this distributed-model resulting in more abuse to these processes. It has brought total anarchy and defamation to them, specially from development community.
In today’s date, I still believe that Waterfall, Prototyping and Spiral based models are more meaningful and helpful to developer community (if not all but those core developers who believe in quality of software than the deadlines) which bring justice to the balance between Management Planning and Development Efforts plus security cover for lost SDLC hours.
This whole view is from my perspective and my experience with these processes. You are most welcomed to provide your inputs on this topic.
PS: There comes term impediment in agile, which is given a miss by management at most of the companies as far as I have noticed in my experience!