Twelve Principles of Agile Software


Agile Principles - 1 to 6

Agile Principles - 7 to 12

Mind Map created based on Principles behind the Agile Manifesto (http://agilemanifesto.org/principles.html) available in http://agilemanifesto.org

Agile Scrum – Terms & Explanation


I will present some Agile terms & explanations in this post. Before getting into explanation, let us review couple of important questions.

Here is the podcast format of Q&A:

Here is the text format of Q&A:

Question: I know all tools, processes & familiar with practices of Agile methods. Can I go ahead and follow Agile in my Project today?

Answer: Nope. Agile is more than just mere practices & terminologies. Agile is a mindset. It requires a change in work culture which boils down to organization culture. Agile advocates bringing people together in single platform (by a shift in the mindset) than just following the defined processes.

Agile Manifesto’s first statement says “Individuals and interactions over processes and tools”

Agile is flexible in terms of processes, tools and you are free to customize/tailor-made them based on your project need. But it is requires constant interaction & collaboration between people with mindset to deliver value to customer through developing usable working software. That is the complex part everyone forgets to appreciate in early stages of Agile adaption & struggle with failures later on.

Question:Why Agile is a great phenomenon you should follow in current economic trend?
Answer:

You can consider following Agile methodology due to following reasons:

1. Even if you fail, you will fail faster & fail cheaper
2. Providing value to customer by providing important features fast so ROI will be better
3. Will get faster feedback which is good to take corrective steps well ahead before it becomes blunder later on

 

DAILY SCRUM

“Daily Scrum” is a short (approx. 10 – 15 minute), daily recurring, stand up, status meeting conducted mandatorily during the sprint & everyone expected to attend including Scrum Master. Scrum team need to answer 3 questions –

  1. What happened yesterday?
  2. What is the work plan for today?
  3. What are the obstacles exist?

All answers should focus on status based user story and no general discussions.

USER STORY

“User Story” is Scrum term for user requirements. It has short descriptions of user/customer valued functionality that is used for planning & act as reminders to have conversations with customers.

A user story generally has 3 sections: <Who>, <What>, <Why> of a functionality.
Example: As a <Who:Manager> I need to <What:view orders submitted to me> So that <Why:I can take action on those very fast>.

User story can hold short test descriptions that can be used to decide whether story is done. User stories are written in a card that is size of sticky notes, so it needs to have a phrase or two that act as reminders to hold the conversation & notes about issues to be resolved during the conversation. If required, team can use backside of the story card to list testing related notes.

A good user story should have six attributes (acronym INVEST) –

(I)ndependent – No dependency with other stories so that it can be executed in any order & can be prioritized based on value to the organization.

(N)egotiable – User stories are functional requirements in business terms but they are not contractual agreements. Details can be negotiated & modified in a dialogue between customer and dev team.

(V)aluable– Understanding value of a functionality is useful in prioritizing & delivering top features during initial iterations. Value of user story captured insection.

(E)stimatable – Developers need to come up with time to complete each user story, so it should be estimatable.
(S)mall – User story needs to be small enough so that it can be accommodated in an iteration. Big user stories are called ‘Epics’ that may contain a 1) complex user story 2) compound (multiple) user story. Epics can be divided into multiple smaller independent user stories.
(T)estable – User stories should contain information with which test cases can be generated without much confusion & decision of done can be arrived.

A question often arises is how someone knows whether he/she is done with writing a user story, without having to flesh out all the details, as we had traditionally done within the waterfall environment. One can stop writing the story when:

1. The user cannot decompose a story into more end-to-end stories, meaning stories that touch all the layers of the application.
2. The team can derive tasks, ranging from 4 to 8 hours, to start their development work.
3. It’s possible to estimate the “point” of the story. [5]

There are many ways to help verify that the requirements are well written, above we saw INVEST rules for user stories. Another one is known as the CUTFITrules, which we used extensively to help validate the user stories.

(C)onsistent: A consistent requirement does not conflict with another requirement.

(U)nambiguous:The reviewers of a requirement statement should be able to draw only one interpretation of it, regardless of their role.

(T)estable: We should be able to create test cases for a requirement. If a requirement is not testable, trying to determine whether it is correctly implemented is a matter of opinion.
(F)easible: It must be possible to implement each requirement within the known capabilities and limitations of the system environment.
(I)ndependent: No “user story” should be dependent on another “user story”.
(T)raceable: You should be able to link each requirement to a user and to his goals.

SPRINT

“Sprint” is Scrum iteration time length(typically 1 – 4 weeks) in which development team work on certain prioritized set of backlog items and produce some tangible value to the customer. Sprints are time-boxed & should have same length throughout till the final product delivery. Generally, no scope change is allowed within a sprint but modification user story can be prioritized and included in subsequent sprints.

