Project Management

Agility and Project Leadership

by
A contrarian and provocative blog that goes beyond the traditional over-hyped dogma of "Agile", so as to obtain true agility and project leadership through a process of philosophical reflection.

About this Blog

RSS

Recent Posts

Has Scrum outlived its usefulness? Should Scrum just go away?

The rise of Agile’s SAFe is like a bad episode of the movie Groundhog Day

Marcel Proust’s recursive novel: Why the concept of iteration in Agile is shortsighted

Forecast for 2015: The beginning of the end of Agile?

Google considered the best US company to work for due to HR agility

Categories

Date

The Agile Triangle

linkedin twitter facebook Request to reuse this  

As I’ve been studying for the PMI-ACP, I’ve been reviewing the idea of the “Agile Triangle” which is an extension of the traditional “Iron Triangle” of traditional project management.  This is an idea that was originally conceived by Agile luminary, Jim Highsmith, where he states that “many agile teams are now caught in a dilemma. On one hand they are told to be agile, flexible, and adaptable, but on the other they are told to conform to pre-planned traditional Iron Triangle framework of scope, schedule, and cost. In essence they are being told ‘be flexible in a very small box.’ Agile teams are striving to meet one set of goals and managers and executives are measuring against another set”.
 

Value – for the customer in terms of a released product or deliverable.
Quality – continuous delivery of high quality and adaptive products.
Constraints - the traditional scope, schedule, and cost.

 

Jim Highsmith suggests that Agile applied to the Iron Triangle would consists of the following end points:
Value – for the customer in terms of a released product or deliverable.
Quality – continuous delivery of high quality and adaptive products.
Constraints - the traditional scope, schedule, and cost.
Jim Highsmith suggests that Agile applied to the Iron Triangle would consists of the following end points:
  1. Value – for the customer in terms of a released product or deliverable.
  2. Quality – continuous delivery of high quality and adaptive products.
  3. Constraints - the traditional scope, schedule, and cost.

From this perspective, Agile teams should focus on releasing the project rather than getting constrained by the iron triangle.  The three end points of the iron triangle would collapse into one end point of the Agile triangle called constraints.  The other end points define the project’s goal of obtaining the value and quality of the deliverables that are of utmost importance to the stakeholders and that would require more attention.

Thus, according to Jim Highsmith, Agile teams should focus on the releasable product rather than getting constrained by the iron triangle. The three end points of the iron triangle collapse into one vertex of the Agile triangle called constraints. The other end points such as value and quality define the ultimate goals, since they are of utmost importance to the stakeholders and need more attention.

I do agree though with a blog by Rajeev Singh of “Agile Montage” that the end point of “value” could use more clarification, since as he states, “It is talking just about product/service value. It is restrictive to only customers and shareholders. How about Employee/Team Value? Or, even intermediary value focused on enhancing the core environment and sharpening the saws. For better software, we ought to think of empowerment, leadership and mentorship”.

 

He expands on the Agile triangle image by adding an intermediary and internal value to the “Value” end point:




As he states, “We just can't think at the project level anymore. We ought to start focusing on the whole organization. It is untenable to continue delivering external value without investing in internal value. The risk of not doing so is to put continuous improvement on the back burner.”

Just when I thought I had a complete grasp of the infamous “Iron Triangle” of project constraints, I run into the notion of the Agile triangle in my studies and learn something new yet again!

Posted on: May 14, 2012 10:39 PM | Permalink | Comments (5)

The PMI-ACP Exam Revisited

linkedin twitter facebook Request to reuse this  

 

Though I was initially skeptical of the new PMI-ACP (Agile Certified Practitioner) exam, I have recently seen a quite big increase in its adoption which I blogged about before.  I have seen discussion groups sprout on social networking sites like LinkedIn and Facebook and especially in training and education programs due to the requirement of obtaining 21 PDUs before taking the exam, by established and new Agile training and consulting companies.
 
Due to this, I started looking more into this certification and have to say that I do like its approach.  Unlike the more well known Scrum certifications such as the ones provided by Scrum Alliance and the new fork created by co-founder Ken Schwaber which focus exclusively on Scrum, the PMI-ACP takes a much more broader approach and covers the full gamut of Agile practices, e.g. Scrum, XP, Lean, Kanban, etc.
 
