How do we handle removing the automatic pluralization of table names in Entity Framework Core 2? It’s easier than you think!
This past week I had the good fortune to be trained on Scrum@Scale, a framework for scaling Scrum, by the creator of Scrum himself, Jeff Sutherland. It's not a prescriptive framework like some of the others. It's built on true Scrum and it reminded me how a lot of the problems companies face is because they aren't even doing basic Scrum right. So when they do scale, they scale up a broken system. If you start with garbage, you get more garbage.
What's great about training with Jeff is that he has so much scientific data and case studies to back it all up. Several of these studies have proven that you can double velocity (you read that correctly!) by using Scrum patterns for teams.
Here are some of the patterns for doubling velocity:
- Small teams
- Stable teams
- Dedicated teams
- T-shaped team members
- Daily Scrum
- Interrupt buffer
- A Ready backlog
- Fix bugs found within a day
- All testing completed inside the sprint
All of these have data points and studies and research to back it up. I'll cover just a couple below.
Let's look at one of the patterns, dedicated teams. A study by Rally Software (before they were bought) showed a huge increase in productivity when team members were dedicated. Teams that had members 50% dedicated produced around half as much as when teams had members 95% or greater dedicated.
If we look at Brook's law on cost and time to deliver based on the team-size there is a huge difference. Look at the team size of 10 people vs 6, vs 4 and the cost they incur. The Team Size of 6 was able to deliver in twice the time of a team of 10 or 17.
Swarming & Context Switching
Let's just look at one more - swarming, and focusing on one or more projects.
Working on 5 projects at the same time can yield up to 75% waste - that is a lot! Most people have what, an average of 3 projects? That's still 40% loss! This loss necessitates more people to make up the difference. Save money, use fewer people to do the work in a less time.
There are many more studies and patterns that increase a teams's velocity and reduce the company's cost, proving that implementing Scrum correctly is the only way to get ahead of your competition. As Jeff likes to say. "Change or die." Change the way you do work, or your competition is going to take you out.
We often get asked what the differences are between a native mobile application and a hybrid one. I was starting to put down some notes on the topic when I came across an article that summed up my thoughts. So I wanted to go through it and mention some key points.
Scrum isn't easy, but it's effective. One of the things that teams struggle with is a way to automate their testing and learning techniques like Test-Drive Development or Behaviour-Driven Development. Both which can be implemented in both the back-end and the front-end code.
One team, I work with also automates the UI testing. One tool they use and they include as part of their Definition of Done for each feature is building a test automation using...
I just recently updated my Mac to Sierra and Xcode 8.2.1 and right away had issues connecting to the Mac using the Xamarin Mac Agent from my Windows PC. I made sure that the versions of Xamarin on the Mac and Visual Studio on the PC were the same version but kept getting the error "Xcode license must be accepted in order to be connected and working against the Mac".
This is my second real world BDD examples that we use here at Clearly Agile. I've been given permission to share this piece of code from the client.
In this example, we have a scenario where a user can create something called a "Project" and it has to have a correct "Open Date". Which is when the Project is complete.
Over at toggl, they have a great infographic showing how you might build a car using waterfall vs. scrum vs. kanban vs. lean. We liked it a lot that we wanted to share... There're a couple of spots I want to point that we liked that I pointed out...
The Professionals are organized, communicate regularly, and go above and beyond, Amateurs do not. Now, the term "Amateur" here sounds condescending, but it's not meant to be. It is a state based in two orders: the persons' mindset, and secondly, what they physically can or cannot do. This concept also extends to programming, where we encounter the two types: Amateurs and Professionals.
In addition to the Amateur and the Professional types, there is a third type, verbosely named 'the Amateur Who is Called a Professional'. This third type has four subsets that are worth mentioning.
This is a great article on building a .Net application on the MAC OS with the new ASP.NET 5, cross-platform framework.