Each concept in Agile Scrum has one or more benefits (of course any item in this world also have drawbacks too!!!). Here are few benefits behind timeboxing of sprint –

* As Agile focuses on delivering value to customer, timeboxing compels prioritization of work that in turn increases focus.

* Whatever be the status of user stories, sprint comes to end exactly on timeboxed end date, so team focuses on completing all user stories planned for the sprint otherwise it will be added to next sprint.

* As number of items taken in hand (# of user stories) are limited in a sprint so items under development status will also be in limited number.

User stories are planned either by number of days or story points. If total product backlog measured as 150 story points & each Sprint length is determined as 30 story points (based on team’s comfort-ability in delivering the potentially shippable product increment), then there will be 5 Sprints/iterations (5 Sprints * 30 story points) for product completion. User stories that add up to 30 story points can only be planned in one sprint. At the end of each sprint, goal set for the sprint is achieved based on agreed definition of done.

PRODUCT BACKLOG

One can give a day long lecture about “Product Backlog” as it is the heart of the Scrum framework. Let me put concise explanation about it.

The product backlog is a prioritized list of desired product functionality. It is a highly visible artifact that is accessible to all project stakeholders. A PB item can be a feature, change in existing

 functionality, defect, technical improvements or even knowledge acquisition (prototype or POC development). Most PBIs are features – items of functionality that will have tangible value to the user or customer.A good product backlog should have DEEP attributes.

Roman Pichler, and Mike Cohn use the acronym DEEP to summarize key attributes of a good product backlog.

(D)etailed Appropriately:User stories on the product backlog that will be done soon need to be sufficiently well understood that they can be completed in the coming sprint. Stories that will not be developed for a while should be described with less detail.

(E)stimated: The product backlog is more than a list of all work to be done; it is also a useful planning tool. Because items further down the backlog are not as well understood (yet), the estimates associated with them will be less precise than estimates given items at the top.

(E)mergent: A product backlog is not static. It will change over time. As more is learned, user stories on the product backlog will be added, removed, or re-prioritized.

(P)rioritized: The product backlog should be sorted with the most valuable items at the top and the least valuable at the bottom. By always working in priority order, the team is able to maximize the value of the product or system being developed.

Defining & documenting product backlog item is called Grooming. Amount of work in a product backlog is executed in multiple iterations called Sprint & sprint backlog is created with subset of high-priority items in the product backlog. At the end of a sprint, in case any item is still pending or new items found they will be inserted into product backlog in the correct order to be worked on in a future iteration.

References:
  1. http://www.mountaingoatsoftware.com/blog/make-the-product-backlog-deep
  2. Essential Scrum: A Practical Guide to the Most Popular Agile Process By: Kenneth S. Rubin, 2012
  3. Becoming Agile: … in an imperfect world By: Greg Smith; Ahmed Sidky, 2009
  4. http://www.scrumsense.com/wp-content/uploads/2009/12/DoBetterScrum-v2.pdf
  5. http://agilepmstudent.blogspot.in/
  6. Scrum® in Action: Agile Software Project Management and Development By: Andrew Pham, 2011

Book Reading & Agile Scrum Method = An Analogy


Learning is easy when you develop an analogy with known & easy to remember items.Here is an analogy that you will remember for life about Agile methods.

Agile is like reading your school text-book. Yes! Let us go back to your school days.

Image

Start of the year, Teacher provides you a text-book (say Science subject) that have 12 chapters totaling 400 pages!!! If teacher ask you to study the whole text-book and write exam at the end of the year how do you feel? You may feel it will be very difficult, boring & you keep the book always in hand but don’t think you studied all content.

Take this way – Teacher says ‘Each chapter is around 35 pages long. I am going to cover one chapter for every 15 days. End of each chapter, I will test you with questions taken only from that one chapter. We will follow this method till we complete all 12 chapters.” Will it not give you entirely different feel?

One clever student asked “Pages for each chapter differs in that case what do we do madam?” Teacher told “You are right. Okay. Based on chapter size, we will make it 10 (for small chapter), 15 (for average chapter) and 20 (for big chapter) days.

Suppose she goes ahead and say ” We are not going to go in same chapter order. I will cover all important chapters first and then we cover other chapters.”  That make your reading even more interesting. Right? So, after 6 months time, where you will be? You are done with reading & understanding the entire text-book content!!!

Agile is methodology that is based an iterative, incremental software development processes. A group of methods implements Agile principles out of which one is called Scrum. Let me restrict my analogy to Scrum method. Book reading explained above is also an iterative, incremental process where we are performing study of whole book in given time period.

Here is the terminology match between text-book reading & Scrum:

  1. Entire Text Book with chapters ordered based on importance Product Backlog (A prioritized list of high-level requirements for a product)
  2. Each Chapter Sprint Backlog (A prioritized list of tasks to be completed during the sprint)
  3. Each subtopics in Chapter User Stories (an independent, negotiable, valuable, estimable, small, testable requirement (“INVEST”))
  4. Chapter Completion Time Sprint (A time period (typically 1–4 weeks) in which development occurs on a set of backlog items that the team has committed to)
  5. Test after each chapter Sprint deliverables (all features/deliverables completed in the sprint)
  6. Evaluation of test output Sprint Retrospective (Meeting with team to find out – what went well during the sprint? and What could be improved in the next sprint?)
  7. Pages finished & to yet complete in current chapter (goes down to 0 as we complete each page) Sprint Burndown Chart (Chart that shows daily progress for a Sprint  over the sprint’s length – remaining work in the sprint backlog)
  8. Pages finished & to complete the whole book (goes down to 0 as we complete each chapter)Release Burndown Chart (amount of work left to complete the target commitment for a Product Release)
  9. Rate at which each chapter is completed Veolocity (The total effort a team is capable of in a sprint)

With this analogy I hope you get fair idea about Scrum terms & its usage.

To Communicate Or Not To Communicate – It is your Choice


Yes. Whether ‘To communicate’ with someone about something OR ‘Not To Communicate’ is your choice. Mindset – The factor that really decides the choice we choose at a given point of time.

Mindset is nothing but ‘Set Mind’. Our brain has a wonderful ability to train and make decisions based on prior experiences. From birth our mind forms cognitive patterns based on information consumed through sensory organs. All those forms of communication signals is then converted into ideas and stored. This process happens every second and even in this process every human develops unique idea about communication & its components also. Everyone of us have our own definition for questions like – what is good communication? what is bad communication? who are all good/bad communicator in my scale? Whom I want to show as my examples? etc.

We show our idea about communication in every communication opportunity we encounter and even train (or fine tune) our ideas based on outcome of current opportunity. At one point of time in life, when we learn our communication is bad, we don’t really take the comments as it is. We try to defend with all our reasoning which I listed earlier post under myths & reasons that ruin communication development.

By the way, removing all negative reasoning in mind with positive reasons in one complete stretch is not possible – but it is possible in step-by-step way. Training of ones own mind & forming an idea (or pattern) requires long time, but once idea formed it is really long time to break that out. That’s why mindset can be termed as ‘Set Mind’.

Getting proper mindset is essential for communication. Now, the main question from you is “So what do you want me to do now?” Here I give just 4 pointers.

1. Rewrite your definition of communication in mind – To rewrite definition of communication, first you need to recollect what do you think about communication, purpose of communication, good and bad communications, different situations you come across in life, outcome of communication opportunity, your fears, your earlier victories, whom do you think good communicator and why. After recollection, write down which are all thing you do different from what you think as good communication – in this step try not to satisfy your mind by giving some reasoning for the deviation between what you think good and what you did as it may take you back to old state only. Remove the myths and restating the purpose of communication often will make the whole process of easing your set mind.

2. Work on deviations – What are you deviations? To you what you want to achieve and what you are currently doing. Main item here are – stage fear and fear due to status difference between you and people whom you like to interact. Most of the self help book on communication talks about it & most of its content deals around anyone of this – rehearsal, boosting confidence by seeing yourself in mirror, correct outfit, eye contact, body language (non verbal), making impact using different tones & powerful words (verbal), don’t be anxious, etc.

3. Make a best choice & right choice – One of the outcome of communication is ‘relationship’. Basic necessity of human race is living in a community which has foundation as good relationship with others. So making right & best choice in every communication opportunity is very important. Communication is like a two-sided sword. Balancing your communication at a given situation is very important to increase your success. Many time our choice not to communicate causes misunderstanding & even spoiled a great opportunity. On the other side, over communicating also create issues. One needs to know when to start when to stop – what to share what not to share. All these comes through experience and need to be consciously controlled by mind.

4. Don’t stop, repeat – If you felt your choice in previous opportunity was bad, don’t stop and stamp yourself as ‘Bad Communicator of the world’. Just go back to step 1 and rewrite your definition once again – work on your difference. Okay – if you felt your choice in previous opportunity is good, don’t stop there you need to repeat the same thing again and again in every opportunity as it gives you right result.

Getting better with Communication


I stopped with a question in last blog post – How can we get strong communication skills?

To analyze further, let us first take a look at general definition of communication:

Definition of Communication: Exchange of information.

Exchange of information has two folds 1) information exchange within the mind (biologically saying inside brain) – i.e. gathering information, selection/rejection of ideas, words, structuring, processing emotions – 2) delivering information to external world. If the first one happens properly then second one also happens without any issue.

