Showing posts with label Scrum. Show all posts
Showing posts with label Scrum. Show all posts

Aug 23, 2020

Tips for Passing the Professional Scrum Master PSM 1 Exam

 Here are some tips I can share about taking and passing the exam:

  1. Review the Scrum Guide thoroughly.  Read it at least 6 times. Perhaps 10 times is better.  Take one day or more between each reading, to give your brain time to digest what you read. During each reading, highlight points that you did not notice in prior readings. 
  2. Take sample exams between each reading. Doing this helps you notice gaps in your knowledge of the Scrum Guide.
  3. Do the Scrum Open Assessments.  Keep doing them until you always get 100%.  A few of the actual exam question are very similar, so being familiar with the Open Assessment questions could be the key to your passing if you make too many mistakes.
  4. Do Mikhail Laphsin's free quizzes. His real mode exam is particularly useful for determining how fast you can read and answer questions.
  5. Review how Scrum Teams can work with other Scrum Teams working on the same product.
  6. It's best to memorise some things. Alternatively, you can have them printed and ready for reference during the exam. For example, know by heart the core concepts, such as the values of Scrum, the pillars of empiricism.
  7. Make your own sample set of questions, based on the Scrum Guide.
  8. Do all the recommended reading 
What to expect during the exam:
  1. You will want to go back to review some questions. Have a pen and paper ready to note down the question numbers.
  2. If read fast enough, you will have enough time to review those questions and still have enough time to finish early.  I had 10 questions I absolutely wanted to review, and 5 questions I was sure I got right but would like to re-check if I still had time.  It turns out I had enough time to check all 15 and still have 13 minutes left.
  3. Some people have said the loading of each question was slow, taking up to 5 seconds.  I did not have such issues.  However, just to be safe and ensure my Wifi bandwidth was not going to cause problems, I asked everyone in the house to stop viewing YouTube videos while I was taking the exam.
  4. Some of the questions will be about applications of Scrum ideas: Given <a situation> what is the best response? 
  5. Some questions will ask you to choose the best answer. Usually some of the options will go against Scrum principles and values.  Often, there will be two questions that seem correct. You will need to use your judgment as to which of those two best fits with Scrum principles and values.
  6. You will be anxious.  After all, $150 is a significant investment, gone with the wind if you fail. The pass cutoff rate is pretty high. And 80 questions in 60 minutes can be daunting.  There's no point saying "Don't be anxious." Maybe anxiety will help you.  One way to practice taking exams under anxiety is this: During practice tests, challenge yourself to get 100% each time, allowing only 30 seconds per question.  For example, do Mikhail Lapshin's real mode exam, striving to finish it in 24 minutes only. 

Mar 6, 2012

Scrum Fundamentals – Iteration, Sprints, and Feedback

I said in the previous post that one of the biggest problems brought about by a waterfall approach is the lack of feedback.  The future users of the software get to see the software only when it is finished, when the opportunity to provide valuable corrections and suggestions are practically over.

Not only is it too  late (or too expensive) to modify the program, the software is often actually unusable.  Scrum directly addresses these problems by mandating that software must be developed iteratively, in iterations, and the at the end of each iteration, the software must be demonstrated to the stakeholders to get their feedback. 

Scrum calls its iterations Sprints.  Scrum recommends that Sprints be between 2 to 4 weeks.  Whatever duration you choose, all the Sprint must be always the same duration.  If you go for 2 weeks, then all the Sprints must each be 2 weeks. 

This is in the ideal case of course, in practice a Scrum team that is just beginning to learn the ropes can choose a tentative duration to try out (say 2 weeks).  If the team finds that 2 weeks is too short, they are free to adjust it (and all future Sprints).  If they find that it suits them, they stick to it. arrythmia

The key thing is to establish Sprints as a regular occurrence, like a heartbeat.  Sprints of different lengths are like arrhythmia, with all the unpleasantness it brings.

The completion of each Sprint produces a finished subset of the product.  The ideal is to deliver a working subset, preferably something that can be shipped.  In practice this is not so easy to achieve, for some functions rely on other functions which may not fit in the current Sprint. 

For example, an online store may include such functions as allowing the customer to search for products, order products, apply discounts, and have them shipped to an address of their choosing.   Very often all of these functions cannot be built within a single Sprint. So which ones to build in order to product a shippable subset?