Here’s a summary list of topics that are covered by the PMI-ACP:
  • Methods:
    • Scrum (obviously)
    • eXtreme Programming
    • Lean (as applied to software development mostly)
    • Kanban
    • Crystal
    • FDD
    • DSDM
    • RUP
  • Practices:
    • Osmotic Communication (by Alistair Cockburn in his book “Agile Software Development – The Cooperative Game”)
    • Servant Leadership
    • Agile Risk Management (Risk burndown chart, audit backlog, and risk analysis)
    • Agile Planning and Estimation (user stories, planning poker, etc.)
    • Communications (standup meetings, customer interactions, etc.)
    • Agile Quality (definition of “done” and how you qualify this)
  • Upcoming Practices:
    • Innovation Games
    • Control Limits
    • Agile EVM
Over 2500 people applied for the pilot program which is a record for PMI.  Though I’m usually an early adopter for the latest and the greatest in the PM and technology fields, I decided to sit on the fence for a bit on this.  With the popularity of the Scrum certifications and the glut of new certification from PMI that have not had widespread adoption, I was reluctant to partake in the pilot.  But with the responses I’ve seen on social networking sites, the web and after reviewing the contents of the exam, I’ve now decided to take the exam.  If you’re already a PMP, it integrates nicely under it as you are only required to maintain 30 PDUs per 3 years which is half of the PMP and you can have them count for both.  Though it goes from PMI-ACP to PMP and not the other way around (In other words, your Agile based PDUs can count toward the PMP, but your PMP PDUs if they are not based on Agile cannot be applied to the PMI-ACP).
 
Of course you shouldn’t get a certification just because it is popular (unless that popularity translates directly to getting a better job and/or pay increase, which as of now the PMI-ACP can hardly claim) nor does passing this exam accurately gauge an Agile PM’s competency... I don’t want to revisit this topic and open that can of worms again, as I know it has been debated endlessly both on this site and other places regarding the PMP.
 
But as an actual Agile practitioner, I look forward to the challenge of studying for this exam as when I took the PMP, I found gaps in my knowledge of PM practices that studying for it helped identify and make me a more knowledgeable PM.  And if you’re looking to get the 21 educational PDUs, look for lower cost online classes and if you’re a certified ScrumMaster, you most likely took a 2 day class which already provided you 16 PDUs.  You could just take a 1 day agile class and obtain it, or watch 5 webcasts that have an educational component related to Agile.  I’m taking a low cost but good quality one from Simplilearn that includes 2 full exams (**Disclosure, I’m an affiliate with Simplilearn).
 
If you are interested, I’d start at the PMI site and carefully read the handbook.  I plan on taking mine around July and will blog about that here.  In the meantime, for those pursuing it I wish you luck and let me know how it goes!
If you are interested, I’d start at the PMI site and carefully read the handbook.  I plan on taking mine around July and will blog about that here.  In the meantime, for those pursuing it I wish you luck and let me know how it goes!Though I was initially skeptical of the new PMI-ACP (Agile Certified Practitioner) exam, I have recently seen a quite big increase in its adoption which I blogged about before.  I have seen discussion groups sprout on social networking sites like LinkedIn and Facebook and especially in training and education programs due to the requirement of obtaining 21 PDUs before taking the exam, by established and new Agile training and consulting companies.
 
Due to this, I started looking more into this certification and have to say that I do like its approach.  Unlike the more well known Scrum certifications such as the ones provided by Scrum Alliance and the new fork created by co-founder Ken Schwaber which focus exclusively on Scrum, the PMI-ACP takes a much more broader approach and covers the full gamut of Agile practices, e.g. Scrum, XP, Lean, Kanban, etc.
 
Here’s a summary list of topics that are covered by the PMI-ACP:
 
Methods:
Scrum (obviously)
eXtreme Programming
Lean (as applied to software development mostly)
Kanban
Crystal
FDD
DSDM
RUP
Practices:
Osmotic Communication (by Alistair Cockburn in his book “Agile Software Development – The Cooperative Game”)
Servant Leadership
Agile Risk Management (Risk burndown chart, audit backlog, and risk analysis)
Agile Planning and Estimation (user stories, planning poker, etc.)
Communications (standup meetings, customer interactions, etc.)
Agile Quality (definition of “done” and how you qualify this)
Upcoming Practices:
Innovation Games
Control Limits
Agile EVM
 