Every human processes outside information through 5 major sensory organs. Even internal organs sends information to brain through nervous systems that’s why we feel hunger, pain, sleepiness, etc. Whether you like it or not, brain does information processing throughout the life without any rest. In a day, one needs to talk to himself entire 24 hours & every second. Before delivery of information to external world, brain processes, structures and ques understandable sentences. While you are delivering processed information, brain didn’t stop – it does background processing of some more information or prepares next topic and stack it in the que for delivery. So, it is very important how you process information & what do you think about communication in your mind. Here are few factors that ruin communication skill development:

1. ‘Stranger’ factor – Most of the situations, you may be a stranger in the crowd – you may know one or two people & always try to keep your communication with those whom you know much. You may not approach others because you tend to think that “if I communicate my idea in this group, what do they think about me? Will they not think I am a new person and don’t have any say on this?”. One needs to come out of this cause to excel in communication skill.

2. ‘All those around me know more than what I know’ factor – This factor affects most juniors in organizations. As I mentioned earlier, goal of communication is to clarify or make others know you understood certain things, so one should remove this factor in mind to achieve the goal of communication.

3. ‘Earlier communication was bad’ factor – Whatever be the reason for your previous bad communication, every communication opportunity is new and unique as it happens in completely in different situations (may be with new set of people). If one keep on thinking about earlier bad communication and stay quite then communication skill will never get better. Here I like to share my experience on this factor. Four years back, after writing first few posts in this blog, I got feedback on my poor language handling in those articles. I felt very bad about my communication & even I thought of closing the blog, but I decided to take it as challenge & wanted to improve my communication skill – I posted regular posts and improved it to certain level. Now I reached 148 posts.

