Imagine if you could master your motivation, your productivity, and your time management?
It’s time to get your game on.
At Getting Results.com you can learn all about Agile Results. It’s more than just a time management system or a productivity system.
It’s a personal results system for work and life.
Agile Results is a simple system for meaningful results.
It helps you respond to change while making things happen. It helps you use your best energy for your best results, while you keep learning and improving.What Will You Find at Getting Results.com?
Getting Results.com is a source of insight, inspiration, and action for mastering productivity, motivation, time management and more.
Here are some of the key things you’ll have access to:
- Get Started with Agile Results.
- Articles on Agile Results, Goals, Motivation, and More.
- 7 Day Agile Results Jumpstart, helps you take Agile Results for a test-drive and potentially have one of your best weeks. Ever.
- 30 Days of Getting Results, this is advanced training that will help you get better results for work and life.
- Resources that include Cheat Sheets, Checklists, How Tos, Visuals, and more.
You can also read Success Stories to hear about how others have implemented and are using Agile Results.Getting Started with Agile Results
While there are a lot of resources at Getting Results.com, the most important thing you can actually do is just get started with Agile Results:
Take it for a test drive and see if you can create better results at work and in your life, the Agile Way.
The Trello board retrospective techniques for coaches, Scrum masters, and other facilitators provides exercise and ideas to design agile retrospectives. Philip Rogers created this board, he has added me so that I can contribute my experience with retrospectives.
This interesting retrospective resource on Trello has columns with:
- “All-in-one” plans for retrospectives, descriptions of exercises that cover the five phases mentioned below.
- Futurespectives, where the focus of the conversation is not on something that has occurred in the past, but instead on what the team foresees in its future.
- Activities for the five phases from the agile retrospectives book by Esther Derby and Diana Larsen.
Retrospectives Exercises Toolbox - Design your own valuable Retrospectives
The trello board with retrospective techniques has been added to the retrospective exercises toolbox.
I’ve contributed to the board by sharing my blog posts How Futurespectives Help Teams to Reach Their Goals, Retrospective Prime Directive in many languages and What to do when safety is low in a retrospective on this board. More will be added soon.
My mission is to help teams all around the world to increase the value of their agile retrospectives. There’s the book Getting Value out of Agile Retrospectives, the Retrospective Exercises Toolbox, workshops for Valuable Agile Retrospectives in Teams and for Increasing your Agility with Retrospectives and there are lots of blog posts on retrospectives. And you can Ask Your Agile Retrospective Question on line. All these things help you to make your retrospectives valuable.
A big thanks to Philip Rogers for providing me the possibility to share my experience and ideas for agile retrospectives on this board!
Recently, I discovered a well-written article on Scrum Alliance posted from a member entitled “Switching to the Agile Mindset.” In this article, the author lists six key components of the transformation individuals and teams go through as they adapt more agile mindsets and approaches to their work. I found this article ideal for new coaches and also useful for people on the team who may feel challenged by the switch.
The part which stands out for me the most is the phrase, “Change acceptance develops agility in a team.”
This concept is enshrined in the Agile Manifesto itself. Being able to adapt well to change is the cornerstone of the new mindset and a high-functioning agile team.Learn more about our Scrum and Agile training sessions on WorldMindware.comPlease share!
Getting thrown in to the deep end of any new responsibility can be quite a challenge – but none more so than the challenge of managing other people and their projects, when you have no experience with management!
As someone that has been through the ranks of project leadership and management, I’ve found a few principles to be consistent in learning how to delegate work to the people on my teams… a balance between two extremes that can be difficult to find.
So, what is the key to delegating work effectively – especially in your early days as a manager?
Find out in this episode of ThoughtsOnCode.Tweet
- Sponsored: 64% off Code Black Drone with HD Camera
Our #1 Best-Selling Drone--Meet the Dark Night of the Sky!
Some think they must act with “pretend certainty” for the benefit of their career. Others have convinced themselves of “arrogant certainty” where they believe they know the answer or solution but don’t (or can’t) provide any solid basis for this certainty. Unfortunately this arrogance can be interpreted as confidence that can be dangerous to the success of a company. Nassim Nicolas Taleb refers to “epistemic arrogance” that highlights the difference between what someone actually knows and how much he thinks he knows. The excess implies arrogance. What has allowed certainty within companies to thrive is that there is a distance between the upfront certainty and the time it takes to get to the final outcome. There lacks accountability between certainty at the beginning and the actual results at the end. Often times the difference is explained away by the incompetence of others who didn’t build or implement the solution correctly.
Of course, the truth is somewhere in between. The concept of certainty is actually dangerous to an enterprise since it removes the opportunity of acknowledging the options and allowing the enterprise to apply a discovery mindset approach toward real customer value via customer feedback loops and more.
We also want to avoid the inverse that is remaining in uncertainty due to analysis paralysis. A way to avoid this is to apply work in an incremental framework with customer feedback loops to enable more effective and timely decision-making. Customer feedback will provide us with the evidence for making better decisions. Applying an incremental mindset will enable us to make smaller bets that are easier to make and allow us to adapt sooner.
A healthier and more realistic approach is to have leaders who understand that uncertainty is actually a smart starting position and then apply processes that support gaining certainty. It is, therefore, incumbent upon us to have an approach that admits to limited information and uncertainty, and then applies a discovery process toward customer value. In the end, the beaten and battered Don Quixote forswears all the chivalric false certainty he followed so fervently. Is it time for management to give up the certainty mindset they think they have and instead replace it with a discovery mindset as a better path to customer success?
The post Making Unconscious Habits in Culture Conscious in Agile Teams appeared first on Agile Advice.
Just an update on the work we’ve been doing to speed up AutoMapper. I’ve captured times to map some common scenarios (1M mappings). Time is in seconds:Flattening Ctor Complex Deep Native 0.0148 0.0060 0.9615 0.2070 5.0 0.2203 0.1791 2.5272 1.4054 4.2.1 4.3989 1.5608 134.39 29.023 3.3.1 4.7785 1.3384 72.812 34.485 2.2.1 5.1175 1.7855 122.0081 35.863 22.214.171.124 6.7143 n/a 29.222 38.852
The complex mappings had the biggest variation, but across the board AutoMapper is *much* faster than previous versions. Sometimes 20x faster, 50x in others. It’s been a ton of work to get here, mainly from the change in having a single configuration step that let us build execution plans that exactly target your configuration. We now build up an expression tree for the mapping plan based on the configuration, instead of evaluating the same rules over and over again.
We *could* get marginally faster than this, but that would require us sacrificing diagnostic information or not handling nulls etc. Still, not too shabby, and in the same ballpark as the other mappers (faster than some, marginally slower than others) out there. With this release, I think we can officially stop labeling AutoMapper as “slow”
Look for the 5.0 release to drop with the release of .NET Core next week!
Post Footer automatically generated by Add Post Footer Plugin for wordpress.
Project boards limit your visibility into your team's capacity and performance. Learn how team Kanban boards enable continuous improvement.
The post Are Project Boards Really Kanban? How Old-School Project Management Prevents Continuous Improvement appeared first on Blog | LeanKit.
I will give two workshops in Kladno (near Prague) on Getting More out of Agile and Lean. In these workshops you’ll learn practices to develop the right products for your business and customers, reduce your delivery time, increase the quality of your software, and create happy high performing teams.
Retrospectives Exercises Toolbox - Design your own valuable Retrospectives
These workshops are done in collaboration with Aguarra, the competence center for agile techniques and technology innovations in Czech Republic, Slovakia and Hungary. Aguarra serves as a platform for experts, who work on research and implementation of agile techniques.
The workshop on Getting More out of Agile and Lean can be combined with the workshop on Valuable Agile Retrospectives that I’m giving on on November 1 or December 1. These two days of workshops on Retrospectives and Agile and Lean practices help you to boost the performance of your teams, enabling them to deliver more value to their customers and stakeholders.
Regular price is 480 EUR / 576 EUR. Price when ordering until 01. 09. 2016 : 440 EUR / 528 EUR.
For the latter part of the week I’ve been running some tests against Neo4j which generate a bunch of log files and I wanted to filter those files based on the time they were created to do some further analysis.
This is an example of what the directory listing looks like:
$ ls -alh foo/database-agent-* -rw-r--r-- 1 markneedham wheel 2.5K 23 Jun 14:00 foo/database-agent-mac17f73-1-logs-archive-201606231300176.tar.gz -rw-r--r-- 1 markneedham wheel 8.6K 23 Jun 11:49 foo/database-agent-mac19b6b-1-logs-archive-201606231049507.tar.gz -rw-r--r-- 1 markneedham wheel 8.6K 23 Jun 11:49 foo/database-agent-mac1f427-1-logs-archive-201606231049507.tar.gz -rw-r--r-- 1 markneedham wheel 2.5K 23 Jun 14:00 foo/database-agent-mac29389-1-logs-archive-201606231300176.tar.gz -rw-r--r-- 1 markneedham wheel 11K 23 Jun 13:44 foo/database-agent-mac3533f-1-logs-archive-201606231244152.tar.gz -rw-r--r-- 1 markneedham wheel 4.8K 23 Jun 14:00 foo/database-agent-mac35563-1-logs-archive-201606231300176.tar.gz -rw-r--r-- 1 markneedham wheel 3.8K 23 Jun 13:44 foo/database-agent-mac35f7e-1-logs-archive-201606231244165.tar.gz -rw-r--r-- 1 markneedham wheel 4.8K 23 Jun 14:00 foo/database-agent-mac40798-1-logs-archive-201606231300176.tar.gz -rw-r--r-- 1 markneedham wheel 12K 23 Jun 13:44 foo/database-agent-mac490bf-1-logs-archive-201606231244151.tar.gz -rw-r--r-- 1 markneedham wheel 2.5K 23 Jun 14:00 foo/database-agent-mac5f094-1-logs-archive-201606231300189.tar.gz -rw-r--r-- 1 markneedham wheel 5.8K 23 Jun 14:00 foo/database-agent-mac636b8-1-logs-archive-201606231300176.tar.gz -rw-r--r-- 1 markneedham wheel 9.5K 23 Jun 11:49 foo/database-agent-mac7e165-1-logs-archive-201606231049507.tar.gz -rw-r--r-- 1 markneedham wheel 2.7K 23 Jun 11:49 foo/database-agent-macab7f1-1-logs-archive-201606231049507.tar.gz -rw-r--r-- 1 markneedham wheel 2.8K 23 Jun 13:44 foo/database-agent-macbb8e1-1-logs-archive-201606231244151.tar.gz -rw-r--r-- 1 markneedham wheel 3.1K 23 Jun 11:49 foo/database-agent-macbcbe8-1-logs-archive-201606231049520.tar.gz -rw-r--r-- 1 markneedham wheel 13K 23 Jun 13:44 foo/database-agent-macc8177-1-logs-archive-201606231244152.tar.gz -rw-r--r-- 1 markneedham wheel 3.8K 23 Jun 13:44 foo/database-agent-maccd92c-1-logs-archive-201606231244151.tar.gz -rw-r--r-- 1 markneedham wheel 3.9K 23 Jun 13:44 foo/database-agent-macdf24f-1-logs-archive-201606231244165.tar.gz -rw-r--r-- 1 markneedham wheel 3.1K 23 Jun 11:49 foo/database-agent-mace075e-1-logs-archive-201606231049520.tar.gz -rw-r--r-- 1 markneedham wheel 3.1K 23 Jun 11:49 foo/database-agent-mace8859-1-logs-archive-201606231049507.tar.gz
I wanted to split the files in half so that I could have the ones created before and after 12pm on the 23rd June.
I discovered that this type of filtering is actually quite easy to do with the ‘find’ command. So if I want to get the files after 12pm I could write the following:
$ find foo -name database-agent* -newermt "Jun 23, 2016 12:00" -ls 121939705 8 -rw-r--r-- 1 markneedham wheel 2524 23 Jun 14:00 foo/database-agent-mac17f73-1-logs-archive-201606231300176.tar.gz 121939704 8 -rw-r--r-- 1 markneedham wheel 2511 23 Jun 14:00 foo/database-agent-mac29389-1-logs-archive-201606231300176.tar.gz 121934591 24 -rw-r--r-- 1 markneedham wheel 11294 23 Jun 13:44 foo/database-agent-mac3533f-1-logs-archive-201606231244152.tar.gz 121939707 16 -rw-r--r-- 1 markneedham wheel 4878 23 Jun 14:00 foo/database-agent-mac35563-1-logs-archive-201606231300176.tar.gz 121934612 8 -rw-r--r-- 1 markneedham wheel 3896 23 Jun 13:44 foo/database-agent-mac35f7e-1-logs-archive-201606231244165.tar.gz 121939708 16 -rw-r--r-- 1 markneedham wheel 4887 23 Jun 14:00 foo/database-agent-mac40798-1-logs-archive-201606231300176.tar.gz 121934589 24 -rw-r--r-- 1 markneedham wheel 12204 23 Jun 13:44 foo/database-agent-mac490bf-1-logs-archive-201606231244151.tar.gz 121939720 8 -rw-r--r-- 1 markneedham wheel 2510 23 Jun 14:00 foo/database-agent-mac5f094-1-logs-archive-201606231300189.tar.gz 121939706 16 -rw-r--r-- 1 markneedham wheel 5912 23 Jun 14:00 foo/database-agent-mac636b8-1-logs-archive-201606231300176.tar.gz 121934588 8 -rw-r--r-- 1 markneedham wheel 2895 23 Jun 13:44 foo/database-agent-macbb8e1-1-logs-archive-201606231244151.tar.gz 121934590 32 -rw-r--r-- 1 markneedham wheel 13427 23 Jun 13:44 foo/database-agent-macc8177-1-logs-archive-201606231244152.tar.gz 121934587 8 -rw-r--r-- 1 markneedham wheel 3882 23 Jun 13:44 foo/database-agent-maccd92c-1-logs-archive-201606231244151.tar.gz 121934611 8 -rw-r--r-- 1 markneedham wheel 3970 23 Jun 13:44 foo/database-agent-macdf24f-1-logs-archive-201606231244165.tar.gz
And to get the ones before 12pm:
$ find foo -name database-agent* -not -newermt "Jun 23, 2016 12:00" -ls 121879391 24 -rw-r--r-- 1 markneedham wheel 8856 23 Jun 11:49 foo/database-agent-mac19b6b-1-logs-archive-201606231049507.tar.gz 121879394 24 -rw-r--r-- 1 markneedham wheel 8772 23 Jun 11:49 foo/database-agent-mac1f427-1-logs-archive-201606231049507.tar.gz 121879390 24 -rw-r--r-- 1 markneedham wheel 9702 23 Jun 11:49 foo/database-agent-mac7e165-1-logs-archive-201606231049507.tar.gz 121879393 8 -rw-r--r-- 1 markneedham wheel 2812 23 Jun 11:49 foo/database-agent-macab7f1-1-logs-archive-201606231049507.tar.gz 121879413 8 -rw-r--r-- 1 markneedham wheel 3144 23 Jun 11:49 foo/database-agent-macbcbe8-1-logs-archive-201606231049520.tar.gz 121879414 8 -rw-r--r-- 1 markneedham wheel 3131 23 Jun 11:49 foo/database-agent-mace075e-1-logs-archive-201606231049520.tar.gz 121879392 8 -rw-r--r-- 1 markneedham wheel 3130 23 Jun 11:49 foo/database-agent-mace8859-1-logs-archive-201606231049507.tar.gz
Or we could even find the ones last modified between 12pm and 2pm:
$ find foo -name database-agent* -not -newermt "Jun 23, 2016 14:00" -newermt "Jun 23, 2016 12:00" -ls 121934591 24 -rw-r--r-- 1 markneedham wheel 11294 23 Jun 13:44 foo/database-agent-mac3533f-1-logs-archive-201606231244152.tar.gz 121934612 8 -rw-r--r-- 1 markneedham wheel 3896 23 Jun 13:44 foo/database-agent-mac35f7e-1-logs-archive-201606231244165.tar.gz 121934589 24 -rw-r--r-- 1 markneedham wheel 12204 23 Jun 13:44 foo/database-agent-mac490bf-1-logs-archive-201606231244151.tar.gz 121934588 8 -rw-r--r-- 1 markneedham wheel 2895 23 Jun 13:44 foo/database-agent-macbb8e1-1-logs-archive-201606231244151.tar.gz 121934590 32 -rw-r--r-- 1 markneedham wheel 13427 23 Jun 13:44 foo/database-agent-macc8177-1-logs-archive-201606231244152.tar.gz 121934587 8 -rw-r--r-- 1 markneedham wheel 3882 23 Jun 13:44 foo/database-agent-maccd92c-1-logs-archive-201606231244151.tar.gz 121934611 8 -rw-r--r-- 1 markneedham wheel 3970 23 Jun 13:44 foo/database-agent-macdf24f-1-logs-archive-201606231244165.tar.gz
Or we can filter by relative time e.g. to find the files last modified in the last 1 day, 5 hours:
$ find foo -name database-agent* -mtime -1d5h -ls 121939705 8 -rw-r--r-- 1 markneedham wheel 2524 23 Jun 14:00 foo/database-agent-mac17f73-1-logs-archive-201606231300176.tar.gz 121939704 8 -rw-r--r-- 1 markneedham wheel 2511 23 Jun 14:00 foo/database-agent-mac29389-1-logs-archive-201606231300176.tar.gz 121934591 24 -rw-r--r-- 1 markneedham wheel 11294 23 Jun 13:44 foo/database-agent-mac3533f-1-logs-archive-201606231244152.tar.gz 121939707 16 -rw-r--r-- 1 markneedham wheel 4878 23 Jun 14:00 foo/database-agent-mac35563-1-logs-archive-201606231300176.tar.gz 121934612 8 -rw-r--r-- 1 markneedham wheel 3896 23 Jun 13:44 foo/database-agent-mac35f7e-1-logs-archive-201606231244165.tar.gz 121939708 16 -rw-r--r-- 1 markneedham wheel 4887 23 Jun 14:00 foo/database-agent-mac40798-1-logs-archive-201606231300176.tar.gz 121934589 24 -rw-r--r-- 1 markneedham wheel 12204 23 Jun 13:44 foo/database-agent-mac490bf-1-logs-archive-201606231244151.tar.gz 121939720 8 -rw-r--r-- 1 markneedham wheel 2510 23 Jun 14:00 foo/database-agent-mac5f094-1-logs-archive-201606231300189.tar.gz 121939706 16 -rw-r--r-- 1 markneedham wheel 5912 23 Jun 14:00 foo/database-agent-mac636b8-1-logs-archive-201606231300176.tar.gz 121934588 8 -rw-r--r-- 1 markneedham wheel 2895 23 Jun 13:44 foo/database-agent-macbb8e1-1-logs-archive-201606231244151.tar.gz 121934590 32 -rw-r--r-- 1 markneedham wheel 13427 23 Jun 13:44 foo/database-agent-macc8177-1-logs-archive-201606231244152.tar.gz 121934587 8 -rw-r--r-- 1 markneedham wheel 3882 23 Jun 13:44 foo/database-agent-maccd92c-1-logs-archive-201606231244151.tar.gz 121934611 8 -rw-r--r-- 1 markneedham wheel 3970 23 Jun 13:44 foo/database-agent-macdf24f-1-logs-archive-201606231244165.tar.gz
Or the ones modified more than 1 day, 5 hours ago:
$ find foo -name database-agent* -mtime +1d5h -ls 121879391 24 -rw-r--r-- 1 markneedham wheel 8856 23 Jun 11:49 foo/database-agent-mac19b6b-1-logs-archive-201606231049507.tar.gz 121879394 24 -rw-r--r-- 1 markneedham wheel 8772 23 Jun 11:49 foo/database-agent-mac1f427-1-logs-archive-201606231049507.tar.gz 121879390 24 -rw-r--r-- 1 markneedham wheel 9702 23 Jun 11:49 foo/database-agent-mac7e165-1-logs-archive-201606231049507.tar.gz 121879393 8 -rw-r--r-- 1 markneedham wheel 2812 23 Jun 11:49 foo/database-agent-macab7f1-1-logs-archive-201606231049507.tar.gz 121879413 8 -rw-r--r-- 1 markneedham wheel 3144 23 Jun 11:49 foo/database-agent-macbcbe8-1-logs-archive-201606231049520.tar.gz 121879414 8 -rw-r--r-- 1 markneedham wheel 3131 23 Jun 11:49 foo/database-agent-mace075e-1-logs-archive-201606231049520.tar.gz 121879392 8 -rw-r--r-- 1 markneedham wheel 3130 23 Jun 11:49 foo/database-agent-mace8859-1-logs-archive-201606231049507.tar.gz
There are lots of other flags you can pass to find but these ones did exactly what I wanted!
In the last few weeks – with the help of everyone in the WatchMeCode community slack – I’ve found a places where currying seems to be beneficial. One of those places is a replacement for a function’s .bind method.
What Does .bind Do?
In this example, I have a basic add function on which I call the .bind method. The first parameter – undefined, in this case – sets the value of “this”. The second parameter – 1 – sets the first argument that will be passed to the function when it is finally executed.
The result of the .bind call is a new function. When I call this function, it only needs 1 parameter to execute.
The general term for what just happens is “partial functional application”. That is, the function was partially applied with the .bind call to set the context and the first parameter.
The final execution of the function didn’t happen until later, when I invoked the function, passing in one more argument in this case.
This is a common pattern – I’ve used partial function application in a lot of code, over the years. But now, with currying in my tool belt, I see less need for this.Currying The Add Function
With currying, we can get the same effect as the partial function application from above, but without using the .bind method. The intermediate steps, though, provide much more flexibility than .bind does.
Let’s take the same add function, and manually curry it, as I showed in my video on the basics of currying.
In this example, there are 2 functions. The first function, add, takes a single parameter and returns the second function. The second function also takes a single parameter and then executes the addition, returning the result.
Both the .bind code above, and this code, show an “add1” method that is the result of the first operation. The both show the resulting function taking a single, second parameter to perform the calculation, as well.
I have effective produced the result of partial function application, using currying instead of .bind.
So, what’s the real difference? Is currying better than .bind? Why?A Functional Alternative
For the simple comparison above, there is very little in benefit to using currying vs .bind.
But there are 2 major improvements that currying offers over .bind.
- I don’t have to specify the context (“undefined”, in that example) when currying
- Currying can reduce the code by not chaining function calls
While you can .bind any function – including an already partially applied function – you end up with some rather ugly code with the .bind littered everywhere.
This example shows how you’re required to continuously pass the context parameter to the .bind call, even though it’s never being used.
The currying alternative gives you slightly less code, as well:
Here, the code is a little more succinct. The use of ramda’s curry method allows you to curry the same function that was previously used.
If you’re wondering about supplying multiple parameters, though, both the .bind and curried version can do that:
There’s very little difference in this code, when it comes down to it. Do you want to supply the “undefined” parameter, or add extra parenthesis?
All this of this leads to the question…Is Currying Better?
I don’t know if currying is “better” or “worse” or even “more flexible” than partial function application – at least not in these examples.
I think they can largely be interchanged, based on what you’re more comfortable using.
However, currying gives you options for additional functional programming tools and techniques.
From what little I know of functional code, it is common for composition, mapping and other tools to require functions only take a single argument. And in these examples, currying would likely be the choice to make it happen – though I bet you could make it work with .bind, as well.
For now, at least, I can say that currying does provide a functional alternative to the .bind method. And, frankly, I find it easier read the curried version of my code, when compared to .bind calls everywhere.Tweet
- Sponsored: 64% off Code Black Drone with HD Camera
Our #1 Best-Selling Drone--Meet the Dark Night of the Sky!
Often times, as I’ve been researching about agile methods and how to apply these to create real and sustainable change in an organization, I come across reference to the Agile Manifesto. I list it here today for those who are new to the field or who are getting back to the roots after trying a few things with different-than-expected results. It is an instrumental document. The values and principles listed here truly do shape the way agilists think and operate and to some degree or another the results appear to be better than before this founding document was introduced. So here is my “hats off” to this remarkable item which plays a pivotal role in cultural transformation.
The four key values are:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Personally, I find the first one the most meaningful of all. When we value individuals and interactions over process and tools we are truly improving in leaps and bounds in creating collaborative environments which are continuously improving.Learn more about our Scrum and Agile training sessions on WorldMindware.comPlease share!
The post Article Review: Thinking About the Agile Manifesto appeared first on Agile Advice.
With so many enterprises adopting SAFe over the years, we’ve learned what works, what doesn’t, and what the success stories have in common. One thing we know for certain—implementations that deliver results may vary somewhat in context and execution, but all share a common attribute; a workforce well trained and educated in SAFe practices, and a desire for continuous learning and improvement.
Experience tells us that face-to-face training is ideal, but realities in the field can sometimes make it difficult for folks to attend a public class. We get that, and that’s why we’ve provided this video tutorial: Leading SAFe® 4.0 Live Lessons: Leading the Lean-Agile Enterprise with the Scaled Agile Framework®.”
It bridges the gap for people who may not be able to initially attend the 2-day Leading SAFe certification course, but still need to gain the knowledge necessary to start or continue their Lean-Agile transformation by leveraging SAFe. The self-paced LiveLessons video format is ideal for busy professionals as it allows you to explore one topic at one time and then come back later and learn a different subject.
What you’ll learn
The course is delivered in nine lessons where I present high-level overviews, as well as specifics where needed, exercises to test the viewer on what they’ve learned, and at the end of the course, clear-cut steps to start the journey of transformation. After watching this video, viewers can expect to have an understanding of the Scaled Agile Framework; Lean thinking and embracing Agility: how to apply SAFe principles; how to plan, execute, and implement an Agile Release Train; how to build an Agile Portfolio; how to build really large systems with the Value Stream layer, and how to scale leadership to the next level of enterprise performance.
Fully updated to SAFe 4.0
If you’re familiar with the SAFe 3.0 version of this video, I can tell you (from sitting in front of a video camera for three days) that this is an entirely new video produced specifically for SAFe 4.0, and covers the latest benefits that can be achieved through the new Framework for software and systems-dependent enterprises.
More information and discount promotions can be found at scaledagile.com/leading4. There is also an option for enterprise licensing if you’re dealing with a larger scale training initiative.
We’re committed to providing these resources to the SAFe community, and welcome your feedback on the video, and your experience with this type of training.
Earlier this year, we published our first draft of the Essential SAFe® Big Picture via blog post. Since then, we have received lots of comments, from the blog, our classroom settings, direct customer and analyst feedback, and more. It’s compellingly obvious that this simpler, essential view is a clear aid to understanding the minimum roles and practices that are necessary to be successful with a SAFe implementation.
Simple is good. Feedback is good, too. To that end, we have now incorporated the input and present an updated version of the Essential SAFe® Big Picture:Figure 1. Essential SAFe: the core of the framework, critical to every implementation.
Here are the nine key elements of Essential SAFe; without which, an implementation of the framework really isn’t “safe”:
- SAFe Lean-Agile Principles. Lean-Agile principles provide the basis for every successful transformation and guide decision making as the process evolves and adapts.
- Lean-Agile Leaders. Successful transformations are based on educating management to become “lean-thinking manager-teachers”. Thereafter, they lead, rather than follow, the transformation.
- Agile Teams, Agile Release Trains, Value Streams. The Agile Release Train is a key building block of a SAFe enterprise. Trains are organized around Value Streams, and consist of Agile Teams. Teams use Scrum, Kanban and Built-in Quality practices to frequently produce integrated increments of value. DevOps practices close the loop on customer value delivery.
- Cadence. A standardized PI and iteration cadence is the heartbeat of every ART and Value Stream. Periodic synchronization of all aspects limits variance to a single time interval.
- Key Program Events. PI Planning, System Demo, and Inspect and Adapt assure that teams plan together, implement and demo together, and routinely improve their processes.
- IP Iteration. The Innovation and Planning iteration is like extra oxygen in the tank: without it the train may start gasping under the pressure of the tyranny of the urgent, a plan that forgives no mistakes, nor provides dedicated time for innovation.
- Critical Roles. Product Management, RTE, and System Arch/Eng— provide content and technical authority, and an effective development process. Product Owners and Scrum Masters help the teams meet their objectives. The Customer is part of the Value Stream, and is integrally engaged throughout development.
- Vision and Backlog. Vision, backlogs and economic prioritization deliver business results by assuring that the teams are building the right thing.
- Architectural Runway. Architectural runway provides “just enough” technical enablement to keep program velocities high, and avoid excessive redesign.
Of course, we are still open for feedback, so feel free to comment away. In addition, I think this is where we are headed next:
- Create a guidance article for Essential SAFe, so it can become a permanent part of the knowledge base
- Over time we will make the picture in the article clickable, allowing the viewer to navigate to a specific article from there
- Provide an Essential SAFe® poster PDF for download
- Incorporate this simpler thinking into some future version of SAFe (yes, @Chris, we really did say that …)
Also, Inbar is presenting Essential SAFe® at Agile Israel this week. We will share his presentation materials at some point soon. I’ll also be scheduling a webinar on the topic, probably in August. There I will discuss—not only what is essential in SAFe®—but also how other SAFe® constructs can be adapted to best fit your enterprise context. The link will be available soon, so stay tuned for that.
Please share your thoughts in the comments below. Without your input, there’s no “C” (and therefore, no “A”) in our PDCA cycle. Thank you and be safe, essentially speaking…
-Alex, and the Framework team: Dean, Inbar, Richard