>> Hello everyone, welcome to Less Code, More Power.
We have an amazing episode all
on Application Life-cycle Management.
That is all about solutions.
If you're aware of the Dataverse or Dataverse for Teams,
you're going to learn all about how to create
and export and import solutions. So stay tuned.
[MUSIC]
>> Hello everyone, welcome back to Less Code, More Power.
I'm Sarah, and my co-host is
>> Dona. Hello.
>> Hey, and we're so excited.
We'd been wanting to do this show for
so long and we finally pinned
down Phil and Marc, literally to say,
we need you to come on the show and
talk to our audience around ALM.
Welcome to the show, Phil and Marc.
>> Thank you.
>> Thanks for having us.
>> Yeah, no problem. It's our pleasure.
Could you just briefly just
give us the elevator pitch of who you are,
what you do, and why ALM is awesome?
>> Phil, why don't you go first?
>> My name's Phil Topness. I work at
Microsoft on the Power CAT Team,
it's the Power Apps Customer Advisory Team.
There's a large global deployment of Power Apps or Power Platform.
We're involved in it in one way or another.
A big part of that is Application Life-cycle Management.
For these large deployments,
how do you reliably control
your app and manage the developments getting done on it
and move it to a test environment or to
a prod environment or to one of many other environments.
In short, that's what we're going to be talking about today.
>> I'm Marc Schweigert. I'm also on Power CAT.
I've been doing ALM with
Power Platform since before it was Power Platform,
and so looking forward to having this conversation.
>> I do have to say I do love the matching Power CAT shirts.
I like how I can't point at both of you at once.
>> This is embarrassing, Dona.
We did not plan this at all.
>> Yeah, I know. I do love the matching Power CAT shirts.
That's adorable.
>> I think it is planning.
I feel that they planned more than we do, Dona.
>> For someone in the fashion industry to
compliment us, that's pretty good.
We don't get that all the time.
>> [inaudible] I was wearing this shirt. What I
was wearing which I thought was awkward.
>> In terms of ALM, guys,
one of the things I really want to
make sure our audience know right
now is ALM isn't just for if you're doing Power Apps.
Also, if you've been working in this industry
even for like over 10 years,
ALM, it's evolving, it's changing.
There's investments in this arena.
Phil, I know that you're going to showing
us a lot of other stuff in our first part.
This is part 1 and it's going to really show our audience
an overview of ALM and explain from the ground up what it is.
Then Marc will be taking the lead on the second part of
the series to really see how you can make ALM easier.
Do you want to take it away, Phil?
>> Yeah, the way I think about ALM and here's how
I categorize it my mind and we've all done this.
You put your app,
you give it to a tester, the tester
goes to work and they find a bug.
>> Hey, Phil, can you tell everyone what ALM is before you start?
>> Sure, yeah. ALM is Application Lifecycle Management.
It's how do you maintain and manage all of the work that's being
done on your app from when it's
created and all the developers that are collaborating on it.
Then as it moves through the test process and through production,
and then continually gets updated from over the span of its life.
Its entire lifecycle.
>> Awesome.
>> It's good?
>> Yeah.
>> Sorry. I rudely interrupted you.
You're like, so you give your work to your tester.
>> Yeah. You give it to your tester,
your tester finds a bug. You go back to your desk.
You try to find the same bug and you start writing
an e-mail with those five words that each of us have typed,
it works on my machine, right?
>> Yeah.
>> That's what we're trying to fix.
>> Yeah.
>> Or another way it shows up
is it takes so
long to deploy your app to test or deployed to prod that you wait.
So you've got functionality that your tester hasn't
seen or worse that you don't have in production.
There's this tweet, I like to refer to that,
on the screen here, if you look,
this is how one of our peers at
Microsoft talks about or
thinks that the deployment process looks like.
This has 6,000 retweets, 22,000 likes.
If this is what your app deployment process
looks like, there's a problem.
You have functionality that you are holding back and not giving to
your tester or worse not to your users.
>> I can't do that last bit,
that flip that they do on the screen.
>> This is importing the solution.
Wait for it, and pick the landing.
This is a common enough problem that
people believe this is what the deployment process looks like.
We're going to talk today about,
how do you manage that from a manual perspective,
from an automation perspective,
and then Marc is going to talk about how do we put
a layer on top of this that makes it easier for everyone to do.
>> That sounds amazing. I think we've all
felt that happiness to that person in that video,
like was showing when we've successfully deployed something.
>> Yeah.
>> Yes. We're like fingers crossed,
elbows crossed like this.
>> I think one of the things that's interesting about ALM
in the context of Power Platform too,
and I think in general with ALM,
is that if you don't need it, don't use it.
But I think most people realize they need it once they
start experiencing what Phil just showed in that video.
There comes a point where you
start to feel like you need something
more than what you're currently doing with what you're building.
That's how we think about ALM with Power Platform is it really is
intended to be able to support everything
from enterprise-grade ProDev ALM,
all the way down to citizen developer building a bunch of stuff,
putting it in something, and
moving it from one environment to another.
If you think about it, that's a hard challenge
to meet both ends of that spectrum.
Hopefully, we'll show some things that help people realize that
ALM is maybe a little bit more approachable than they think it is.
>> Marc, that such an amazing point.
Phil, before you dive into the depths.
Marc, could you explain
to them that ALM is isn't something you just
choose to do when it gets to that point.
Like there are different versions of ALM,
like you said, like skimmed-down version.
But you can't just
implement it when it suddenly becomes a nightmare, right?
>> That's right, because if you get to that point,
then you've got a lot of work to do to get
to a place where your ALM processes are healthy.
Understanding ALM upfront, understanding
when it makes sense to introduce ALM in your low code development,
I think is really helpful to try to understand because
then you can set yourself up for success much earlier on.
>> Perfect.
>> I had a customer just last week,
he built a Power Virtual Agent,
total citizen developer, he is like,
"I built this bot, our call centers going to use this to answer
their questions but I
need to move it to another environment how do I do it?"
Solutions are the answer,
even for someone that has never
touched Power Platform before built
their first bot. It's easy to do.
>> I would say we want to encourage people to
start looking at solutions and hopefully
feeling that solutions aren't as
scary as maybe some people think they are.
Because the more you're embracing solutions now,
the better off you'll be in the future as
your applications become more complex.
>> Definitely.
>> Absolutely.
>> Love it. Brilliant. Phil, show us the way.
>> Show us something. Show us.
>> On my screen here, I've got
an app that I'd been building for this.
It's my Cap The Cat app.
What it does is it allows us to imagine
Sarah in different types of head gear or hair styles.
>> Cap The Cat.
>> I know, this is amazing.
>> It was almost Dress The Dona
and then I decided that Cap The Cat
was probably a better way to go.
>> That's probably better.
>> I built this without solutions in mind,
and now I realize that this probably
has a potential millions of users, right?
So I need to move it into a different environment.
Let's put it into solution.
Here back in the maker area,
I click on "Solutions" and I can create a new solution.
We're talking about solutions,
but solutions are really just kind of
a folder to put everything that you can do in the platform.
I'll do Cap The Cat, give it a publisher, and create.
>> I think that's going to be my new Twitter handle,
I think I might change that.
>> Cap The Cat.
>> It's a good handle.
I like this. What did you say?
>> Here in this solution now,
I can add pretty much anything I can do in Power Platform.
Let's add in that app that I created,
Cap The Cat, and then now it's in a solution,
and so I can export it and easily move it between environments.
I've got another app that's a little more complex,
if you want to see that, that shows more of the capabilities.
It's also cat themed because that's how we roll here.
This is cat fisher,
and what it does is it loads an image of a cat,
it allows you to name it,
rate it, and then it stores them all in Dataverse,
the images and all that.
>> I love that.
>> That loading wheel is amazing.
>> Is that a loading wheel?
>> If we can make this available.
These images, just so you know,
this is actually where the biggest time suck is here.
They're all AI generated.
They're AI generated images of cats.
Here is AI generated images of humans.
I could spend an hour hitting F5 on this page.
That person doesn't exist,
it's an AI, so crazy.
>> That's amazing.
>> It's amazing.
>> What this app does is it
basically saves you the time of hitting
refresh on this cats [inaudible].
>> Dona's just dying.
I think you had Dona on the first app,
now the second app she's just like, "Oh my God."
>> I want that cat wheel thing because I'm putting
that in every app from now on and people are like,
"What is that?", We're like, "You're welcome."
While they're waiting, they can be entertained.
>> Dona, would you like to name this guy here?
Do you want to actually be a user remotely?
>> We should call him Monster.
>> Monster.
>> Everyone else would like Fluffykins, I'm like Monster.
>> Monster.
>> I think I do have a fair number of Fluffykins in tests in here.
>> Exactly. You'd have a lot of Fluffykins,
but I like Monster.
>> Some AI mistakes in here too, like this one that says.
>> Nooo. There's one called Nooo.
>> Nooo, yeah.
>> This is awesome. You're storing in Dataverse, that's so cool.
You made a solution,
Dataverse-backed and now you can move it anywhere.
>> Now I can export it and move it.
I think what you just brought up,
Dona, is an important part here.
I've also got a Dataverse table in here,
so it's not just about moving your app,
it's about moving your schema and
the relationships you have to test to prod,
which is pretty easy to do here and less easy to do in other ways.
I've also got an environment
variable because when a want a cat gets rated 5-stars,
it sends out a kitty gram e-mail,
and so this allows me to send
it to a QA address and my QA environment,
production address and my production environment.
>> Five star cat.
>> Five star cat, yeah. For notable cats.
>> Notable cats.
>> It's got a model-driven apps, so I can maintain all the data.
Security role because I've got
a custom table in to put security down.
This is like everything you would need for a functional app.
When you need to move it, publish changes,
and that makes sure that everything that you've been working
on gets pushed out to the solution you're about to create.
Click "Next" once it's done and we'll create a solution file,
which is really just a zip file of all the configurations.
I'll hit "Export" and in a moment it's going to
download the solution file
and I can move it into my test environment.
>> That's awesome.
>> I love it.
>> Here are my test environment, if you
want to see, I'll import that there,
and this is how I would deploy then that app to test.
I can go browse for the solution file, which, again,
is just a zip file full of the configurations,
and you'll see because I was using connection references,
they allow me to connect it differently in dev, test, and prod.
When I hit "Next", it allow me to connect to Dataverse and to mail
using connections that are specific to my test environment in
this case and then import it,
and that'll connect up my flow to those connection references.
For Canvas apps, I still need to connect them in,
but it's mostly deployed to test at that point.
>> Phil, we don't want to
go too deep in the complexities of solutions,
we'll probably do another video on that in the future,
but could you just briefly explain the difference
to the audience on unmanaged and managed solutions?
>> Yeah, the short way to think about it is
unmanaged solutions are like source code,
so you'd really only use that in
your development environment when you're working.
Managed solutions are for test or production environments.
One of the most important differences between
these is an unmanaged solution,
when you delete that solution,
all of the underlying components stay in your environment,
but for a managed solution, when you
delete it, it's fully removed.
Like for test environment, you want to be able to fully remove
one version maybe and then bring it another version.
Managed solutions allow you to do that.
>> Brilliant.
>> Very cool. I did not know about unmanaged solutions.
That's new information for me.
>> That's a good thing. Don't even
think about unmanaged solutions,
Dona, think about managed solutions.
>> Exactly. I'm like, why would I
do unmanaged solutions? No, I wouldn't.
>> That's why it's the default.
>> This is is an epic. This is so cool.
We're at that time in the show,
thank you so much for showing us,
it's almost like the ALM 101, right?
Phil, what's your homework for this part 1 of the series?
For everyone that's watching,
we do have part 2, so if you're watching this,
either if you're watching this live as it's being released,
it's going to be a week in the future,
if you're not, then go ahead and click it straight away.
Marc's going to really show you the process
that Phil just did and show you how to automate that,
but for right now, Phil,
what would be your homework for
those people that are maybe just learning how to
use solutions or maybe haven't
been comfortable with solutions in the past?
>> I've got some links up on the screen.
The first one is just the overall Power Platform ALM homepage,
which has links into
resources about solutions as well as automation,
and then you can automate each one of these
in Azure DevOps and with GitHub Actions.
There are hands-on labs that you can use to
learn that and, basically,
go through the same process you just saw me do manually,
but have Azure DevOps do it for you or have GitHub do it for you.
Both exporting, putting it into source control,
which is something that you can't do manually, and then deploy.
These links will take you to those labs.
>> Those are actually great. I've actually
done them myself as well,
so those are such great links,
so I can't recommend them enough.
This is amazing. Thank you.
Thank you so much for your time. This is great.
>> That was a great [inaudible] show.
>> Thank you for teaching us this. This is fantastic.
I'm absolutely going to create
a solution and export it because
right now my method is so sketchy.
It's like stored on a share, link to it.
Maybe you'll get all the stuff including the database tables.
No, I don't think so. This is fantastic. Thank you so much.
>> There's a better way, Dona.
>> There's a better way, and I just learned it.
My team's going to be really happy rather than my sketchy means.
Thank you so much for being here.
I can't wait till next time to hear Marc
Schweigert on Advanced ALM.
Folks, we'll see you next time.
Until then, let's code.
>> More power.