Compared to traditional development approaches, within iterative and agile software development, manager needs to play a different role. I am sharing my personal experience as a software engineer who started out in the traditional way of software development, and along the way discovered a much better way—iterative and agile software development and iterative and agile project management.
I will describe what it is like to infuse this philosophy, in hopes that anyone attempting to change the culture of an existing organization towards iterative and agile software development and iterative and agile project management, can benefit from my experience and observations. In particular, I intend to focus on the role of management in an iterative and agile environment.
In 1980, I took my hot-off-the-press BSCS diploma and went to work for McDonald Douglas, now Boeing, in their Information Technology (IT) department. My career in the software development industry progressed as I worked my way through as Programmer, Programmer Analyst, Systems Analyst, Data Base Administrator, Business Analyst, Project Manager and Development Manager. During my 20 + year's experience, I became acutely aware that our industry was in trouble. We were stuck doing things the same old way or always looking for a "silver bullet" that would miraculously solve all our problems, and that way was not getting the job done. We couldn't respond to the changing market. Worst of all, the people working in IT couldn't make things better, even though they had plenty of good ideas, because they were bogged down by the rigid, traditional structures.
So I went on a journey in pursuit of better means to harness the energy and talents of good software developers, looking specifically for ways to enable them to perform up to their potential and as a result of their efforts deliver commercial or operational value. What I discovered is iterative and agile software development and iterative and agile project management and became a practitioner.
In my opinion, the key to the successful implementation of iterative and agile software development and iterative and agile project management is the total commitment on the part of everyone to make it work. By that I mean, all levels of the organization, from team members to the senior managers. They all have to be aware of the fundamentals of an iterative and agile approach and have to make their best efforts to practice and improve them day-by-day. The key is working smart by applying Simple Means to Accomplish the Right Things (SMART TM). I'll come back to this point later.
One of the fundamental elements of working smart is that everyone must be fully committed to the "customer-first" philosophy. Typically, organizations envision the customer only in terms of the person who purchases the final product at the end of the process. An iterative and agile approach has a different view.
Essentially, each succeeding process or workstation or end-user or department is the customer. One needs to work very hard to ensure that all team members and all departments realize their dual role: they are at once the customers of the previous work and the suppliers to the next endeavor downstream.
For this concept to flourish there must be no artificial barriers walling off one area from another or one department from another. Rather, the entire organization shares problems and must work together to ensure that a solution is found. Therefore, it is critical for the successful implementation of an iterative and agile approach that all managers support this idea and aggressively seek to solve problems, even if they are not directly within their