Software, Agile Process, SDLC, Kanban, Lean, RUP, Use Case, and Requirements. Along with a dash of unrelated material.
Monday, September 26, 2011
Word Cloud generators?
Friday, August 26, 2011
Product owners?
-->
Sunday, August 15, 2010
Tips for new BAs
- Ask people when the best times to talk to them are and when it is best to leave them alone (when end of month process is going on, for example).
- Find out their preferred method of communication. If someone never responds to your e-mails try phone calls or stopping by their desk. If they hate interruptions, schedule time to meet or use e-mail.
Friday, July 30, 2010
Mind Puzzles
Here are some ways to exercise creative thinking. They are separate from eachother. Have fun.
Clear your mind
The idea is to get rid of problems that are keeping you from concentrating on the task at hand.Take out a piece of paper and quickly write down any issues which come to mind. It doesn’t matter how small the issue is, write it down. Keep writing until there is nothing left to write. Then look at the list and acknowledge that you will deal with these concerns later. Fold the paper up and put it on the corner of your desk for later.
Define your problem
The idea is to come up with different expressions of your problem, leading to a new and unusual solution.Use an idea quota. Write down 5 different ways to express your problem in 1 sentence.
Repeat at least 3 times.
Why and what ways
The idea is to drive to root cause (why) and back up to potential solutions.Why do I spend time less time doing this thing that I should?
Why do you want to ...?
Why do you ...?
Why do you ...?
Why ...
Now restate the answers as “In what ways can I ....”
Mind map and negative mind map
The idea is to see the problem from a negative perspective and strengthen the positive.Do a mind map of the problem.
Now do a mind map of the opposite of the ideas. I.E. opposite of fitness is sloth.
Random words
The idea is to look at the problem from differnt perspectives.“In what ways can I ________________?”
Choose a random verb.
Explore the relationship between the sentence and your subject and then explore the non-relationship between the sentence and your subject.
Thursday, July 15, 2010
Random Number Generators and Slot Machines
An slot machine is a computer (Electronic Gaming Machine or EGM actually) and computers can't really create random numbers, but can generate sequences of numbers that mimic randomness - Pseudo Random Numbers which are widely known as PRNs. These PRNs are pretty good: they're exercised with battery of tests run against the output to ensure the numbers are statistically random. The most common algorithm, the linear congruent method (LCM) which generates numbers such that same sequence of numbers won't occur until about 2 billion numbers have been generated. Many EGMs use variations of the LCM that have cycle periods close to the number of molecules in our galaxy! You can't guess the sequence even if you know the algorithm.
As a rule, EGMs generate a random number continuously, not every time you drop in a coin. It's not unusual for EGMs to generate over 1000 numbers in the sequence every second. Only when you place your bet does the machine capture the next 'random' number. Knowing the algorithm isn't of much help since you'd have to drop your coin into the machine and bet at the exactly right 1/1000th of a second in order to get the number you were counting on.
Once the number is generated, the computer compares the number to a payout chart. All games have a payout table referred to as the PAR (Percentage Average Return) chart. Each EGM has it's own individual PAR chart, usually ranging from 99% to 81%.
Every game (even if they look the same) has a different PAR chart and the chart is usually held as confidential by the casino. The payout rate advertised on the machine or in the casino usually portrays an average of all the games taken together. Since each game is a separate entity with its own random number generator, it is not uncommon for one game to have a payout of say 95% and the one next to it, with the same game title having a payout of 86%.
To further complicate matters, PAR charts are usually different depending on the amount of the bet. Maximum bet has the highest return rate while smaller bets typically have a lower payout rate.
Once the payout (or loss) is determined, the slot machine spins the spinners with a command from the computer to land on a certain display. The spinners really have NOTHING to do with the actual play, it's all handled by a random number generator and a table. Even the 'bump' of the spinners is pre-determined based on the random number and table. Sorry to take the fun out of it.
The bottom line is that gaming is truly random. If you are at the right place at the right time with max bet you too could win a sizable jackpot on an electronic gaming machine. The fun part is the anticipation of the win and the many little wins along the way that make slot gaming fun regardless of whether you win or loose.
Wednesday, June 30, 2010
How much worth is the man

