What about an Auto-Deployment Feature?
Now that we are online and getting loads of users, we don´t want to disturp our visitors by updating the app while they are knees-deep in some form.
Auto-Deployment twice a week at 03:30am at night would be really helpful.
What do you think?
I think that the potential issue there is that parts of an app that aren’t ready to be deployed yet could be pushed live by mistake. For instance, usually when I deploy, it consists of a week’s worth of work or more.
I would +1 something like delayed deployments, though. Maybe an option to deploy, but you’d pick a time within the next 24 hours for the updates to go live. And if you needed to make changes afterwards, you could maybe go in and cancel the deployment before it happens.
It would be sort of like Version Control meets Scheduled Workflows.
One thing to watch out for is unexpected consequences after a deploy. If you deploy on a schedule, while you’re sleeping, there’s nobody there to check to make sure it all worked as expected. I’d hesitate to do this for an app in production.
Does anyone have any best practices to share on version deployment?
Are you checking if users are currently logged in (can you actually check this? I have Last Login, but will have to see if something more real time is possbile) and only deploy when noone is logged in?
Are you announcing updates so someone at least is aware that an update is coming, meaning that you shouldnt be in the middle of a form or an upload or anything?
I try to make all my users aware of a regular maintenance window (like Friday nights at midnight EST) so there’s consistency to the roll out. For critical repairs, I’ll set an alarm on my phone that let’s me wake up at a ridiculous hour so I can make sure nobody is on the app, then roll it out then. Of course, I have a manual testing guide for me to walk through with each release so I know everything worked as expected.
What do you mean by manual testing guide?
Great question, and I should have clarified in my original post! As I develop the app, I build what’s called “acceptance criteria” for each new bit of functionality. I use those to inspire test cases, like this:
User can enter username and password. When they click submit, they should login and go to the home page. When they arrive on the home page, they should see their name in the top-right corner.
So basically, it’s a script that I can walk through to make sure everything in my app works the way my user would expect it to.
Ok, I thought it was a test script. I have user testing scripts but I guess incorporating thorough developer scripts is indeed a good practice.
Guess I’ll google acceptance criteria next to learn more
I’ll capture the concept of acceptance criteria here to save ya the trouble The point of acceptance criteria is that it lets your developer know when they are done. If they think they’re done, but the acceptance criteria cannot be met, then they aren’t done! I use this concept when I work on Bubble myself, it’s a good framework to make sure I’m thinking all the way through stuff.
As a Director of Product, I want the ability to invite a team member to my project so I can collaborate with them inside the app.
Given I am on the Team Settings page,
When I click the Invite Team Member button
Then the Invitation modal should appear
When I type an email address in the input
And click the submit button
Then the team member should be added to the project
And receive an email informing them
And the modal should disappear
Yeah great stuff! You pointed me towards SDM and particularly Agile development which is basically sort of what I’m using but I was looking for a proper framework to connect it all.
I’ve been involved in implementing information systems at work but we were the customer and as for testing, that was mostly UAT stuff.
Now I’m on the other side so this is all great information, thanks again.
Wow, this thread is old! But yeah, I wholeheartedly agree! Baby sitting the app while staring at Google Analytics live view just to wait until there’s nobody in the midst of checkout is for the birds!
Or am I overlooking some recent feature or better approach?