Over 2500 people applied for the pilot program which is a record for PMI.  Though I’m usually an early adopter for the latest and the greatest in the PM and technology fields, I decided to sit on the fence for a bit on this.  With the popularity of the Scrum certifications and the glut of new certification from PMI that have not had widespread adoption, I was reluctant to partake in the pilot.  But with the responses I’ve seen on social networking sites, the web and after reviewing the contents of the exam, I’ve now decided to take the exam.  If you’re already a PMP, it integrates nicely under it as you are only required to maintain 30 PDUs per 3 years which is half of the PMP and you can have them count for both.  Though it goes from PMI-ACP to PMP and not the other way around (In other words, your Agile based PDUs can count toward the PMP, but your PMP PDUs if they are not based on Agile cannot be applied to the PMI-ACP).
 
Of course you shouldn’t get a certification just because it is popular (unless that popularity translates directly to getting a better job and/or pay increase, which as of now the PMI-ACP can hardly claim) nor does passing this exam accurately gauge an Agile PM’s competency... I don’t want to revisit this topic and open that can of worms again, as I know it has been debated endlessly both on this site and other places regarding the PMP.
 
But as an actual Agile practitioner, I look forward to the challenge of studying for this exam as when I took the PMP, I found gaps in my knowledge of PM practices that studying for it helped identify and make me a more knowledgeable PM.  And if you’re looking to get the 21 educational PDUs, look for lower cost online classes and if you’re a certified ScrumMaster, you most likely took a 2 day class which already provided you 16 PDUs.  You could just take a 1 day agile class and obtain it, or watch 5 webcasts that have an educational component related to Agile.  I’m taking a low cost but good quality one from Simplilearn that includes 2 full exams (**Disclosure, I’m an affiliate with Simplilearn).
 
If you are interested, I’d start at the PMI site and carefully read the handbook.  I plan on taking mine around July and will blog about that here.  In the meantime, for those pursuing it I wish you luck and let me know how it goes!
Posted on: May 04, 2012 07:00 AM | Permalink | Comments (1)

Another review of "Distributed Agile Teams" from Projects@Work

linkedin twitter facebook Request to reuse this  

LIke other bloggers here, I got a chance to download and read the excellent white paper titled "Distributed Agile Teams", which was based on an extensive survey and research done by Elizabeth Herrin on the Projects At Work site.  Its a timely report given the increased global nature of projects being launched by multinational companies around the world.  Though Agile is a strong advocate of having co-located teams, the reality is that you will most likely have development and testing teams in part of the world, while the product design and development in another with you as project manager coordinating it all from yet another location.

 
The first third of the paper went over the eye-opening statistics that resulted from the survey, while the rest of the paper discussed the results and further evaluations.  I really liked the break down of the perceived benefits of distributed Agile teams to the eight categories of:
  1. Flexibilty
  2. Offshoring
  3. Productivity
  4. Timescales
  5. Diversity
  6. Visibility
  7. Morale
  8. Quality
This list is ordered by the ranking of benefits with the first, flexibility, being the highest.  I’m not surprised at these results and that quality would be last.  
 
In my experience with managing dispersed teams, quality and especially the validation of quality was always the hardest in both traditional and Agile project management, but especially in Agile.  The most popular and project management centric of the Agile methods, namely Scrum, advocates using a rigorous form of empirical process control to visually validate and inspect the quality of the output during iterations that get reviewed at least daily by the team and customer to allow adaptations to the backlog of items a particular Sprint is supposed to deliver on.
 
This process of “inspect and adapt” is a continuous one requiring all members from Team, to Product Owner, and Customer to be involved with to facilitate the flexibility and agility that lies at the heart of Agile methods.  I agree completely with the recommended tips of having a central repository of code, with tools that automate and streamline rather than impede and hinder, as well as ensuring you have a project manager or ScrumMaster who excels at managing co-located teams first before moving to a distributed team.
 
I highly recommend downloading and reading this white paper.  In addition, there was the announcement of a Scrum survey on this site that I hope as many people as possible participate in so we can all see how Scrum is used by Gantthead members!
Posted on: April 25, 2012 06:22 AM | Permalink | Comments (2)