Monday, May 24, 2010
Agile Story Examples
Story Basics
The basic thing about a real story is that it's a metaphor for the work being done. It is not a requirement but a reminder to collaborate about the topic of the story - in other words in agile development (good agile at least), the documentation is secondary to the collaboration. So the story doesn't make you agile, it's the underlying philosophy.
Invest model for good stories
- Independent – reduced dependencies = easier to plan
- Negotiable – details added via collaboration
- Valuable – provides value to the customer
- Estimable – too big or too vague = not estimable
- Small – can be done in less than a week by the team
- Testable – good acceptance criteria
Examples of good stories:
Story:
Generate an Emergency Department ReferralDescription:As a provider, I want the option to generate an Emergency Department Referral (EDR) when I close a visit note so that I can share pertinent medical information with other IHE community members.
Acceptance Criteria:
Assumptions:
An IHE Community interface has been configured.
The interface can be configured to send an EDR automatically to the IHE Community.
The interface can be configured to send and EDR to an referral specialist or office staff member.
The interface can be configured to indicate who to send the EDR request.
Acceptance Criteria:
When a user closes a visit note, provide an option on the Visit Checkout screen to generate an EDR. This option will indicate that the provider intends to create an ED Referral.
Story:
Strip special characters from policy fields before creating electronic transmission claim file.Description:
As a front desk/billing user, I would like to be able to scan insurance cards through OCR and not have to go back and edit certain fields due to dashes in the policy IDs.
In addition, I would also like this information to be formatted correctly for my electronic transmission so that I do not get claim rejections.
Acceptance Criteria:
Provide the ability for dashes to be removed from the member ID and group ID when creating the file for electronic transmission. This process was also necessary by interfacing products to remove dashes from policy IDs to prevent rejections. Investigation may include researching how other products accomplished this task.
Also, users should be able to utilize OCR scanning without having to edit patient information manually (removing dashes).
Story:
Need a way to print multiple patients on a label sheetDescription:
As a System user I would like to be able to print multiple patients on one label sheet so that I don’t have to look at multiple pages.
Acceptance Criteria:
At least 6 patients print on one label sheet.
Critique of bad stories:
Story:
Add capability to select the Welch-Allyn Exercise ECG TestDescription:
This requirement was requested during the W-A certification demo 2/17/09.
***Description doesn’t specify who or why this is important. What needs to be done? Can’t tell.
Acceptance Criteria:
***missing
Story:
Cursor should default in assign to field instead of patient field when creating a new procedure task message in FNC.***Could be shortened to “Default cursor to assign” The rest can be in the description. Overall this may be TOO small to be a story and could be rolled into another related piece of work.
Description:
As a System user, I would like the cursor to default in the assign to field instead of the patient field when creating a new procedure task message. The patient name is already in the field since I'm creating the message, so I would prefer the cursor to default in the assign to field.
***Could shorten this to:
As a System user, the cursor will default to assign field when creating a new procedure task message so that I can be more efficient.
Monday, May 17, 2010
Some Good Resources for Agile
• Applying User Stories – Mike Cohn
• Agile Estimating and Planning – Mike Cohn
• Collaboration Explained – Jean Tabaka
• Lean Software Development – Mary Poppendieck
• Agile Project Management – Jim Highsmith
• Agile Project Management with Scrum – Ken Schwaber
• Managing Agile Projects – Sanjiv Augustine
• FIT For Developing Software – Rick Mugridge, Ward Cunningham
• Agile and Iterative Development – Craig Larman
• Domain-Driven Design: Tackling Complexity in the Heart of Software – Eric Evans
• Working Effectively with Legacy Code – Michael Feathers
• Refactoring To Patterns – Joshua Kerievsky
• Fearless Change: Patterns for Introducing New Ideas – Linda Rising, Mary Lynn Manns
• Product Development for the Lean Enterprise – Michael Kennedy
http://www.agilealliance.org/
http://www.theagileblog.net/
http://www.rallydev.com/
http://www.mountaingoatsoftware.com/
http://www.stickyminds.com/
scrumdevelopment
agileprojectmanagement
agiledenver
extremeprogramming
agiletesting
Tuesday, May 4, 2010
New Article Published
Wednesday, March 24, 2010
Six Weapons of Influence in action
Recently, team members have questioned the benefit of certain aspects of the agile, specifically retrospectives. [Acknowledge the problem to gain alignment with the audience]
In regards to retrospectives, certainly each of us wants to improve our on the job performance [setting up consistency]. Retrospectives are specifically intended to improve individual and team performance each and every sprint [pointing out the inconsistency of not holding retrospectives]. Numerous studies and experts agree that retrospectives are a potent tool for performance improvement when executed well [Authority or Directed Deference]. Reflecting on how to become more effective and tuning behavior to maximize effectiveness [consistency] is so important that the originators of agile development list it as one of the twelve principles behind the agile manifesto [Authority or Directed Deference].
As a group, we have committed to following agile development through the scrum process [social proof]. Retrospectives are an important part of the process – one that we all need to improve upon in order to better see the benefits [social proof and consistency].
We realize that retrospectives are not easy and take time. It’s no simple task to ferret out good retrospective items and put them in a form that can be actionable [align with audience].
In order to better support retrospectives, upper management will commit to allow time to work on retrospective items during sprints if the retrospective items are written as actionable stories [Reciprocation]. We also commit to providing, upon your request, retrospective coaching for individuals or groups, and will share examples of good and bad retrospective items. In return we ask for your willingness to continue retrospectives and your support in working with us on improving efficiency/quality/delivery [Reciprocation].
Sunday, March 7, 2010
The Inverse Peter Principle?

