DEV Community

M Groesbeck
M Groesbeck

Posted on

...but if you DO...

In my last post I talked about a (true, unfortunately) situation in which my team's well-intentioned plans to both build our project and learn AWS were derailed when our resident AWS expert and lead back-end developer had to leave the team. Consider this a follow-up.

Don't Panic

This bears repeating from the last post. There are two popular reactions to any emergency or emergency-adjacent situation: "panic and run around frantically" and "take a deep breath, focus, and get to work right now." One of these reactions is considerably more strongly correlated with success than the other.

Re-prioritize

We were lucky, in a sense: we had more features in the wish list than we were ever going to be able to completely build out.

Now, normally "more work to do than you'll be able to finish" doesn't qualify as "lucky". When the immediate goal isn't "finish all the features" but "lay a strong foundation for building all the features," though, there's some flexibility.

Flexibility is sneaky, though. It's an invitation to leave plans vague until you realize that you haven't actually finished anything. I'm relieved in retrospect that my team, when faced with a sudden looming time crunch, took the necessary time to look at our feature list and work out a new set of priorities based on our smaller team.

Security to the front of the line, please

It's simple in principle, really. Security breaches are bad for business and worse for the users. You don't want to be That Dev, and you don't want your app to be That App -- you know, the one with that big security breach.

In my team's app, security is a particular concern because of two magic words: "payments" and "children."

Since our app is the product rather than supporting another product, and we're operating on a subscription model rather than an advertising model, so the ability to accept payments securely is a core function from the dev perspective. And since most of our users will be children, user data privacy, which should already be a core concern for any app, is even more vital.

With both magic words in play, our team decided that whatever features we had to choose from, security was an absolute necessity -- and a robust security scheme that future work on the app could build on. It helps that third-party validation and payment services (one of each) gave us the ability to keep login and payment transparent for users while keeping sensitive information out of our database entirely and letting us build so that impersonating our front end would not allow unauthorized access.

Call it a reminder to myself more than a "lesson," since any working dev should already know this:

Security is part of the foundation that makes it possible to build any features to ready-to-ship status.

If "done" isn't an option, aim for "ready for the next step"

There was a sense of freedom when I realized that we were never going to finish everything on the feature list. It meant that we weren't trying to build everything at once; our job was to build a framework that would support all of those features (and anything else that the data science team could develop) in the future.

It helps that this is, to put it simply, my thing.

After eight weeks, we do not have an app ready to present to the public. We aren't about to open the doors to (hopefully) crowds of 8-to-12-year-olds who will discover an environment that nurtures creative engagement with reading and writing. The app in its current state won't spark lifelong interest in collaborative storytelling.

After eight weeks, what we have is a foundation. My team won't be building the next phase -- but if a team picks up from where we leave it, they'll find the structure ready to build on, with all the tools in place and carefully labeled. Everything is documented, usually in more than one place. From here, anyone working on the app will be able to focus on the user-facing features: the ones planned from the beginning, and any brilliant new ideas they come up with.

The foundation will support all of it.

I guess at this point nobody should be surprised to hear that I used to work backstage at a community theatre.

Top comments (0)