Ruby Programming for Agile Development

linkedin twitter facebook Request to reuse this  

I have written previously about the Microsoft based Scrum tools such as the MS Project 2010 and Visual Studio 2010 Scrum add-ins.  But there are also a plethora of open source alternatives that have been discussed on this site and one in particular I find interesting is Redmine.  It is a traditional PPM tool with the ability to track multiple projects and issues, act as a document repository, use Gantt and time tracking, etc. There has also been fertile development for plug-ins and of course, plug-ins for Scrum.  The tool is written with the Ruby programming language and built on top of the popular Ruby on Rails framework.

Being developed on the Ruby platform is what caught my attention I have to admit and one of the reasons is that Ruby and especially Ruby on Rails is famous for allowing rapid development and deployment and is touted as an especially suited tool for Agile development.  There’s even a popular book titled “Agile Web Development with Rails” that discusses this.

 

 

Ruby was conceived on February 24, 1993 by Yukihiro Matsumoto(Matz) who wished to create a new language that balanced functional programming with imperative programming. According to Matsumoto, he "wanted a scripting language that was more powerful than Perl, and more object-oriented than Python. That's why I decided to design my own language".  

Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. It is based on Perl, Smalltalk, Eiffel, Ada, and Lisp.  The language also supports multiple programming paradigms, including functional, object oriented, imperative and reflective. It also has a dynamic type system and automatic memory management and is therefore similar in varying respects to Python, Perl, Lisp, and Dylan.

Most importantly, the language boasts impressive productivity gains for the developer that facilitate rapid development and Agile methods such as Test Driven Design (TDD), Behavior Driven Design (BDD), and continuous builds and deployment.  This is achieved by the language’s conciseness and readability.  Here’s an example comparing a Java class compared to a Ruby one:

Java:

Class Circle

private Coordinate center, float radius;

public void setCenter(Coordinate center) {

this.center = center;

}

public Coordinate getCenter() {

return center;

}

public void setRadius(float radius) {

this.radius = radius;

}

public Coordinate getRadius() {

return radius;

}

}

Ruby:

class Circle

attr_accessor :center, :radius
end

Some conclusions:

  • Ruby code is at least 50% more concise than code written in other languages like Java, which means having to write less to get the same productivity.
  • Having less code means less bugs to fix and less code to maintain (and refactor)
  • It also means developers and testers can quickly prototype and test out features and functionality
  • Ruby code is very readable following the "Principle of Least Surprise" (POLS) as well as encouraging the principle of "Don’t Repeat Yourself" (DRY) through dynamic programming
  • With built in TDD and BDD, code quality increases
  • Bottom line, using Ruby with Agile development reduces costs while simultaneously increasing productivity
     

As ScrumMasters and Project Managers, we like to focus on the work that leads to the end deliverables as well as the team and their skills and cohesiveness to get that work done.  But it is also important not to overlook the appropriate tools that can be made available to them and carefully picking ones that will increase their productivity as well as enhance quality, instead of tools that impede and frustrate them.  In software development, higher levels productivity languages like Ruby should receive special consideration.  

Posted on: April 21, 2012 11:44 AM | Permalink | Comments (1)

Performance Appraisals for Scrum Teams

linkedin twitter facebook Request to reuse this  

Read this interesting article on Scrum Alliance about individual team performance appraisals in Scrum teams and how they are antithetical to the process and spirit of Scrum.  As the author Nanda Vivek states:

The fundamental point is that if a Scrum team member is not able to contribute, then this points to a team problem. The Scrum spirit means that everyone jumps in to help; ideally, all team members work together on all of the stories. Different skill levels or types contribute to the best of their abilities. To create metrics for individuals, besides being inaccurate, would probably cause competition and division within the team. Individuals should work as a unit, be tracked as a unit, and succeed or fail as a unit...