The Scrum team (together with the Product Owner) decides which functions to build in order to deliver working software.  One such option could be to simply include only the search for products function.  So at the end of the Sprint you end up with software that searches for products, and does nothing else.  That is an acceptable choice.

It is far better than deciding to build all the user interfaces for all the above functions, but not have them work.  If you do this, what you get at the end of the Sprint is not working software, rather, you end up with a glorified series of screenshots.

Back to feedback.  At the end of each Sprint is a Demo of what was built.  The Scrum teams demonstrates the current product so that the Product Owner (and other stakeholders) can review it and give their feedback.   Is this what was envisioned?   If it was, was it what you wanted?  Very often, once we see the the incarnation of what we said we wanted, we come to the realisation that that is not really what we wanted.

The purpose of the Demo is NOT to show the Product Owner that the Scrum Team is working hard.  No.  The purpose is only feedback regarding the product.  (There is a time when evaluation of the Scrum Team occurs, but this is not that time, and I will talk about it later).

If there is one thing that feedback causes, it is change.  You can be sure that the feedback will result in changes, changes to what the software will do, and changes to what it is currently doing.

So what do we do with the changes?  I’ll talk about that in the next post.

Scrum Fundamentals – Iterations, Sprints, and Feedback

I said in the previous post that one of the biggest problems brought about by a waterfall approach is the lack of feedback.  The future users of the software get to see the software only when it is finished, when the opportunity to provide valuable corrections and suggestions are practically over.

Not only is it too  late (or too expensive) to modify the program by then, the resulting software is sometimes not only bad, but even unusable. 

Scrum directly addresses these problems by mandating that software must be developed iteratively, in iterations, and the at the end of each iteration, the software must be demonstrated to the stakeholders to get their feedback. 

Scrum calls its iterations Sprints.  Scrum recommends that Sprints be between 2 to 4 weeks.  Whatever duration you choose, all the Sprint must be always the same duration.  If you go for 2 weeks, then all the Sprints must each be 2 weeks. 

This is in the ideal case of course. In practice a Scrum team that is just beginning to learn the ropes can choose a tentative duration to try out (say 2 weeks).  If the team finds that 2 weeks is too short, they are free to adjust it (and all future Sprints).  If they find that it suits them, they stick to it. arrythmia

The key thing is to establish Sprints as a regular occurrence, like a heartbeat.  Sprints of different lengths are like arrhythmia, with all the unpleasantness it brings.

The completion of each Sprint produces a finished subset of the product.  The ideal is to deliver a working subset, preferably something that can be shipped.  In practice this is not so easy to achieve, for some functions rely on other functions which may not fit in the current Sprint. 

For example, an online store may include such functions as allowing the customer to search for products, order products, apply discounts, and have them shipped to an address of their choosing.   Very often all of these functions cannot be built within a single Sprint. So which ones to build in order to product a shippable subset?

The Scrum team (together with the Product Owner) decides which functions to build in order to deliver working software.  One such option could be to simply include only the search for products function.  So at the end of the Sprint you end up with software that searches for products, and does nothing else.  That is an acceptable choice.

It is far better than deciding to build all the user interfaces for all the above functions, but not have them work.  If you do this, what you get at the end of the Sprint is not working software, rather, you end up with a glorified series of screenshots.

Back to feedback.  At the end of each Sprint is a Demo of what was built.  The Scrum teams demonstrates the current product so that the Product Owner (and other stakeholders) can review it and give their feedback.   Is this what was envisioned?   If it was, was it what you wanted?  Very often, once we see the the incarnation of what we said we wanted, we come to the realisation that that is not really what we wanted.

Sprints

The purpose of the Demo is absolutely NOT to show the Product Owner that the Scrum Team is working hard.  No.  The purpose is only feedback regarding the product.  (There is a time when evaluation of the Scrum Team occurs, but this is not that time, and I will talk about it later).

If there is one thing that feedback causes, it is change.  You can be sure that the feedback will result in changes, changes to what the software will do, and changes to what it is currently doing.

So what do we do with the changes?  I’ll talk about that in the next post.

Mar 5, 2012

Scrum Fundamentals

Stripped to its essence, Scrum is an approach to delivering software.  Nothing more, nothing less.

There are many approaches to developing software.   At one end, you can have a very formal ‘waterfall’ style approach where the development lifecycle consists of major phases that follow one another.  These phases include the Requirements Phase, where the project analyses and documents what the stakeholders need.  The next phase would be the design phase, where designers design the system to be built, which once built will deliver the requirements identified in the Requirements Phase.

