Agile Scrum Sprint events

The Scrum Events | Scrum Alliance

https://resources.scrumalliance.org/Article/scrum-events

Scrum defines several events (sometimes called ceremonies) that occur inside each sprint: sprint planning, daily scrum, sprint review, and sprint retrospective.

Sprint Planning

What Happens in Sprint Planning?

During sprint planning, the entire scrum team collaborates and discusses the desired high-priority work for the sprint and defines the sprint goal. The scrum master’s role is primarily to facilitate the meeting. The product owner describes the product goal and also answers questions from the development team about execution and acceptance criteria/criteria of satisfaction.  The developers have the final say in how much of the high-priority work it can accomplish during the sprint.

Who Attends Sprint Planning?

Sprint planning involves the entire Scrum team: the development team, Product Owner, and Scrum Master.

How Long Should Sprint Planning Last?

Sprint planning is limited to a maximum of eight hours.

The general rule of thumb is to allow two hours of sprint planning for every one week of sprint length. That means teams should timebox sprint planning to four hours for a two-week sprint and eight hours for a one-month sprint.

Daily Scrum

What Happens in a Daily Scrum?

The development team meets for 15 minutes (or less) every day of the sprint to inspect progress toward the sprint goal. They describe for each other how their own work is going, ask for help when needed, and consider whether they are still on track to meet the sprint goal. This is not a status meeting but is instead an opportunity for the development team to inspect and adapt the product and process on a daily basis.

Sprint Review

What Happens in a Sprint Review?

Sprint reviews focus on the product being developed, specifically on the potentially shippable product increment created during the sprint. During a sprint review, the scrum team invites stakeholders to discuss what was completed during the sprint. They adapt the product backlog as needed based on this feedback. The product owner has the option to release any of the completed functionality. 

Though a demo might be part of this meeting, the primary purpose of the sprint review is the inspect and adapt capability provided by the discussion. 

Who Attends a Sprint Review?

The entire scrum team attends the sprint review. The team invites users, customers, stakeholders, senior managers, and affected departments (e.g., marketing, customer support) to attend and give feedback. Scrum teams are encouraged to invite as many people as the room can hold–diverse feedback is essential for creating excellent products.

How Long Should Sprint Reviews Last?

Sprint reviews are limited to a maximum of four hours.

The general rule of thumb is to allow one hour for sprint review every one week of sprint length. That means teams should timebox sprint review to two hours for a two-week sprint and four hours for a one-month sprint.

Sprint Retrospective

What Happens in a Sprint Retrospective?

Sprint retrospectives focus on the process. During a sprint retrospective, the scrum team discusses what went right and areas for improvement in the sprint. They make tangible plans for how to improve their own process, tools and relationships. 

How Long Should Sprint Retrospectives Last?

Sprint retrospectives are limited to a maximum of three hours. 

The general guidance is to allow 45 minutes for each week of sprint length. So a two-week sprint would cap the sprint retrospective at an hour and a half; a four-week sprint at three hours.

Posted in Uncategorized | Leave a comment

Cosmological Horizon

I love the correlation between Hawking radiation and, a term new to me, Unruh radiation. That math is beyond me, but I can certainly appreciate it’s revelations. I am inspired that humanity has learned enough to determine that the universe is unlimited in size, but realize our ability to experience it is limited by the nature of the universe itself.

And, not stated in the article but implicit in the logic, is a belief central to my worldview. Just as our Sun is not unique in the endless Sea of stars, our Big Bang is not unique in the endless progression of Time.

https://bigthink.com/starts-with-a-bang/universe-wasnt-empty-before-big-bang/
Posted in Musings, Science | Leave a comment

Checking for open ports on other systems

Testing connectivity and port availability using SSH instead of Telnet – Unix & Linux Stack Exchange

Windows:

Port open:

C:\>ssh -p 121 p4-mfg
kex_exchange_identification: read: Connection reset

Port closed:

C:\>ssh -p 120 p4-mfg
ssh: connect to host p4-mfg port 120: Connection timed out

Linux:

Use the -p option. For example port open:

$ ssh -p 111 192.168.1.16
ssh_exchange_identification: read: Connection reset by peer
Port closed:

$ ssh -p 112 192.168.1.16
ssh: connect to host 192.168.1.16 port 112: Connection refused

Posted in Cmd scripting, Operational Technology, Security, System/DB Administration | Leave a comment

Famous last words

I’m (not-very) reassured this shouldn’t take long.

Microsoft OneDrive for Business:
We're getting things ready to sync...

[Progress bar]
This shouldn't take long.
Posted in Musings | Leave a comment

ForFiles is not For

Today I was surprised to find a new batch command. FORFILES. This is essentially a re-worked FOR command, with a slightly different skew.

Whereas FOR is targeted at files or text, FORFILES is exclusively targeted at files. What makes it different?

The advantage I needed is it’s ability to work with filenames that contain parentheses characters, which are “(” and “)”. These cause problems in the FOR command for two reasons. First, FOR itself uses parentheses as part of its syntax, so a close-parentheses will kick it’s filename parser back out to the FOR command processing logic. Second, parentheses are used by CMD script to group commands, so this also interferes with a variety of situations.

I was hoping to get the last-modified-time for a repository synchronization tool. The FOR command can do this, but many of the files in my repository contain parentheses so it was a hard fail.

I was passing in a full absolute path/filename/ext, and struggled to find the right combo of path (/P) / mask (/M) filters. FORFILES was complaining about nonexistent paths. Then I hit upon using a path filter of the full absolute PLUS appending a trailing “\..” to bring the context from the file back down to its containing folder. And that’s close to working!