My conclusion is that tracking an individual's performance constitutes crime in the Scrum world. The fundamental idea of Scrum is team collaboration, and team members "volunteer" for tasks rather than having them assigned. One of the core values of Scrum is courage, and it's not a bad practice to announce at the daily stand-up, "I missed my task timeline today." If that's the case, the Scrum team collaboratively aligns itself to meet the sprint backlog, at least enough to result in a shippable product when the sprint ends. It's certainly possible that not all tasks in the sprint backlog get completed at the end of the sprint, but the Scrum team should be smart enough to plan the next sprint in a way that avoids a similar pitfall. 
 
I think this notion rest on a flawed assumption that because Scrum teams are self-organizing, that the teams would by default, just "volunteer" for tasks on a backlog item.  During the initial planning process, a review of the requirements, backlog items, story boards, etc. will allow the ScrumMaster and team leads to determine what resources and skillets need to be identified to complete the working deliverables at each iteration.  This would be no different than in traditional project management where resources need to be identified, assigned and allocated for a project.  
 
In addition and especially if you’re running Scrum in a large organization, these resources will be working on other projects that you must weigh against your own to get a realistic sense of when your project can be delivered based on the priority of your project weighed against others.  The reality is that often times you have to "borrow" these resources to complete your project both in Scrum and traditional projects.
 
Furthermore, as well as self-organizing is the idea that teams would be cross-functional in Scrum wouldn't negate the need for a subject matter expert in Java development, QA tester, UI design, etc. to be identified.  If an XP process is used so that you pair people of different skill sets to work with each other, these other SMEs should acquire enough skills to pick up the slack when the core team SME is not available or too busy to get their deliverables done on time.  But this takes time to build this maturity and would still require you to identify, acquire and assign these resources to a Scrum project before you can get to the point where teams start to self volunteer and organize.  If team members leave, this process starts over again.
 
In these situations, the Agile retrospective becomes important to evaluate a team’s performance as well as understanding an individual team member's contribution to both the velocity and completeness of their contribution to the deliverables of each iteration.  This historical data is important to have to anticipate the success of upcoming Scrum projects.  A company's financial stake is on the line for the success of the delivery of Scrum projects and whether we like to acknowledge it or not, individuals in a team are paid to deliver on these projects and the only way to accurately and fairly gauge this is by analyzing in depth their performance and contribution to the project.
I think this notion rest on a flawed assumption that because Scrum teams are self-organizing, that the teams would by default, just "volunteer" for tasks on a backlog item.  During the initial planning process, a review of the requirements, backlog items, story boards, etc. will allow the ScrumMaster and team leads to determine what resources and skill sets need to be identified to complete the working deliverables at each iteration.  This would be no different than in traditional project management where resources need to be identified, assigned and allocated for a project.  
 
In addition and especially if you’re running Scrum in a large organization, these resources will be working on other projects that you must weigh against your own to get a realistic sense of when your project can be delivered based on the priority of your project weighed against others.  The reality is that often times you have to "borrow" these resources to complete your project both in Scrum and traditional projects.
 
Furthermore, as well as self-organizing is the idea that teams would be cross-functional in Scrum wouldn't negate the need for a subject matter expert in Java development, QA tester, UI design, etc. to be identified.  If an XP process is used so that you pair people of different skill sets to work with each other, these other SMEs should acquire enough skills to pick up the slack when the core team SME is not available or too busy to get their deliverables done on time.  But this takes time to build this maturity and would still require you to identify, acquire and assign these resources to a Scrum project before you can get to the point where teams start to self volunteer and organize.  If team members leave, this process starts over again.
 
In these situations, the Agile retrospective becomes important to evaluate a team’s performance as well as understanding an individual team member's contribution to both the velocity and completeness of their contribution to the deliverables of each iteration.  This historical data is important to have to anticipate the success of upcoming Scrum projects.  A company's financial stake is on the line for the success of the delivery of Scrum projects and whether we like to acknowledge it or not, individuals in a team are paid to deliver on these projects and the only way to accurately and fairly gauge this is by analyzing in depth their performance and contribution to the project.
 
Individual performance appraisals are not antithetical to the Scrum process and is actually quite important to the continued success of future Scrum projects.  Like any project management assessment, it needs to be done with a clear goal in mind and done up front and transparently with the teams.
Posted on: April 09, 2012 06:46 PM | Permalink | Comments (1)
ADVERTISEMENTS

"I know the meaning of life - it doesn't help me a bit."

- Howard Devoto

ADVERTISEMENT

Sponsors