Benjamin Day
Author, Trainer, Developer
Actions
Benjamin Day is a consultant and trainer specializing in software best practices using Scrum with Microsoft’s DevOps tools. Ben’s main areas of emphasis include Team Foundation Server, Scrum, software testing, and software architecture. He is a Microsoft Visual Studio ALM MVP, a certified Scrum trainer via Scrum.org, and a speaker at conferences such as Pluralsight Live, TechEd, and VSLive. When not developing software, Ben’s been known to go running and sea kayaking in order to balance out his love of cheese, cured meats, and champagne. His online courses are available at http://www.pluralsight.com. He can be contacted via http://www.benday.com.
Words for Leaders
I'm sure you've heard that before: words matter. But finding the RIGHT words can be tricky. How do you find the right words? If you're a leader -- dev lead, architect, manager, scrum master, executive -- how do you choose words that inspire people to follow you? How do you choose the words that help you to lead organizational change? How do you choose words to lead when things aren't going well?
In this session, Ben will show you how use linguistic frames to lead change, lead through adversity, and rebuild trust & credibility in your teams.
Use GitHub Actions to Build & Deploy ASP.NET to Azure
Let’s say you’re using GitHub to develop your ASP.NET Core app. GitHub is great for source control…but what about building and deploying? Well, this is where GitHub Actions help. GitHub Actions lets you use YAML to create continuous build and continuous deploy (CI/CD) pipelines for your apps.
In this session, Ben will show you how to use GitHub Actions to build and deploy an ASP.NET Core / EF Core app to Azure. We’ll start with the basics of building your code and then gradually move into more complex scenarios such as using SQL Server Docker containers to test our code, use EF Core migrations to deploy database changes, populate “lookup” data in SQL Server, and edit settings in appsettings.json. We’ll also talk about how to handle multiple environments (dev, test, stage, prod, etc) and deployment approvals. Along the way, Ben will cover how to write and use custom GitHub Actions to streamline your pipelines.
Unit Testing & Test-Driven Development (TDD) for Mere Mortals
Unit Testing and Test-Driven Development (TDD) arguably mean the same thing. They (both describe a way of developing software so that you always know whether or not it’s working. You write little chunks of code (unit tests) that verify the objects and methods in your application’s code and it helps you make sure that you have PROOF that your code works. It also makes your code easier to maintain and easier to refactor. Plus, while it might not feel like it right away, writing using tests makes your development process go a lot faster.
In this session, Ben will discuss what unit testing & TDD are all about, why you should care, and how to do it with C# and ASP.NET MVC. Along the way, expect to hear about “designing for testability” and some really helpful testability design patterns like the Strategy, Repository, and Adapter patterns.
Top 10 Ways to Go from Good to Great Scrum Master
The Scrum Master role in an organization can be difficult. You live between a rock and a hard place. You're influential but you probably don't have any real power. You're not a project manager but you're on the hook for delivering. You're asked to promise dates when the best you can give is a forecast. You're long on responsibility and short on power. (Awesome.) But you do it because it's a great job, right? There's nothing like helping your team come together and deliver actual working software.
It takes a special kind of person to be Scrum Master -- Nerves of steel, a lot of finesse, and some ridiculously great people skills. It's a lot of knowing what to look for and knowing how to fix it. Even better if you can anticipate issues and get in front of them. What can you do to help keep everything on track? How do you have the difficult conversations when things are 'sub-optimal'? From that lazy guy on your team, to the Product Owner who doesn't like to estimate, to you losing your mind because you're always picking up the slack. How do you help your team to solve problems and really sing? You're a good Scrum Master. Come find out how to be great.
The Human Side of Agile & DevOps
Software delivery would be so easy…if it weren't for all the humans. The technical stuff is easy, but it's all the pesky people that need convincing and explanations and reasons for why they should follow you down the Agile and DevOps road. And then, as a leader, how can you tell if your teams are having problems and what do you do about it? How do you know if your developers are even productive? In short, what do we all need to know about and why do we care?
In this workshop, we'll connect the strategic, human-oriented reasoning to the tactical 'nuts and bolts' of a successful Agile and DevOps-oriented organization. We'll discuss Agile, Scrum, and DevOps ideas but instead of focusing on any particular technology, we'll focus on how to help the humans to be productive.
Scrum Under a Waterfall
[NOTE: I'd be happy to rename this talk to 'Agile Under a Waterfall' if you think that Scrum is too specific.]
It would be so easy if everyone at our companies just used Scrum -- or at least Agile. No one would lean on the team for dates and deadlines, and everyone would know that change is a good thing. It'd be one great big happy project management family. But let's face it -- an all-Agile organization isn't always possible. Maybe you have a Project Management Office (PMO). Maybe you work for a government contractor. Maybe you have regulatory requirements. Maybe you're the first Scrum/Agile project at your company. Maybe your company simply *likes* it this way. Whatever the reason, Agile teams frequently report into Waterfall organizations.
Your team thinks "backlog" and your bosses think "project plan." How do you make it work? How do you ensure communication and foster trust between the two groups? How do you bridge the project management impedance mismatch? You need to find a way get everybody to ‘play nice’ so they can do their jobs.
In this session, we’ll drill into the details of the project management impedance mismatch and talk about strategies to improve communication and delivery when you need to make Agile work inside a Waterfall-centric organization.
Scrum Trek: The Next Generation – Warp Speed with Flow Metrics
Scrum. The final frontier. These are the voyages of the Scrumship Agileprise. (groan) Ok. Enough Star Trek. Scrum has been in use for project management for at least 20 years now. It still works great but like all things in technology, there are changes, improvements, and new techniques that can make it even better and more effective. For example, what if I told you that you didn’t need to estimate anymore? Or that you could skip those awkward conversations with your bosses trying to explain the meaning of Story Points and velocity?
Enter the concept of ‘flow’ and ‘flow metrics’. These things make Scrum easier. Described briefly, you have things to work on. Work starts on those things. Work finishes. Measure how long that takes and how many things you got done. Make sure that things are getting done. That’s pretty much it.
In this session, Ben will talk about how you can upgrade your team’s Scrum practices using flow and flow metrics. Along the way, expect to hear a lot about Little’s Law, Work in Progress (WIP), Cycle Time, and Throughput. The goal of this talk is to show you how to predict the future – how long will things take and how much can you get done – using statistical forecasting, throughput, and Monte Carlo simulations.
Scrum is Not the Point: Focusing on Done & Delivery in Scrum
Scrum is not the point. I know. That’s an odd thing to say in the abstract for a Scrum workshop, huh? It’s true though. The Scrum process is a tool for helping to deliver great, done, working software. The point is delivering the ‘done software’ not simply doing Scrum.
In this hands-on workshop, we’ll teach you Scrum from a whole new perspective. We’ll start by reviewing the role, events, and artifacts of Scrum with an emphasis on how those things help you to actually deliver software. From there, we’ll talk about ways to get more out of your team by minimizing work in progress and focusing on decreasing your batch size. Along the way, we’ll talk about communication strategies, metrics, and how to predict the future.
If you’re new to Scrum & Agile or even if you’ve been doing Scrum for years, this workshop will give you what you need to deliver using Scrum
Rebooting Your Agile Transformation using Empathy
Let’s face it. Not every company makes the switch to Agile on the first try. A lot of times, it seems like you make the right moves but little or nothing actually changes. It’s another non-transformational agile transformation. If you’re the leader of this organization, how do you fix it? Well, I’ve got good news and bad news. The good news is that it’s probably not a technical problem. The bad news is that it’s probably a corporate culture / people problem. This session will discuss those common people and corporate culture problems that slow or stop your agile transformation. For each of these problems, we’ll discuss why they’re slowing you down, what to do about them, and how to monitor them as your lead your org to Agility.
Real World SQL Server Data Tools (SSDT)
SQL Server Data Tools (SSDT) help you manage your database schemas and let you do it under source control. Great. Got it. But every demo you've ever seen is just "Hello World". What if your databases are complicated? What if your databases have been around for a while and they're filled with dead, garbage SQL structures? What if your databases reference other databases? How about managing lookup values and doing automated deployment? This session will go beyond the basics and show you how to use SSDT in complex real-world scenarios. From taming that old legacy database to representing complex relationships between databases to deployment scenarios -- this session will teach you how to really use SSDT to make your coding and deployment life better.
Real World Scrum with Azure DevOps
You’ve got Azure DevOps and you’re looking to do Scrum. Ok. Great. Now what does that mean? What does Azure DevOps actually do to help your Scrum team(s) run more efficiently? If I’m the Scrum Master, what should I be coaching my team to do? What can you do to help get to high-quality, “done”, working software faster? How does Azure DevOps make anything in Scrum easier? How does it help me to maintain my Product Backlog?
In this session, Ben will address these from the perspective of a technically-minded Scrum Master. He’ll show you how to address five of the main pieces of running a Scrum project using Azure DevOps: Product Backlog Management, Sprint Planning, the Daily Scrum, streamlining the Definition of Done (DoD), and streamlining Sprint Retrospectives. Along the way there will be plenty of talk about work item management, reporting & metrics, branching & merging, QA testing, and automated builds.
Non-Useless Unit Testing Entity Framework & ASP.NET MVC
We all know that we should be writing unit tests for our applications. But what do you do about that database code? Data access code is FAMOUS for wrecking our dreams for a clean, unit testable application. Add ASP.NET MVC and application security into the mix and those unit testing dreams just drift further and further away.
It doesn't have to be that way. Heck! It's not even that hard to do! It just takes a little bit of planning and some basic design patterns. In this session, we'll go through how to design and build your ASP.NET MVC & Entity Framework applications so that you've got a clean, maintainable, and unit testable design.
Integration Testing ASP.NET Core with WebApplicationFactory
If you want your development life to be easy, you've got to have automated tests and unit tests are the best option. Or are they? In ASP.NET Core, there are some things that unit tests just can't easily handle and integration tests come in. Or maybe you never wrote unit tests in the first place and now you need some automated tests. ASP.NET Core has this awesome utility class named WebApplicationFactory and it makes writing integration tests against your application code a whole lot easier.
In this session, we'll start by talking about the differences between unit tests vs. integration tests and what each type of test is good for. Then we'll do a quick tour of WebApplicationFactory and HttpClient. After that, we'll dive in and start writing integration tests to do handy things like making sure that your dependency injection configuration is right, test your MVC and WebAPI routes, test your WebAPI controllers, and test your MVC controllers. Plus, Ben will show you some tricks that'll make integration testing easier such as directly accessing EF Core from your tests and (gasp!) turning off ASP.NET security from your tests.
Implementing Security in ASP.NET Core: Claims, Design Patterns, and Policies
There are two sides to security: Authentication and Authorization. Authentication is logging in to an application and establishing who you are. Authorization is figuring out what the user can do and making ensuring that they can’t do things that they aren’t supposed to.
I don’t know about you but sometimes it feels like everyone focuses on authentication and forgets about the authorization stuff.
In this session, we’ll focus on implementing Authorization in ASP.NET Core MVC and WebAPI. We’ll talk about claims-based security in ASP.NET Core, writing custom ASP.NET Core Middleware, authorizing using ASP.NET Policies, Authentication Requirements, and Authentication Handlers. Along the way, we’ll talk about how to use the Strategy Pattern to encapsulate authorization decisions in your app so that your security code stays clean and maintainable.
I Love YAML: Using Azure DevOps to Build and Release to Azure
We all know that Azure DevOps lets you create build and deployment pipelines – aka. Continuous Build & Deploy. The latest version of these Azure DevOps pipelines uses YAML and – well, if you’re like me, YAML looks scary. Once you get going with it, it’s not so bad.
In this session, Ben will show you how to use YAML-based pipelines to build, deploy and configure an ASP.NET Core / EF Core application into Azure. We’ll start with the basics of YAML pipelines, the basics of building your code and then gradually move into more complex scenarios such as using SQL Server to test our code, use EF Core migrations to deploy database changes, populate “lookup” data in SQL Server, and edit settings in appsettings.json. We’ll also talk about how to handle multiple environments (dev, test, stage, prod, etc) and deployment approvals. Along the way, Ben will cover how to write and use custom extensions from the Visual Studio Marketplace to streamline your pipelines.
How to Fix a Failing Project
We’ve all been there – you’re on a project and it just isn’t going well. The customers are unhappy. The stakeholders are unhappy. Management is unhappy. And the team is REALLY unhappy. You’re on a failing project.
In this session, we’ll discuss why projects have problems, how to spot those problems, and how to recover and those project back on the right track.
Going ‘Off-Road’ with Azure App Service Security
Azure App Services have a great feature that’s nicknamed “Easy Auth”. It’s also known as Azure App Service Authentication & Authorization. It lets you configure your app so that users can log in using Azure Active Directory (AAD), Facebook, Google, Twitter, or Microsoft Account (MSA). It’s great because all the difficult authentication and identity stuff is handled by Azure without you having to code anything in your ASP.NET Core MVC or WebAPI app.
In this session, Ben will should you the basics of Azure “Easy Auth” – how it works, why it’s helpful, and how to set it up. After that, we’ll go ‘off road’ to start extending “Easy Auth” in order to handle more complex scenarios such as enabling multiple authentication providers simultaneously, writing custom ASP.NET Core Middleware to implement claims-based authorization in your application, using ASP.NET Core Policy-based authorization in your app, and how to create a “development mode” version of security that you can use on your local machine without Azure.
Get Good at DevOps: Feature Flag Deployments with ASP.NET & WebAPI
Want to get good at DevOps but deployments are getting you down? Is the code integration process just plain driving you crazy? Well, maybe it’s time to try out feature flags (aka. “feature toggles”). Feature flags are how sites like Visual Studio Team Services, Bing, Google, and Facebook do their deployments – and frankly, it makes their lives a lot easier than yours.
The idea is simple. Write a feature (or version of a feature) so that you can turn it on/off using a configuration setting. That one little design decision simplifies your deployments and lets you do a whole lot of different things like private betas, A/B testing, and feature rollbacks. But best of all, a whole lot less stress because you simply stop worrying so much about how you integrate your code.
Great. So how do you do this with ASP.NET, WebAPI, and JavaScript? Well, it’s not always easy. In this session, Ben will discuss why you should care about Feature Flags, what it lets you do, how it’ll help your Scrum teams, and also show you how to actually implement them in your applications.
From Han Solo to Jean-Luc Picard: A Nerd's Guide to Technical Leadership & Career Growth
Whether you realize it or not, every company is a software company and, for all the computers, software is a human endeavor. So how do you strengthen your leadership skills to evolve and compete?
In this session, we're going to talk about technical leadership and career growth using two fictional characters from sci-fi: Han Solo, the heroic leader of a very small team and Jean-Luc Picard, the understated & thoughtful (but perhaps more boring) leader of a large organization. Along the way, we'll talk about the strengths and weaknesses of each, the idea of leader vs. manager, and the role of fear, motivation, and delegation inside of tech organizations. (Oh and also why Han Solo would stink at DevOps.)
Careers have an arc. In software development, it often goes something like junior developer to senior developer to tech team lead. It might even continue on to director of engineering, CTO, or even CEO. But the skills and habits that helped us succeed in one role might not help us in the next. Which one you are determines much of what you can achieve.
Entity Framework Core for Enterprise Applications
What do you do when your simple Entity Framework app isn't so simple anymore? The entity relationships are starting to get complex. You're getting worried about performance problems. Can you even use Entity Framework in a high-performance, scalable web application?
In this session, we'll go beyond the simple Code First entity framework cases and start get into more complex class designs and relationships. We'll talk about how to handle the sticky issues around lazy-loading, concurrency, cascading deletes, occasional connectedness, and performance testing. Plus, along the way we'll talk strategy for DevOps, stored procedures, unit testing, and incremental deployment, too.
DevOps with ASP.NET Core, EF Core, "TFS2019", & Azure DevOps
DevOps is all about software delivery. Create an automated, streamlined path from development to testing to deployment — that’s basically DevOps. Great. So how do you do it with ASP.NET Core and Entity Framework Core? How do you deploy the SQL Server schema? How do you deal with EF Core schema migrations? What about unit testing? How do you handle database connection strings? What about deployments to Azure? Don’t worry. We’ve got ya covered. In this talk, Ben will walk you through creating an automated DevOps flow using Azure DevOps Server (aka. TFS2019) or Azure DevOps that will allow you to build, test, and deploy your ASP.NET Core & EF Core application.
Database DevOps: The Ugly, Unloved, and Essential Part of DevOps
Here’s the dirty little secret of DevOps: If you don’t do automated deploys both your application code and your database code, you’re missing the point. You need to deploy both but why does everyone only focus on the application code? Because it’s easy to do application code deployment. Database code deployment is HARD.
In this session Ben will show you how to include your database changes into your VSTS/TFS release pipelines using SQL Server Data Tools (SSDT) and Entity Framework Migrations. Ben will also discuss his undying hatred of stored procedures and he’ll almost definitely run his mouth about why he thinks relational databases becoming unnecessary.
Continuous Deployment to Azure using Azure DevOps Pipelines
Continuous Deployment basically does away with the idea of a release cycle. Well, that's not exactly true. Instead of doing releases every month or every quarter, you end up doing releases multiple times per day. Whenever features are ready, ship them. In this session, Ben will talk about how to do this with Azure DevOps builds and releases deploying an ASP.NET Core / Entity Framework Core app into Azure. Expect to hear about how Feature Flags can make your life easier, where QA testers fits in to this stuff, and also how to think about database schema changes.
Codespaces: Seriously, You Can Develop in a Browser
Codespaces from GitHub lets you develop in a browser. Seriously. In a browser. And it’s great. It’s amazing. It’s not a toy either – it’s for real actual work. It’s basically Visual Studio Code running in a browser using development resources such as SQL Server and .NET Core running in the cloud.
In this session, Ben will show you how to use Codespaces to develop and debug an ASP.NET Core / EF Core application. Along the way, we’ll talk about how to customize your Codespace using devcontainer.json and its Dockerfile so that you can add everything you need in order to run, dev, and debug your ASP.NET Core app. We’ll even get SQL Server running in Codespaces! Trust me. This is going to blow your mind!
Coaching Skills for Scrum Masters & The Self-Organizing Team
Scrum works best with — arguably, requires — a self-organizing team. If you want a high-performing and self-organizing team, it helps if your Scrum Master thinks like a coach instead of a manager. In this talk, Ben will discuss why this is true and will give you specific Scrum Mastering tips on how to think and act like a coach.
Azure App Service Security for ASP.NET Core MVC and WebAPI
Azure App Services have a great feature that’s nicknamed “Easy Auth”. It’s also known as Azure App Service Authentication & Authorization. It lets you configure your app so that users can log in using Azure Active Directory (AAD), Facebook, Google, Twitter, or Microsoft Account (MSA). It’s great because all the difficult authentication and identity stuff is handled by Azure without you having to code anything in your ASP.NET Core MVC or WebAPI app.
In this session, Ben will should you the basics of Azure “Easy Auth” – how it works, why it’s helpful, and how to set it up. After that, we’ll go ‘off road’ to start extending “Easy Auth” in order to handle more complex scenarios such as enabling multiple authentication providers simultaneously, writing custom ASP.NET Core Middleware to implement claims-based authorization in your application, using ASP.NET Core Policy-based authorization in your app, and how to create a “development mode” version of security that you can use on your local machine without Azure.
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top