The day I sat for the PMI-ACP (Agile Certified Practitioner) exam
3In mid-September 2011 the PMI-ACP (Agile Certified Practitioner) exam was lunched. Personally, I get the chance to sit for the first time the exam was taken in Latin America some weeks ago.
Being in a pilot phase, the test results will be announced in December this year, but meanwhile, I take to leave my impressions recorded here.
What I think was positive
- Values. The biggest surprise that I got was to see that all content and exam questions are strongly oriented towards agile values and philosophy. One of the questions that accompanied me all the way to where I took the test was exactly “What would the vision of PMI about agility be?” (I was particularly concerned about an article that got published by the PMI in 2010 with, in my opinion, a not-so-lucky-vision about agile methodologies, on which I wrote at that time (see original article). But let’s get back to the exam. It seems the steering Comitee for tagile certification has done a good job.
- Agile Manifesto and Lean Values. There were several questions about the values and principles of the Agile Manifesto (essential to know) and Lean values. I particularly liked some questions that asked for parallels or mappings between Lean and Agile Values.
- Methodologies. All XP, Lean, Scrum and Kanban are covered by the exam. There were questions related to these four agile approaches. Although I must admit that most are associated with XP and Scrum and fewer to Lean and Kanban.
- Not as many tools and processes. Excellent from my point of view. Most of the exam was oriented toward the interactions between people, working with the customer, learning and constant adaptation.
- Situational questions. Like the PMP exam, many questions were situational. Ex: It poses a particular scenario for which you have to choose an action. There was a “most correct” choice of a series of “right choices”.
- Oppositions. I liked the way in which some questions were asked. I refer specifically to several that included two types of correct answer: The one that a PMP would choose and the one that an Agile Practitioner would, in fact, those questions could be part of the PMP exam and thus have another correct answer than the one in this context. I think this point is critical and requires the candidate a paradigm shift in the way of working.
- Technical Knowledge. While it is not necessary to have a high level of technical knowledge, XP practices are presented in the exam, like TDD / ATDD / IC. I was happy to see them there.
- Reference Materials. The exam questions cover virtually the entire bibliography recommended by PMI.
What I saw as Improvement Opportunities
- Questions. There were some questions with semantic errors. I recommend to pay special attention to such situations.
- Agile Manifesto and Lean Values. In my opinion, I would put greater emphasis on agile principles and values. I think (and it’s a personal opinion) that is essential to understand them before trying to understand any methodology or framework or particular implementation.
- Methodologies. Incorporation of DSDM, Crystal Clear, OpenUP, etc.. would be great.
- Many “Hows” and few “Whys”. For the most part, the test was focused on “how to” resolve certain situations or “how” certain methodology solves the odd situation but does not spend too much time on the “Why” of the resolution.
In short, and in my personal view, the test has more positive points than improvement opportunities. I must admit that my expectations were far surpassed.
Where would be located, in my opinion, this certification in relation to the Scrum Alliance ones? I’ll leave this topic for a next post.
How to access this certification? More information on the official website for the PMI-ACP.
WebTest Fixtures, FitNesse, Selenium and Integrated Windows Authentication
0As part of one of the latests coaching on implementing Scrum in a software development team, it was decided to implement ATDD and we decided to use FitNesse for preparing and writing of the tests and Selenium to execute them.
In order to link both Selenium and FitNesse, we use WebTests Fixtures (Thanks Gojko et al.)
The surprise that awaited us was a web application developed in. NET with Windows Integrated Authentication. Anyone who has been through this, would know that there is not much information online that would solve the problem. Except for a couple of modifications to the core of WebTest and a few isolated posts, we were unable to find a unified source to solve this problem.
From the beginning, we knew we didn’t want to modify the code of the testing tools we decided to use, to enable them to be updated as new versions come out without major problems, therefore, that solution was discarded.
After researching a while, we decided the best option was to have Selenium running an instance of Firefox onfigured enough to set Integrated Windows Authentication with no problems.
Context
FitNesse and Selenium are both installed and running as services on a windows server. FitNesse version is the one that comes with the download of WebTests Fixtures, while the version of Selenium is the latest, since that comes with WT supports up to Firefox 2, not 3.
Solution
In principle, we must create a new Firefox profile with a given configuration for user credentials under which the service is running Selenium are sent to the Web application in a transparent manner, without popups or alerts that prevent Selenium do its job. Then we configure selenium to lift the specific profile of Firefox, and not another.
Creating the Profile in Firefox
To create a new profile for firefox it’s important to be logged with the user under which the service is running Selenium. Once inside the system you must follow these steps (Note: This assumes Windows):
1. Run:
firefox.exe -ProfileManager
2. Click “Create Profile”
3. Naming Your profile. In our case we use “WebTest-FFPROFILE-IWA”
4. Select a folder. In our case we use “C:\webtest\WebTest-FFPROFILE-IWA”
5. Click “Finish”
6. Select “Do not ask at startup”
Configuring Profile in Firefox
1. Continuing from the previous step, select the newly created profile and click on “Start Firefox”
2. Go to “View-> Toolbars” and uncheck “Bookmarks”
3. Right click on the toolbar and select “Customize”
4. Select “Use Small Icons” and accept
5. Go to “Tools-> Options
6. In the tab “Main” setear “about: blank” homepage and off as “Show Downloads”
7. In the Tab “Perstañas” select new window to new pages and disable all alerts
8. In the Tab “Content” Disabling Pop-Ups
9. Tab In the “Privacy” all options off History
10. In the Tab “Security” Security Options unselect and “Settings …” disable alerts
11. In the Tab “Advanced” deactivate “automatic transfer” of the subtab “General” and turn off alerts and search engines the tab “Updates”
12. Go to “Tools-> Extensions” and install Firebug, and ScreenGrab Selenium IDE
13. In the address bar type “about: config”
14. Create logic input (boolean) “extensions.update.notifyUser” -> false
15. Create logic input (boolean) “extensions.newAddons” -> false
16. Modify the entry “network.automatic-ntlm-auth.trusted-uris” and enter the domain of the server where we want to test the Web application
17. Modify the entry “network.ntlm.send-lm-response” and give it a value of “true”
At this point we have properly configured Firefox profile.
Selenium configuration to take your Firefox profile created
Modify the batch file that runs Selenium (in the root of WebTest) and include the following parameter after the call to the JAR file: “-firefoxProfileTemplate C:\webtest\WebTest-FFPROFILE-IWA” (change C:\webtest\WebTest-FFPROFILE-IWA with the foldername into which you saved the newly created Firefox profile.
Done, your tests now should run under Windows Integrated Authentication.
I hope to serve you at some point if you run into this problem.
Programmers are not Developers
4I often find myself in situations where people mistakes “programmer” with “developer” or even “developer” with “programmer.”
Before proceeding, I should clarify that my position is to define the programmer as someone who does not specialize in something else other than coding new features based on designs received. Does not help to write or understand the specifications. Does not even occur to write automated tests. Doesn´t work to keep the build up to date. Not to mention the tests. He doesn’t help the client understand their needs or solve their problems. He’s dedicated only to write code.
The current trend in software development and agile methodologies are increasingly realizing the need for multidisciplinary teams, or in other words, people who contribute in various ways to the aim pursued, rather than people who only specialize in one part of the process and do not have a complete view of the project.
Thus, all are equally responsible for achieving the successes and learn from the failures (if any exists.) The most reasonable solution that some organizations are finding in order to meet the changing business context is to increase their flexibility. It is even logical to deduce that the engagement of specialists in certain areas alone will create many economic losts and even higher costs of communication within the team, which can impair the successful product development.
What is expected of a developer then? The developer is basically who does EVERYTHING but not at the same time (that would be an absurdity), he knows the process from beginning to end and therefore is able to detect “on time” any “misadventure” that might arise. In other words, it would be like those new digital cameras that obtain a panoramic image providing a comprehensive view of the scene photographed.
The tasks of a developer are:
- Understand the business and the objectives that are being pursued
- Collaborate with the Product Owner to identify the user stories and acceptance criteria
- Being part player at the time of assembly and maintenance of the working environment
- Ensure agile practices for software development as continuous integration, TDD, ATDD
- Participate in the design of the solution, both logical and architectural
For a better world, the responsibilities of product development must be shared among all those involved in the project, with the exception that the Product Owner does not, in most cases, have the necessary expertise about thechnical topics. Yes, I see the next question is: what about the Scrum Master? My answer is another question: How could the Scrum Master to remove impediments and ensure an adequate team work environment if he doesn’t have the technical expertise required? Quote:
“A detailed and intimate knowledge of how something works posibilidade increases that help the team leader to discover more subtle technical issues that must be addressed” (LaFasto & Larson, When teams work best, 2001, p. 133).
At bottom, though the team is the primary caretaker of product development and of course is best known its development, the Scrum Master should not ignore the aspects of development and in some cases, who should be better known if it is want to avoid communication problems, interpretation and estimation, but above all, if we are to achieve a successful goal.
Returning to the beginning: what we need are real developers who have the tools and practices needed to achieve a successful development process and a high quality product. This does not mean that there is also need for programmers, but do not confuse a developer or “developer” with a simple timer. Even a good programmer could be a bad developer and Scrum Master who has not acquired these tools during their training could possibly be perceived by the development team as lacking the necessary skills to perform their duties.
If only we can understand these fundamental differences, we will have taken another step towards a better working world.
Is this PMI Agile perspective?
3Update: The article mentioned in this post does not exist any more at the PMI website. Thanks to the agile community within the Project Management Institute and its efforts to promote the essence of agile methodologies, we can say that PMI’s perspective on agility is much more objective.
Here my original post:
In the August edition of “PM Network” a short presentation about what is and whether to adopt Agile was published. It touches on several of the principles and suggested (in a somewhat biased way in my opinion) the situations where they apply or situations where they don’t. Anyone interested in seeing it, can do it here::
http://www.pmi.org/resources/pages/agile.aspx
But the interesting part is the response posted by some Agile Folks
Enjoy:
Mariana’s Scrum Implementation Laws
0Who is Mariana? True to the best journalistic style that doesn’t reveal its sources, sometimes for professional or ethic reasons and many other times just for fun (to annoy the audience), I won’t reveal his true identity. Let’s call it simply “Mariana.”
“Mariana” is one of the students who attended one of the Scrum courses I taught this year. Upon finalization, I gathered all my stuff, including the material usually used as letters, cards, post-its, tape rolls, markers, etc. Later when I got home, I proceed to arrange all those things and found this paper:
Infallible laws to Implement Scrum
1. Do it Iterativly, Incrementaly
2. Don’t try to cover everything from the beginning
3. Manage the expectations for the first Sprints
4. Don’t feel overwhelmed by all the impediments that will arise (previously hidden)
5. Have courage, experience and let experience – Its nor bad to fail, it’s bad if you don’t learn from your failure.
Well, the truth is that I do not know who was the author of this note because it wasn’t signed. Just guess it was a woman because she folded the paper very suspiciously neat and so I called her “Mariana.” Today I regret this haven’t been shared with the rest of the class, it would have been very productive, but at least the good thing is that she understood what it is to bring Scrum to practice.
photo by http://www.flickr.com/photos/limaoscarjuliet/225249268/
August 31st – Agile Development with Scrum
0Sorry, this entry is only available in Español.
Scrum in Rosario City!
0During a new visit to the beautiful riverside city, this time supported by Fundación Libertad, I have the chance to chat a few hours about the meaning of Scrum in order to get a little bit closer to Agile.
We were fortunate to enjoy a cool winter morning, in a high floor of a building in downtown that offers a breathtaking view of the river Paraná. Gorgeous!
At the beginning, we held a dynamic called “tribes” through which we identified different groups of professionals and their knowledge and use of Agile methodologies in their projects (it’s amazing how this kind of exercise always works, whatever the context or group of persons).
Later on, we started talking about the Principles, the Agile Manifesto, User Stories, Sprints, Product Backlog, Release Plan, Task Board, Daily Standup Meetings, Retrospectives…, trying to understand what makes Agile Methodologies so effective when talking about improving the quality delivered to the customer and the practices of our daily work.
Even though many people are reluctact about these methodolgies and find them strongly contrasting with what they´ve learnt so far, there are many others who are positively interested and look forward both to learning more about Agile and applying it at work. The mere act of participating in this experience is a great way to do it!
Here I post the presentation we used (in spanish):
Hope to see you again soon, Rosario!
CSD – Certified Scrum Developer in BA
2Last Week, from Monday to Wednesday, I facilitated another session of a 24hs intensive workshop about agile software development that belongs to the CSD certification (Certified Scrum Developer).
Here I post a video that illustrates the session:
For more information about these CSD certification workshops you can visit Keer’s dedicated webpage: http://www.kleerer.com/en/CSD