After the Design Phase comes the Build Phase.  This is where the actual product get built, based on the specifications produced from the Design Phase.  Once built, the product gets tested in the Test Phase, in order to ensure the quality of the built product.

The phases in the waterfall approach are very logically  structured.  Each phase produces exactly what the next phase requires.  From arguments based on reason alone, it seems to be the perfect approach. 

In reality, however, the above approach is riddled with inefficiencies and problems, not due to the phases themselves, but because they are performed by fallible human beings, using fallible communication methods.  

Perhaps the most commonly cited problem is that very often, the product that comes out at the end meets the specifications, which in turn meets the requirements, but somehow ends up not being what the end users wanted or expected.

The lack of feedback between the stakeholders and the product being built – as it’s being built – contributes in no small part, to the problem.

Scrum IDEFAgile, and in particular, Scrum, proposes to fix the above problem by increasing the visibility of the product being built, while it’s being built.

We can illustrate Scrum at a very high level in the IDEF0 format as shown.

The output of a Scrum process is working software.  The inputs are a vision of the product, and of course time and money.

The process is executed by the Scrum Team, who relies heavily on the Product Owner, who represents the business stakeholders and from whom comes the Vision of the product.

Scrum comes with a set of techniques and procedures, and guided by the principles espoused in the Agile Manifesto.  You execute Scrum using these techniques.  In theory, you get working software, and the software that is guaranteed to be what the customer wants.

How does Scrum do that?  We’ll start exploring beginning with the next post on this topic.

Feb 2, 2012

The Essence of Agile

How much of Agile practices can you remove before it becomes no longer Agile?

I was having a discussion that other day with another project manager, and this fellow was saying that he didn’t think you could do Agile without having a card wall.  Now, I’ve done Agile development before using just an Excel spread sheet instead of a card wall to track the progress, so I know for a fact that you could do Agile without the card wall. 

So I said I disagreed and we left it at that.

A little while later, I thought about the matter a bit more and decided that I haven’t changed my mind.  It is not the card wall that determines if you are doing Agile or not.

Let me give an analogy.  The other week my 6-year old son and I were playing basketball.  We weren’t in any basketball uniform.  I was in jeans, and he was in his civvies. We were still playing basketball, weren’t we?

We also were not following basketball rules: each time he makes a shot, it’s worth 50 points. Each time I make a shot, it’s worth 1 point. We were still playing basketball, weren’t we?

Also, he didn’t have to dribble: he could run with the ball as much as he likes. We were still playing basketball, weren’t we?

Lastly, we were not even using a basketball ball. We were using a soccer ball (our basketball ball was too heavy for him). We were still playing basketball, weren’t we?  I believe so.

My point is that there is a core in Agile that represents the essence. The card wall is not an essential part of it.

The idea of the card wall originated from the concept of ‘kanban’, a Just-in-Time (JIT) system developed at Toyota many years ago (as far back as the 1930s would you believe it?).  I’ll write about what kanban is in another post, and explain the big difference between it and how the card wall is used in Agile development. 

The important thing is that in Agile, the card wall is simply a reporting tool.  It give you a synoptic (‘at a glance’) view of where things are.  It is not part of the essence of Agile.

The essence of Agile is constant feedback and constant adjustment

The card wall, the daily stand-ups, even the sprints, are merely communication and administrative techniques.  You can replace each one of these with completely new techniques (potentially better) and still be doing Agile!

Jun 11, 2011

The Product Owner in Scrum

What is the role of the Product Owner in Scrum? 

The product owner’s responsibility is to ensure that the product is developed and delivered in a manner that maximises the paying owner’s return on investment.  In Scrum, what this means is that the product owner must identify for the Team those product features that deliver the highest business value for money amongs the outstanding product features not yet delirvered.

There is the assumption that there will never be enough money to build every desired feature.  Therefore, the features need to be prioritised.

The Product Owner does not dictate to the Team the specific set of features they need to build in a Sprint.  

Specifically, the Product Owner does not tell the Team how many features they ought to build during a certain Sprint – that decision belongs to the Team alone.  The Product Owner’s main role is to inform the Team of the priorities, so that they don’t proceed to deliver lower value features over high value ones.  There can be exceptions - for example a lower value feature may be included in the Sprint over a higher value one because the higher value one is too big to be added to the current Sprint, while the lower values one is small enough to be added.

It is possible that the product owner is the customer, but he or she must never be the Scrum Master.