Communication is 80% mind (i.e. brain) related and 20% external delivery process. First step towards improving communication skill is to train your brain for better. Let us check how to develop proper mindset for stronger communication in next article post.

Communication – Is it tough skill? or an easy one?


My answer to the title question is – “Communication is a wonder skill that become tough or easy based on ones’ mindset.”

I mentioned Communication as ‘Wonder Skill’ as it brings wonder into the life. Excellent communication makes life brighter and more successful & in the downside, poor communication takes life to lowest point. I heard a lot of myths around communication and developing the skill. Myths are belief that strongly formed an image about something and breaking it is bit hard. To learn communication skill one need to come out of these myths. Here are the popular ones:

1. Communication is meant only for career: Communication is a human skill (even I can say every living creatures in earth has it) and we should not restrict only for career. Communication skill is required every second and every activity we perform.

2. Communication is just about talking to someone: Most of the time, communication synonymous to oral communication like speeches, presentations, discussions, etc. but communication is beyond just oral form. Writing, body language also constitutes communication.

3. To be good in Communication skill I need to know lot of hard words: This myth is a powerful one and most of the believers are well-educated ones. Hard words will make the communication more harder  & difficult to understand. Goal of communication is (and not limited to) i) asking/answering questions to gaining/impart knowledge ii) providing/gaining clarity on items iii) delivering/receiving information related to areas of interest.

Though millions of books, seminars, coaching classes available on communication, still many of us lack communication skill even after going through those. What is stopping us from taking a leap and achieving our life goals? How can we get strong communication skills?

I answer these questions in my next blog post.

Monitoring and Controlling Process Group Process – Report Performance – Mind Map


Performance reports are key output for a project in which periodic collection and analysis of expected Vs. actual data is conducted. Report performance is used to communicate the project progress throughout the entire project life cycle to ensure the information needs of project stakeholders are met. Report performance is having tight bonding with Integration Knowledge Area to make sure project is moving in a direction towards achieving its goals.

Develop Project Management Plan  –> Project Management Plan –-> Input to Report Performance

Direct and Manage Project Execution –-> Work Performance Information –-> Input to Report Performance

Monitor and Control Project Work <— Performance Reports <— Output from Report Performance

Perform Integrated Change Control <— Change Requests <— Output from Report Performance

Control scope, cost, schedule – all will give work performance measurements as inputs to performance report. Also, performance reports are important input in managing project team & distributing information regarding project progress. Performance reports vary the level of its detail based on the audience from a simple status report to more elaborate reports with forecasts and risks for upper management.

Report performance is part of Communications Knowledge Area. As usual, I tried putting as much information as possible in each branch in this process map to bring out completeness to it. Hope this will be useful to you.

Report Performance

Important Note:

* Note# 1: There could be some typo or presentation errors. Please reply back for any corrections.

* Note# 2: You can use this for personal use (like studying for PMP Exam or PM activities). But don’t share this in common forum or web sites. As this one is part of my training guide and project management book.