Star developers often rise to management because of their ability to program under pressure and, in many cases, their software fire fighting ability, not necessarily the ability to plan, track, motivate, and manage a project.
If the corporate culture rewards a hacker mentality - time savings and emergencies over strategy and planning, developers who rise to management may never be exposed to long term thinking and may not even be told that management is all about planning, managing risks, monitoring, and most importantly reflecting on the future. Do star firefighters have the key ability to plan, see strategy, and organize large groups of people - I would say not always.
So what do we do about this problem? How about promoting people to management for their tendency to over design, over plan, and not necessarily just hack? This is an inverse of the peter principle. Imagine programmers who are mediocre by firefighting standards being promoted to management. We might just be better off in the industry.
Then companies could proudly proclaim “we promote the mediocre” – ah, maybe not.
Sunday, January 10, 2010
Sorry Spock, logic isn't always the best motivator

Influencing people involves not only logic (what you’re trying to convince people of), but invoking their emotions (how you’re convincing them) and a social aspect of convincing the right people.
Emotion
So how do you get the emotion monster involved? After reading many, many texts on the subject, the best categorization of emotional influence techniques is the six weapons of influence. I’ve used one or more of these weapons in combination with quite a bit of formal logic with success many times, but not always. Dispite the best emotional influence and carefully applied logic, some people just won’t move in the right direction.
Social Pressure
This is where the leader crowd comes in to play - some people need to be lead, either explicitly or implicitly. So you have to convince the formal and informal leaders (the leader crowd) to support your ideas before that herd of cats begins heading in the right direction. To influence the leader crowd, the first step is to identify the right people – something that is situational and beyond what I can blog about today. Do make sure to identify the informal leaders though - they're the people who, when they speak in the meeting, never have to raise their voices because everyone seems to listen. The second step is to use logic, emotion, and social pressure to convince the leader crowd. You’ll find that the lead crowd has its own, smaller leader crowd which in turn has a smaller leader crow and so forth. The deeper you get into the leader crowd, the less prominent the social pressure side of influence becomes. Eventually you’ll get to the leader crowd where you begin to influence without much of the social aspect whatsoever (think Malcom Gladwell’s tipping point). These are the independent leaders, influence them and the rest of the cats herd will be easier to manipulate.
I hope this helps you to look at influence as a bit more than just logic and has inspired you to do a little research on your own.
Sunday, December 6, 2009
Personal Kanban Board
Here’s what I mean by a personal scrum board. I have a whiteboard in my office divided into columns: backlog, staged, in process, ready for review, done. I keep track of all of my work on sticky pads very much in the same way as story cards. I also give each task a priority based on customer value. Work moves from column to column, eventually into the done column. I purposely keep work in process to one or two items and when a higher priority items pops up, it gets moved into the top of the staging column.
All of this seems like simply making a list and executing the list. That’s true, but the real power of the board is the agile processes that I can pull into my personal work. The board gives me plenty of visibility to those who work with me. I also have a morning daily planning session (by myself) before I begin work. I make sure that if anything that doesn’t flow through the board in a couple of days is evaluated to see why is it stopping up the flow. I also keep an impediment list that everyone coming into my office sees – my manager is responsible for helping with the impediment list.
If you’d like to try a personal kanban board, there’s information on the net for determining how kanban works. I’d encourage you to investigate and try it. Corey Ladis has a lot of information on: http://leansoftwareengineering.com/
The genius of story points
Let’s say you estimate based on ideal days. The problem is: how many actual days equal an ideal day? If you’re like most managers there’s a one to one correlation, despite any grounding in reality! You’ve got to calibrate the number of ideal days with reality which is what story points tend to do, but in a slightly different manner – via velocity and the abstract number that comes out of points.
Story points are meant to categorize stories by effort and size. Once you’ve initially categorized your work via story points, you pull in a few stories into your first sprint and then sum up the number of points you think you can do. Once the sprint is complete, you see how many story points you’ve actually completed and that becomes your initial velocity. If you are consistent in estimating story points, you can begin to figure out how many story points you can take in based on velocity.I think the reason story points are so fishy to a number of people is that they’re anchored in velocity, which is something that a new, forming team, doesn’t have yet. Once you’ve completed a few sprints, you’ll have a velocity and a set of canonical stories for each group of story points that you can then hang your hat on.
Sunday, November 15, 2009
Musicianship and agile development
After thinking about it quite a bit, agile collaboration is part of my upbringing, being a musician. I'm not just a musician, but the lowest form of musician - a bass player. I play tuba and bass guitar and it's pretty unusual for a bass player to take the lead - particularly a tuba player. The job of a good bass player is to support the rest of the band by providing a heartbeat and foundation. When playing bass guitar, I've always felt myself more of a percussion player with notes than another type of guitar player. It's better to play one note or rep over and over correctly and on beat than a Vic Wooten style riff that doesn't work.
Musicians, by nature, have to collaborate. They have to support eachother or have a collective train wreck. While there is some ability to grab glory, the point of the music is the product itself, not the spotlight of a solo.
Next time you're thinking of how agile is different, think about musicianship and the mutual support of musicians. It'll change the way you think of the project.
Friday, July 17, 2009
A story point trick
Here's a trick. After a few sprints, create a spreadsheet of story references, their points, and the sprint in which they were played. Sort the spreadsheet by point, sprint, then reference. Next time you go to a story pointing session hand out the list to the entire team and use this as a reference when someone trys to split hairs with a story. The point of the matter is to keep pointing consistent among the stories, not highly precise.
As time goes on, the team can strip stories from the spreadsheet that no longer seem like good representatives of that size.
This technique works great!
Tuesday, July 14, 2009
What's the best way to specify requirements?
Are user stories better than other types of requirements specification?
User stories are narrative texts that focus on the value a user gains from the system. The basic thing about a real user story is that it's a metaphor for the work being done, not a highly documented requirement. The intent is to enhance collaboration about the topic of the user story - in other words in agile development (good agile at least), the documentation is secondary to the collaboration.
We value people over process, remember? Any technique may be flawed, but it’s the individual and team that can make it work or fail . If someone is used to iterative approach I believe they can make the other use cases and user stories work. If someone is steeped in big requirements up front (BRUF) then they will bring that style to user stories and end up with traditional requirements that are termed stories. At the end of the day it’s the individual that’ll make a technique fail or succeed.
As agile coaches and authors, we stress people and the importance of people and the team, but all too often focus on techniques, not the intent of the techniques or the underlying values of the agile manifesto.
So are user stories the best way to document requirements? Yes, if and only if you can foster collaboration. If your writing user stories and not seeing collaboration, the user stories are not helping and you might as well write traditional requirements (or better yet start to emphasize collaboration).