Andy Crow
Andy Crow
- A set of processes and practices performed on a specific way in order to accomplish a project.
- A way of working within the rules to achieve results and goals, and it needs to provide focus for
planning for result while being flexible and adaptable to the present situation.
- Much of waterfall came into being with the Deming Cycle of Plan-Do-Check-Act.
- System Development Life Cycle SDLC: Phases; analysis, design, implementation, testing, and
evaluation carried out in each phase.
- Projects became rigid and resistant to change, even if that change is good for the project.
- Become more interested in how something is done rather than why or what results.
The Agile way ….Adaptation fast moving and time constrained projects
- Teams are no longer organized hierarchically with directions coming from the top to down.
- Project makes decisions as a team with a continued focus on delivering value to customer.
- Daily stand up meeting held each morning (what did team member work yesterday, what will
work today, what obstacles they are encountering).
- Poor performance and other problems are solved internally instead of escalating.
- Welcome change any time even late in the project or affect the architecture.
- Team will meet, evaluate the change, and look at the impact and ways to incorporate the
change to the project.
- Work is delivered in small, frequent releases (team focus- allow rapid feedback – fast
integration).
- Retrospective meeting after each release or iteration or sprint to discuss what went well and
what did not to improve in the next sprint (iteration).
- Sequence: set the stage, gather data, generate Insights, decide on what to do, and close the
retrospective.
Agile Manifesto
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work, we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.
- Individuals who choose the appropriate processes & tools for given project, follow these
processes and make right use of these tools.
- If processes are too heavy to follow or individuals are not engaged enough to follow these,
processes would simply fail to work.
- Without much of processes and tools, there is a good possibility that a group of skilled and
motivated individuals will deliver the successful project. However, vice-versa is not true. For e.g.
we may have a robust review process but imagine what would happen to the quality, if one
novice is reviewing the work of other novice. Or reviewer is not motivated to do a critical review
and doing it casually just for the sake of process compliance.
- Software without good documentation is problematic from maintenance & support point of
view. However, comprehensive documentation without software has no business value. [Given
a choice, would you pick a primitive video game or a detailed user guide for an advance video
game?]
- User would be in much better position to provide feedback on working software even with less
number of features, than with large document detailing all the features & usage scenarios.
- Progress on an agile project is tracked and reported by how much working software is
developed over time.
- A document expressed what is intended but as the saying goes, “Nothing speaks louder than
the code”.
- Our sole purpose of doing the project is customer can realize business value. Only customer
can tell what they want, then isn’t it fair to listen to them and be flexible about their needs.
- It is difficult for customer to define an upfront and unchanging view of what should be built.
- Successful developers work closely with their customers, they invest the effort to discover
what their customers need, and they educate their customers along the way.
- Agile has you and your customer at the same side of the table.
- Changes can come from various factors. Customer priorities may change or customer may just
get a better idea to improve ROI. Market/Business may change. Technology can change. It
could just be a result of improved understanding of problem domain.
- Rather than sticking to the original plan, we should respond to the inevitable changes.
Moreover, we should be flexible about changes, which help in reducing the risk and maximizing
ROI.
- This doesn’t mean we should not have a plan. Instead of suppressing changes and sticking to a
static plan, we need to acknowledge that things will change. We need to accommodate the
changes, which help in meeting key project & business objectives.
1- Our highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
- Valuable software here means working product or prototype - something that customer can
easily understand & appreciate. Deliverables such as design document or software code have no
meaning for customer. The focus is on the end goal, which is working product.
- Early and continuous delivery of valuable software not only gives confidence to the customer
but also provides opportunity to receive customer feedback so that we build what is right for
the customer rather than what was specified initially.
- Agile processes acknowledge the fact that change will happen and provides an effective way to
deal with them by using a value driven iterative development approach.
3- Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter time scale.
- More frequent delivery of working software so that there are more opportunities for
stakeholders to provide feedback, which reduces the risk of going too far down the wrong track.
- More frequent delivery improves customer’s confidence. Often in a demo meeting, team
learns of new requirements or changes in business priorities, which are important for improved
ROI.
4- Business people and developers must work together daily throughout the project.
- When team works closing with business, team understands the business in a way that is far
beyond the typical requirement collection mechanisms. Scope creep due to missing
requirements and incorrect interpretation of requirement reduces drastically.
- Frequent demos to business people are another example of close working together.
- In some cases it’s not really feasible to have business people literally available daily. But agile
methods try to get as close collaboration as possible.
- Some teams use an experienced business domain expert as “proxy customer”. While this can
help development but this should not be a replacement of customer interaction.
5- Build projects around motivated individuals. Give them the environment and support they
need, and trust them to get the job done.
- Too many organizations just hire people and think that these would make build successful
software with help of heavy process framework. This doesn't seem to work all that well in
practice.
- A team of motivated individuals doesn’t require micro-management and project manager can
focus on removing impediments rather than doing day to day task management.
- Agile teams, realize that you need to build teams from people who are willing to work together
collaboratively and learn from each other. In these kinds of teams, continuous improvement
never stops.
6- The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
- Exchange of information through e-mails or by sharing information is slow and effort
consuming mechanism. Still the interpretation may go wrong. A quick talk over the phone can
achieve results much faster and better.
- Face to face talk is even better as along with information, emotions, body language can also be
conveyed, which not only makes the information exchange even quicker & better but also helps
in reducing conflicts.
- In face-to-face conversation, you can quickly draw diagrams and have wide range of
techniques to express complex ideas.
7- Working software is the primary measure of progress.
Traditional approaches use documents or other forms of intermediate deliverables as measure
of progress. There are following issues with that:-
- Focus gets shifted from working software which is ultimate goal, to these intermediate
deliverables.
- What if project has to be stopped in the middle, we might have a high earned value and x% of
work completion but without any working product, is there any value for customer? In case of
working software, customer may still make some use of features delivered till then.
- A sustainable work pace is better for team members for their work-life balance. It also benefits
the business because un-necessary stretch reduces the motivation levels and increases the risk
of people resigning. Hiring and training the people is a very costly affair.
- 8 hours work with full focus and attention is better than 12 hours of mediocre work. There are
chances of poor quality and rework later on, which will actually reduce the overall output.
- Agilest recommend a range of design & code development principles & practices for technical
excellence.
10- Simplicity – the art of maximizing the amount of work not done – is essential.
- Agile developers ask themselves “what is the simplest thing that could possibly work”.
- Rather than anticipating changes and adding numerous additional features or extensibility
hooks, agile developers create a simple and clean design. Un-intuitively, this results in designs
that are ready for any change, anticipated or not.
11- The best architectures, requirements, and designs emerge from self-organizing teams.
- A self-organizing team is naturally motivated to continuously find better solutions and improve
ways of working.
- We may get number of ideas from experts outside the team but unless ideas are well
understood and well implemented by the team, purpose is defeated. Team is closed to technical
details and can choose which idea would actually work in project.
12- At regular intervals, the team reflects on how to become more effective, then tunes and
adjusts its behavior accordingly.
- Gathering lesson learnt at the end of project might add to organization’s lesson learnt / best
practices repository but it’s too late for the project. In fact, these lessons learnt are rarely being
used much in practice – one because every project is different and second because people tend
to learn more from their own experiences than someone else’s experiences.
- Agile projects often conducts sessions (called as retrospectives), typically after every iteration
to learn from past and adapt.
- The beauty of iterative development is there are ample opportunities to learn from previous
experiences and continuously improve. The key is to have that focus on reflection and taking
concrete actions from learning.
- Also the daily stand up meeting (15m) helps to assess and improve performance.
---------------------------------------------------------------------
Declaration of Interdependence
The Declaration of Interdependence, to guide software project management according to agile
development methods. The principles of declaration of Interdependence are:
- Deliver reliable results by engaging customers in frequent interactions and shared ownership.
- Expect uncertainty and manage for it through iterations, anticipation and adaptation.
- Unleash creativity and innovation by recognizing that individuals are the ultimate source of
value and creating an environment where they can make a difference.
- Boost performance through group accountability for results and shared responsibility for team
effectiveness.
- Improve effectiveness and reliability through situationally specific strategies, processes and
practices.
Project justification
Present value PV
- Bigger is better.
- The expected net monetary gain or loss from a project by discounting all the expected future
cash inflows and outflows to the present point in time.
Interest Rate: The compensation paid to a lender (or saver) for the use of funds, expressed as a
percentage for a period (normally expressed as an annual rate).
- The interest rate at which the Net Present Value becomes zero.
- Bigger is better.
- Bigger is better.
Payback period: is the amount of time it will take to recoup, in the form of net cash inflows, the
net amount invested in a project.
- Retained revenue refers to the revenue an organization will lose if the project is not
performed.
- New Revenue is the revenue from a new opportunity after a project is completed.
Compliance
Chartering
- Formally starts the project, name the PM, and gives him Authority to apply resources.
Self-Organization of Teams
- Roles must move from directing and controlling the team to coaching and facilitating.
- A skilled Coach might ask questions to introduce some conflicts in order to help the team learn
this skill.
- Requires mature team members who can compromise, resolve conflicts, and work toward a
common goal.
- Extends to every part of the project; communications, team meetings, reporting, testing,
bringing on new team members, and how to determine when work is “Done”.
- Provide a way for the team to succeed, fail, adjust, and improve together.
- Large projects has to be broken up into sup-projects, and the team has to be divided.
- Bringing all the team members (members who actually contribute to the project) together in
one place, also remove barriers in the room.
- Allowing people to freely see, hear, and interact with each other.
- Discourage using headphones or anything that might isolate them from the rest of the group.
- Information radiators; features list, backlogs and task lists, user stories, and white boards.
Team Selection
- Seasoned, skilled, and highly self-directed people, who are willing to work as a part of a team,
and preferably have agile environment experience.
- Team members should be involved in interviewing and selecting new team members.
Team Participation
- Each team member expected to make a positive, measurable contribution to overall success of
the project.
Organizational Support
- Support is created when the right people are involved early in the project.
Agile Tooling
- Web cameras, daily stand up meetings, and other activities designed to create a sense of team
and community.
- The team makes decisions, sets the priority of work, the time frames, and even the makeup of
the team itself.
- In order to build empowered team, it is important to have the customer or product owner be
located with the team.
- Lean management; the best person to make the decision is the one whose hands are actually
doing the work.
- In order to create empowered team, the following are needed:
- Organizational buy-in.
- A shared vision.
- Clear communication.
- Customer involvement.
Ground Rules
- Unwritten rules about expectations on the project and should be communicated clearly so that
everyone knows what is expected of them.
Agile Planning
- The customer often collocated with the team members, so stakeholders influence is high.
- The customer or Product owner acts as the single voice of the users and communicates with
other stakeholders.
Analysis
- Understanding the problem and the underlying need before starting coding.
- Go straight to the customer to get the information first hand (Individual & Customer
collaboration).
- Traditional techniques still exists beside face-to-face communications (high bandwidth comm.)
Brainstorming
- Ideas are evaluated and discussed after they have all been gathered.
- Features are posted as cards on the wall in no order, and the facilitator begins with one card
and proceed randomly through other cards until all of them are put into order.
2- The Apprentice
- An engineer or product developer uses the product as an end-user. For example, if the system
is used for data entry, the developer enters data for a couple of days.
3- Buy a feature
- Stakeholders are shown features and estimated prices for their development.
- The stakeholders have a finite sum of imaginary cash to buy some (but not all) of the features.
- This will help the product owner and the team to understand the importance of these features.
4- Product Box
- Stakeholders are asked to design a retail box that would entice others to buy this product.
- Gather a group of no more than 5 to 10 people for this exercise – internal team members or
customers.
- Create leaves representing each of your product’s existing features or attributes and arrange
them near the trunk of the tree, one feature per leaf.
- Provide a supply of blank leaves that participants can use to write down new product ideas.
- Existing features should therefore go near the trunk, as they are the oldest. The next closest
leaves represent features to add in the near term. Leaves on the outer edges of the tree, at the
edge of the canopy, are considered to be longer-term ideas.
- Invite your coworkers or customers to add new ideas to the tree, using the blank leaves. You
may also want to invite participants to remove one or more existing leaves from the tree,
representing features that they think should be eliminated from the current product.
- Encourage participants to discuss the placement of leaves, both for existing features and new
ones. This debate will help the team to reach consensus on the desirability and timing of
product features and attributes.
- You may want to display the tree in a common area of your office for a while after the
brainstorming session, because it is very likely that team members will think of additional ideas
days or weeks after the session.
6 - 100-Point Method
- The 100-Point Method is a voting scheme where each stakeholder is given 100 points to use
for voting in favor of the most important requirements and can distribute the 100 points in any
way desired.
- Looks beyond the symptoms to get the core issue that is causing the problem.
- Cause and effect diagram also known as Ishikawa diagram or Fishbone diagram.
- There is a practice of asking 5 WHYs to find the root cause (Toyota systems).
Force field Analysis
- Analyze the change and understand the forces for and against it.
- Once the primary forces on both sides are identified a ranking from 1 to 4 is assigned.
- Useful when a stakeholder during gathering requirements came with a point may be important
but off topic.
Customer Value
Product Roadmap
- An overview that shows each planned release and the relevant features associated with those
releases (Communication tool).
- Often publicly posted in the team space or in common, highly visible area.
- Some stakeholders may want more detail than the vision statement provides, but not the
overwhelming detail of the release and iteration plans. For these stakeholders, consider
maintaining a document or slide deck that summarizes planned releases and the significant
features in each one.
- Not all users have the same needs or use the product in the same way.
- make user story more applicable, for example small clerk need easy system while seniors need
shortcuts.
- Some agile practitioners maintain that it is best to imagine extreme characters when creating
personas to ensure that as many user stories are imagined and captured as possible. These
“Extreme personas” can help capture requirements that might otherwise be missed.
Wireframes
- Wireframe may be hand-drawn or computer-rendered illustration showing how the user will
interact with the system.
- Wireframes is a low fidelity prototype that shows a skeleton of a screen representing its
structure and basic layout.
- Each item is numbered, and all related details are commented on according to the numbers.
- The purpose is to give both the user and the developer a starting point to create a useful
system as efficiently as possible.
Agile Themes
- Theme is a set of related user stories that can be combined and treated as a single entity for
either estimating or release planning.
- Forecasting the financial value of a theme is the responsibility of the product owner.
- Epics are large user stories with lower priority. They are too big to implement in a single
iteration and therefore they need to be disaggregated into smaller user stories at some point.
- Epic stories are lower down in the product backlog.
- A user story should be sized that it can be completed by one person and be completed in less
than one to two days.
- A common agile practice is to write down stories on note cards (story card).
- Cards may be passed around, ranked, put into order, stuck on wall,…
(I)ndependent : Stand on their own and don’t overlap with other user stories.
(N)egotiable : expected to change and grow through collaboration between the customer and
the team.
(V)alubale: need to be viewed from the perspective of the value it will deliver to the customer.
(E)stimable: should have adequate information for the team to be able to estimate the efforts.
(S)mall: small enough to be useful and easily grasped, estimated, and able to be consumed by
the team.
Story maps
- Traditional project management use WBS to break down large and complex user stories
(Decomposition).
- Agile use Agile story map to break down user stories through (Disaggregation).
- Agile project management puts less of an emphasis on up-front estimating and planning and
more energy toward creating and responding to change.
- The vertical axis shows the priority of the stories and the horizontal axis shows the stories
needed by the business.
Features
- The priority of the feature is determined by dividing the priority % by the cost %. Feature X has
a value of 12 and the total value of all features is 35. If the feature is estimated to cost 56%
Hence the answer = (12/35)/(0.56) = 0.61.
- The smallest grouping of functionality that can add value to the user.
- Example: MMF may allow user to generate, view, and print a report. Without any of these
functions, the MMF may lack value, but when the 3 are put together they create value.
- Determine the MMF, Introduce Slack, Manage Change, Increase the MMF, and Accommodate
the New Feature.
Tasks
- “Engineering tasks”: the specific activities the team will undertake in order to add value to a
system.
- Value stream map is a sophisticated flow charting method that uses symbols, metrics, and
arrows to help visualize processes and track performance. This method helps determine which
steps add value and which do not.
- A way to analyze an entire chain of processes with the goal of eliminating waste.
- Give the analyst a deeper understanding of the system by mapping out it.
- A lean technique used to analyze the flow of materials and information through the system
and to identify and eliminate waste.
- Spaghetti diagrams show the flow of materials through various areas, departments, or physical
spaces.
- A SIPOC diagram is a high level process map that provides an overview the entire process,
from supplier to customer.
- Swimlane diagrams are more useful for demonstrating roles and responsibilities
- Process Cycle Efficiency = Total Value Add Time/ Total Cycle Time
Progressive Elaboration
- You don’t know all characteristics about a product when you begin the project, iteration,
sprint, or story map.
- The characteristics may be revisited often and refined. (Gather some requirements, design,
feedback, then gather more)
- Plan in stages.
Test-First Development
- The philosophy is that you should have some idea of how a particular software module or
feature will be used and that you should begin creating that module with that in mind.
- The customer or Product owner responsibility to define the acceptance criteria that will
translate into the test cases.
- When checking a feature as “Done” the meaning needs to be clear for the entire team.
- The definition of Done may be tied to certain acceptance tests, to coding standards, to
customer sign-off, or any number or combination of other things.
Agile Estimation Story Points - Ideal days
Relative sizing
- A technique used to ranks stories by their sizing relative to each other and eventually to
estimate based on those ranking.
- Post a card on the wall then arrange other cards to right or left according to their difficulties.
- Wave is the Product Planning structure with Medium range time frame (3 months) with Story
level capability and Capability commitment.
- Traditional Delphi technique: used to get experts estimates without knowing each other.
- Wideband Delphi technique: the team is given estimation forms or cards and is brought
together to discuss functionality or user stories.
- estimating issues are discussed, but particular estimates or levels of effort are not.
- After discussion: individuals prepare their estimates away from the group.
- Can use story points for estimates (15-story point will take more than 11 story point (in same
project) but can’t be directly translated to time without additional work).
- Next: the manager gather all estimates and lists them or plots them on a graph, showing the
distribution of values but with no names.
- Finally: the team discuss the range and tries to reach a consensus.
- Advantage: No pressure in estimates from others and the entire group experience to reach
consensus.
- Bug reports and user interface changes are common examples of stories that are too small for
an individual story.
- A complex story is a user story that is large by nature and cannot easily be dissected into
smaller stories.
Planning poker
- Estimating techniques used to reach consensus (can begin early after user stories have been
written).
- After estimating all stories, members show their cards at once, and the team discuss the
estimates and pay attention to the outliers (the highs and lows).
- Continue until all estimates fall within acceptable range. (often after 3 rounds).
Affinity estimating
- A technique specially to address the issue of rapid estimating when the project has a large
feature backlog.
- First: the team decide on some kind of ranking or grouping technique, (sort, tall, grand,
venti,trenta)(S,M,L,XL,XXL)(Fibonacci no. ?,0,1,2,3,10,40,100).
- Finally, each use story is read loud and with little or no discussion, the team places the user
story within that group or around a sequence number.
- Affinity Estimating is intended to generate conversation as items are moved into affinity
groupings.
- When using affinity estimating, the minimum size for the number of items in the Product
Backlog is 20 items.
Ideal time
- Ideal time is the amount of time it would take to complete something if there were no
interruptions, distractions, or meetings. (Zero interruptions).
- Football game that takes 60 m of ideal time but 3 Hrs of elapsed time.
- Releases: are deliverables of features, benefits, and value to the customer. (Feature-oriented).
- Iteration 0 is for planning (charter), last iteration (H) hardening: no new features but tests and
reliability is ensured.
- Release plan is generally driven by the customer or product owner whose responsibility is to
group functionality in meaningful stages or release.
- Team can help the product owner to improve the release plan and be more realistic.
Agile Modeling
- Agile modeling is mapping out processes so that the team and stakeholders can review them
before implementing.
- JBGE: Just Barely Good Enough for the situation at hand and no more.
Time boxing
- Timeboxing sets a fixed, hopefully reasonable, amount of time to work on features or user
stories, and the stories that are completed at the end of the time limit are included.
- Increase Productivity: helps to work smarter and harder and get more work done. It
helps to get away with ‘Parkinson’s Law’ and ‘Student Syndrome’.
- One downside: Team may look at what they can be done more than what customer need.
Some activities are difficult to rigidly timebox and may result a waste of effort (90% complete
with feature).
Continuous Integration
- All code changes are checked in and the entire system is built and tested at the end of each
day or even more often.
- Many development teams have hooked their integration server to lava lamps, with green lava
lamps for success and red for failure.
- If it trends up too sharply in a short time, may original estimates have a problem or team
members working weekends to try to catch up.
Cycle Time
- Shorter time is desirable (with Quality also) as iterations are short in Agile. (MMF)
- When respond in an effective manner to customer need this will keep customer close.
Burn Rate
- team cost per day 5400 and the release consists of 3 iterations at 20 days, and a hardening
iteration of 22 days, then the cost of labor will be 450000.
Product Backlog
- Lists all functionality planned for the project, sorted by value to customer from highest to
lowest. (Completed functionality is moved off the list)
- Grooming: Product owner or customer is responsible to add new item coming from new user
stories and remove old ones.
- DEEP:
- Detailed Appropriately: should have enough details for the team to begin working to
deliver value (Customer will be involved).
- Estimable: user stories near to the top of the list should have enough details to be
estimated for story points or ideal days.
- Emergent: Not static. Backlog grows and change over time as user stories are
completed.
- Prioritized: User stories that have the most value should be at the top of the backlog.
Iteration Backlog
- Shows all functionality that the team will complete during the current iteration.
- Responsibly of the team and should be kept in a visible place to all stakeholders.
- Motivation: Right size and prioritize the iteration backlog so that the team can work toward a
sense of accomplishment.
Product Quality
- High quality is a motivator and if quality issues appear, make a root cause analysis to
understand them and correct the underlying factors that contribute to low quality.
Escaped Defects
- Errors that escaped testing by developer and quality control and made it to customer’s hand.
- A process should be their to detect and track errors before they are released to customer.
- Error-feedback ratio is the number of new defects created when fixing existing known defects.
- To keep the project on track and quickly detect any deviation from value.
Agile Smells
- Ways to describe and quickly recognize problems that affect the team or product.
- Bad practices, team silos, and people who dominate meetings and communications.
Embracing Change
Refactoring
- Reorganize code that has been written from time to time more cleanly and straightforward.
- After refactoring, a complete regression test is required to ensure that the streamlined code
behaves in the same way that it did.
Information Radiators
- A sort of dashboard posted publicly on a wall in a highly visible area to “radiate” important
information at a glance. (Task boards, big visible charts (burn charts), Continuous integration;
lava lamps and streetlights).
Osmotic Communications
- Instead project manager tell people what is going on, information may be often distributed
through more informal networks.
- Useful technique for distributing culture, best practices, and helping acclimate members to the
project.
- Virtual teams: use technology (single chat room- messenger- group blog- video conference).
- Combat this by setting hours where no one is allowed to talk in the war room (Cone of silence).
- Posted graphs that represent the project’s status over time. (progressing against the plan).
- Burn-down charts: show the progress during each iteration (Completed and remaining work).
Kanban Board (Task Board) organizes work and communicates what work is left.
- Japanese term means “Signal”, originated with lean management to provide information to the
production line can be used to respond. (Type of Information radiators).
- help team members manage their work and respond to the project as it progresses.
- Posted in the war room or a highly visible area showing progressing at a glance.
- Team members update the board. (Note, coloring box, physical moving along they complete
tasks).
- WIP: help the team limit WIP and focus on doing few things correctly and not having too much
going at one time.
- Little’s Law: at a given WIP level, the ratio of WIP to cycle time (CT) equals throughput (T). T =
WIP/CT, we can then determine that WIP = T * CT
- In Top-Down projects can be a very useful measurement tool, the scope must be will defined
and all changes to it have to be estimated and tracked carefully. (Against Agile).
- Planned value PV is the amount of value the project should have earned at a point in the
schedule. (Difficult to calculate with accuracy on Agile projects).
- Earned value EV tracks the actual percent of work complete at this point in time for the total
schedule. (Total schedule is not known on Agile projects).
- velocity and how many user stories have completed will calculate that over the iteration and
release plans to come up with an approximate percentage complete.( At iteration level)
- Three criteria should be looked at when setting iteration length; delivering chunks (stories) of
user valued functionality, building and testing the stories (working software), and product team
acceptance of the stories. Additional factors are release timeframe, exploration factor,
overhead, and learning needs.
Cumulative Flow Diagrams
- WIP limits, Kanban seeks to improve focus, quality, and overall the project performance by
limiting the number of things being performed by the team at any given time.
- The chart convey a strong sense of momentum toward completion that builds as the project
progresses.
Incremental Delivery
- Gets working software into the hands of the customer earlier, delivering value more quickly.
- Allows customer to work with the system before it is complete, allowing time for changes.
- Does not try to plan everything up front, instead the team can do some planning, deliver some
value, gain valuable feedback, and repeat the cycle.
- Prioritizes the most valuable pieces of functionality so that they get in customer’s hands more
quickly.
KAIZEN
- Aligned with Agile in the way that encourages workers to change rather than asking
management what should be changed.
- An experiment, performed quickly, to help the team decide which fork in the road to pursue.
- The work is always considered “throw away” work, and it only helps the team determine the
next steps.
- Consider a development team that is wondering whether they should use commercially
available component for embedding video in an application (might be too slow) or whether they
should try to develop.
- 2 members will perform a spike, download a trail version and takes a day to benchmarking to
determine the performance.
Risk-Adjusted Backlog
- By ensuring that risks are associated to user stories and completing these stories early in the
iteration schedule, Agile approach de-risk the projects.
- Risk profile graph shows the risk severity scores for each risk plotted one on top of the other
to give a cumulative severity profile of the project.
- High value is attractive but if it has, a high financial risk of loss or high risk of environmental
disaster, then the choice will be less attractive.
- When backlog is viewed and adjusted in the light of risk, it may take on very different
characteristics than one based on value alone.
- Risk-Based Spike: ( time-boxed), visible by creating a story for it in the product backlog.
- Risk Review: Through the ‘daily scrum’. Actions and decision points are added to the risk board
and reviewed every day.
- Relative weighting techniques: considers both the benefits of presence of a feature and the
negative impact of its absence.
Coaching With Agile
The Role of Management
- Coach or scrumMaster help team to embrace Agile and remove any obstacles from their path.
- Traditional projects: Managers monitor progress and takes corrective and preventive actions.
- Coaching at beginning focus on the team, in the middle on the individual, at end on the team,
at release on the team.
- Individual coaching is most effective during the middle of the sprint. Whole team coaching
occurs at the beginning and end of the sprint.
Daily Stand-Ups
- Stay standing for the entire meeting to encourage people not to get comfortable and to keep
the meeting as brief as possible. (15 minutes).
- held at the same place and time every day with the entire team.
Iterations (Sprints)
- This is the iteration or Sprint. (Iterations: because they repeat through the project).
Iterations Retrospectives
- Held after each iteration, and feedback is immediately incorporated into the next iteration.
- The team evaluates what worked well (keep or enhance) and what did not (adapt or discard).
- Every team needs to constantly evaluate and make appropriate adaptations in the following
four areas: product value, product quality, team performance, and project status.
- Outcome: is feedback which will be put in action plan.
- are not about apportioning blame; instead it is to learn from the experience.
- Thorns and Roses is a technique to ask each team member what went well (Roses) and what
didn’t (Thorns).
WIP Limits
- Limiting Work-in-process
- Easier for team to focus on small number of items, increase productivity and quality.
- When one item of WIP is completed, another is “pulled” of the iteration backlog.
Process Tailoring
Stakeholder Management
- Optimize: identify groups and representative for each group can be involved with the team to
be more agile.
Team Motivation
- Maifesto: “Build the team around motivated individuals; give them the support and
encouragement they need.”
- Support
- Team participation
- Use Kanban board or other way to communicate progress to motivate the team.
- Team members can see how their efforts contribute to an increase in overall
performance.
- Benefits: High EI can deal with issues and problems relate and negotiate abrasive and divisive
people.
- The 5 basic EI factors are perceiving, managing, decision making, achieving, and influencing.
- Collaboration
- Coordination is simply the act of sharing information among the team members.
- Negotiation
- Scope is also negotiable and changes are always welcome. (Scope is verified by the
customer, not the product manager.).
- Agile Negotiation: Separate People from the Problem, Focus on Interests, not Positions,
- can reduce confusion and conflict on teams and can improve performance and results.
- Conflict resolution
- Compromise is not favored in Agile “each part give up some”. (Loose- loose). (
find a middle ground).
- On Agile projects conflict is expected as there is no top down direction like traditional projects,
instead the team are expected to bring their own ideas.
- Leader should focus on communication to resolve and active listening, keep the focus on the
project rather than personalities.
- Levels of Conflict
- Conflict is based on a problem and has not yet progressed to individuals or personalities.
- During critical problem solving, you can ask probing questions, use active and reflective
listening. Lead to an answer but one should avoid injecting their ideas.
- Level 2: Disagreement
- Trust begins to run low and participants feel the need to be guarded.
- Level 3: Contest
- When a team member approaches the Coach with a complaint about another team member,
the three-step intervention path is the conflict resolution technique that the Coach should use.
- Team leader needs to be hands on, focus on the need of their team.
- It cuts against the grain of hierarchical, top-down management and creates a strong bond
between the team and the leader that can translate to greater loyalty.
- Adaptive Leadership
- identifies Quality, Doing Less, Engage/Inspire, Speed-to-Value as its 4 elements of Doing Agile.
- Focus on activities that add value instead of doing things the way they have always been done.
- Openness and transparency, communication and networking, job descriptions and project
policies. All of these should serve the project.
Agile methodologies
Scrum focus on prioritizing work and getting feedback
- Scrum is a highly iterative agile project management methodology built upon 3 pillars, both the
work and result, Visibility, Inspection, and Adaptation.
- Product owner present the overall vision of the product, prioritize the product requirements
(Product backlog).
- Sprint: 30-day iteration begins with a Sprint planning meeting (max 8 Hrs) first half of
the meeting the product owner discussing the highest priority features with the team.
The second half, (estimating) the team maps out the sprint and defines things down to a
task level.
- Sprint Backlog: stories that the team plans to complete in this sprint.
- Sprint review: half day at the end of the sprint. (Team and Key stakeholders) show the new
product functionality and discuss features of the next sprint.
- The product owner gets to decide whether this functionality will deploy right away or will be
rolled out in a future release.
- Sprint retrospective: before the next 30-days sprint the team meets to see what went well and
what did not (Scrum master).
Scrum Roles
- Work with stakeholder to ensure project is funded and create the initial features backlog.
- ScrumMaster impediments
- Help the team to follow the scrum process and how scrum is implemented in the project.
- Encourage team members to facilitate the daily stand up meetings rather than doing it himself.
Core values
- Communication: what is requested from each team member and what others doing.
- Courage: need courage to allow our work to be visible to others (Pair programming).
- Team members break down user stories into story points. (Same estimates in the same
project).
- Developers work in pairs; one writes the code, and the other observes with focus on the
higher-level issues such as integration and functionality. (Pilot and Navigator)
- At the start of each iteration, the team and the customer will meet to discuss the user stories
and features.
- The team will break down into tasks and who will work on the tasks.
- Developers will estimate the effort by assigning story points. (No more story points in current
iterations than a team member finishes in last iteration).
- The four levels of completion are broken, build, ready for demo, and ready to release.
* Fine-scale feedback
7- Pair Programming
1- Planning Game
- Maximize value.
5- Testing
- Write test cases before programing to ensure the program will pass.
- Component tests verify that units and combinations of units work together to perform the
desired operations.
Whole team
* Continuous process
9- Continuous Integration
6- Refactoring
2- Small Releases
- Should be discussed and agreed within the same organization before developing.
3- Metaphor
- Avoid closed thinking about a technical system that may constrain the solution.
- If the team is completely focused on a load-balancing server, they may not even consider
different technologies that might accomplish the same goal more effectively.
4- Simple Design
- Most efficient.
* Programmer welfare
10- Sustainable Pace
- If the customer not available then a team member may acts as a stand-in for the customer.
- XP Roles
- XP Coach
- Make sure the team adhere to XP process and help team to get better.
- XP Customer
- Is the product expert and determine which feature would deliver greatest values.
- XP Programmer
- Self-organizing and self-managing pull user stories off the iteration backlogs and turn them into
a working solution.
- Work in pairs. (Pilot and navigator).
- XP Tracker
- The release plan (User stories), the iteration plan (tasks), and the acceptance tests.
- XP Tester
- Help customer take the acceptance criteria and translate them to acceptance test.
Lean
- Production systems based on product aligned single-piece flow, pull production.
- The original main 7 types of waste from Toyota Production System (TPS) are Transportation,
Inventory, Motion, Waiting, Over-production, Over-processing, Defects.
1- Eliminate Waste
- Value Stream mapping: analyze each activity as part of identifying potential waste.
2- Amplify Learning
6- Build integrity in
- Refactoring
- Should like as a solution not like a ten separate solutions cobbled together.
- Judoka (Automation)
- Judoka is a Japanese term used for automation means “intelligent automation” or “humanized
automation.” In practice, it means that an automated process is sufficiently “aware” of itself so
that it will detect when the desired quality is produced, detect process malfunctions, detect
product defects, stop itself and alert the operator. A future goal of automation is self-correction.
Crystal
- Crystal clear
- Crystal red
- Use a prioritization technique called MoSCoW (Must, Should, Could, and Won’t) to determine
which requirements should be included in a release or iteration.
- Kano Model: Basic Needs (Threshold –Must have), Performance Needs (Linear), and
Excitement Needs (delighters).
- Relative weighting: Each feature is prioritized based on its relative weighting for Benefits,
Penalties, Costs, and Risk. Each feature uses a relative scale of 1–9 to determine its rating.
- priority = value% / (cost% + risk%)
- DSDM Phases
- Feasibility phase
- Foundation phase
Note:
Speculate phase includes developing a capability and/or feature based release plan to deliver
the vision.