I still haven’t nailed how to filter the single file I want processed. Using my single file on the filter makes FORFILES complain, while using the filetype returns multiple files. I’m going to give up for now. I’ve tried a few other single files and they seemed to work, so maybe I’ll come back to this later. Here’s the command as I’ll leave it:

forfiles /P "C:\Users\Public\Documents\NAMEPLATES - Honeywell PX940V\Badger\270457(267070) MISSING IMAGE.fmt\.." /M "*.fmt" /C "cmd /c echo @path MOD DATE IS @fdate@ftime"

I was thinking of using FIND or FINDSTR to filter out the single file, but hit a stop with the need for double-quotes needed to contain the search string that contains spaces, backslashes, and parentheses. Plus the need to CALL :subroutine in the main batch script, that might not play nicely with FORFILES’ syntax of using CMD /C as a prefix of everything it does.

Also note that @path is the full abs path\file\ext, @file is file\ext, @fname is file, @ext is extension.

…And I missed a few months of posting. Life changes. Maybe I’ll post more later. I’m considering moving this all elsewhere.

Posted in Cmd scripting, FunTimes, Programming | 1 Comment

IAW. WTF.

I’m not sure why I occasionally see the acronym “IAW” scattered through some docs. My guess is that it’s an industry-standard phrase, but MAN does it ever come off as stilted. My business documentation hackles are rising.

“Personnel shall be trained IAW the documents listed below.”

Seriously? I can think of a couple ways to make that more modern real-world, readable, relatable. How about:

“Personnel shall be trained to the documents listed below.”, or

“Personnel shall be trained per the documents listed below.”

Why inject an extra acronym that doesn’t even save letters? WTF? Legalese I suppose.

Posted in Business, Musings | Leave a comment

Same-day meetings

It reeeally bugs me when someone schedules a meeting on the day of the meeting. Like, I get it, sometimes time is critical and in that situation I’m as guilty of scheduling same-day meetings as anyone. When I’m on the receiving end, though, especially for lower priority issues… ugh!

Posted in Business, Musings | Leave a comment

Types of technology people

I’m coming to realize there are two types of people in technology:

  1. Those who will find the problems and identify obstacles; then tell you why something cannot be done.
  2. Those who help you get things done. They’ll help you navigate through processes and overcome any obstacles.

I try to exist in the latter group. It’s much more fun for me to create solutions than to create disappointment. I’d like to say most technology people prefer to be creative, but that might just be my rose-colored glasses.

ALWAYS keep focus on your users. They’re only using your technology products to help them accomplish something else. Ask yourself whether your technology makes their experience easier, or more difficult.

If you’re making their lives more difficult, do your best to mitigate that complexity.

Posted in Business, Musings, Project Management | Leave a comment

PowerBI Power Query / M lookups

I’m building a dynamic bucketing system with filtering based on process and program. I’m facing several interesting challenges.

First- bucket sizes are based on the program, so I need dynamic buckets, and bucket labels.

Second- max number of buckets is undefined. I’ll assume 12.

Third- the report requires a trendline for FPY %, plus a trendline over the past 5 buckets

Fourth- Trending is FPY only, which hides some deeper trends.

Fifth- requires most recent bucket upon left side.

Here’s an example:

I’m doing a lookup against a base part number, excluding the dash number, to get a program name. Transforming the part number-dash number into base part number looks like this (Transform window, Text Column group, Split Column button, by delimiter. Split on the last delimiter. Rename the first column to base_part_number, and the right column to dash_part_number.):

#"Duplicated Column" = Table.DuplicateColumn(#"Added Index", "product_number", "product_number - Copy"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Duplicated Column", "product_number - Copy", Splitter.SplitTextByEachDelimiter({"-"}, QuoteStyle.Csv, true), {"product_number - Copy.1", "product_number - Copy.2"}),
#"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"product_number - Copy.1", type text}, {"product_number - Copy.2", type text}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"product_number - Copy.1", "base_part_number"}, {"product_number - Copy.2", "dash_part_number"}}),

Then I use a lookup against the Tracked Assy Info table, using the base part number to get the program name. That is a two-step process, though it could be one step but less maintainable. First it gets the record index, and then if there was a match it pulls the program name. Otherwise it returns (undefined). Two Custom Columns are used for this. (Transform window, Add column group, Custom Column button.) That’s done here:

#"Added Custom" = Table.AddColumn(#"Renamed Columns", "tracked assy info index", each List.PositionOf(aca_wip_tracked_assy_info[base_part_number], [base_part_number] )),

#"Added Custom1" = Table.AddColumn(#"Added Custom", "program_name", each if [tracked assy info index] = -1 then "(undefined)" else aca_wip_tracked_assy_info[program]{[tracked assy info index]})

I’m then using a foreign-key-style lookup in the M / Power Query code during transformation to provide a rank (index, really) across program groups. I’ll post what that looks like when I’ve got it working – I’ll update this post, as opposed to creating a new post.

Update: Change in plans. This technique introduced a massive delay when updating data. The data was added into the SQL View instead of being added during PowerBI data transformation.

This page contained useful guidance:

https://community.powerbi.com/t5/Desktop/M-Query-lookupvalue/td-p/830337

Posted in Business, Business Intelligence, Design and UX, PowerBI | Leave a comment

Holy cats! It’s that song!

My brain wants to call this the streetcar song, because the dinging cowbell reminds me of a streetcar sound.

Grazing in the Grass, by Hugh Masekela.

Posted in FunTimes | Leave a comment