For this chapter, we spoke with Alex Joyner from PiPython, a resource from Georgia Tech’s OMSCS program for learning machine learning with Python.
Gunner Technology: Building PiPython was a ton of fun.
Alex Joyner: It really was.
GT: The interesting thing about this project is that you were a pretty tech-savvy partner, so not only did you have a lot of input, you even got your hands dirty writing code as well.
AJ: Well, I was certainly involved with the coding, but I definitely couldn’t have done it without you guys.
GT: You’re being humble.
AJ: Maybe, but either way, where I really leveraged your guys’s expertise was with actual launching the application and setting up that server architecture. That was something I had basically zero experience doing, so it was crucial having you guys there helping me out.
GT: And that’s one of our primary roles with all of our projects, basically being an outsourced expert for technology expertise.
AJ: Totally. And it’s hard to understate how valuable that is. Especially with niche segments like “learning machine learning with Python”, I definitely know more – well, probably…
GT: No, definitely.
AJ: Okay, definitely know more than you guys about that. But you guys know more than I probably ever could about launching the application that we built together. Choosing the platform, optimizing the platform, getting the program running on that platform… All of that stuff would’ve taken me months or years to learn how to do myself, so having you guys there to help me out, it made all the difference. I tell people this all the time: if you have an amazing idea about something really specific that you know a ton about, that you know more about than practically anyone else in the world, then find someone to help you build that idea out who have a wealth of experience actually building stuff. Leverage that expertise. Because otherwise, you’re just never going to build your idea. And that would be a genuine loss for the world. That’s how I feel about it.
Everything we build at Gunner Technology is planned around weekly iterations. What does that mean? It means that we produce a usable product every week with bug fixes, optimizations, and new features. Either via email or on a conference call, we plan out weekly iterations, design the work to be implemented, build it, and test it.
And that’s the process: Plan, Design, Build, Test (and repeat).
Planning is the first, and most important, step. It’s the start of a project, the start of an iteration, and often the start of a day. Without a plan, you won’t know where you’re going and the goalposts will constantly move. We can’t stress enough how important it is to plan.
With the initial planning of the idea, the stakeholder needs to be as specific as possible with user stories. You can’t be too detailed! Everything the service or product can possibly provide needs to be documented. And we mean everything.
(As an aside, user stories are generally small snippets of functionality in the form “As a [WHO], I would like to [WHAT] so that I can [WHY]”. You might also include a WHERE, WHEN, and HOW with your user story, but they aren’t required. For example, “As an ADMIN, I would like to BAN A USER so that I can KEEP OUR COMMUNITY SAFE.”
The benefits of detailed user stories that cover everything are myriad, but there are some primary reasons to go through the exercise.
First and foremost, it makes it easier to implement stuff out of the gate. This is incredibly important for new products and services since time to market is often a major factor in success or failure.
Another key benefit of detailed user stories is that they are much easier to test. If you get super specific about exactly what needs to happen to ensure that a ticket is complete, that’s basically a script for the tester to walk through when they’re determining whether something is done. And it makes it easier to write automated tests too!
Luckily, we just talked about this step – go ahead and review “How to Design Your Idea” for more info on the design process!
This step is probably going to be the least involved for an entrepreneur because the whole reason you outsource your IT is that you want the experts to handle this step.
Gunner, for example, is a complete IT department. From the front-end to the back-end, from user-facing devices to cloud-based infrastructure, we do it all.
And we’re not shy about recommending solutions, either. We’ve been at this for a couple decades now, so we’ve got a pretty good handle on what works and why.
There are two main ways to do QA: have a dedicated QA team do it or have the devs do it themselves.
Having a dedicated QA team is a major boon for any company. QA testers are consummate professionals and have a wealth of methods for ensuring you launch with the best product or service possible. The major drawback, however, is that a dedicated QA team is gonna cost money. And that’s usually a deal breaker, honestly.
The other option isn’t that bad though. Having the dev team QA is a pretty good second option. Having the dev team do the QA gives you the added benefit of the team testing the code they just wrote. Plus they can automate large parts of the QA to protect against regressions.
But dev team QA is never going to be sufficient – it’s always going to require more involvement from the client than having a dedicated QA team would. The clients are going to have to get their hands dirty, so to speak, and really test out the product or service on their end as well to make sure everything is good to go.
This is the fun part. Once you gone through the process a handful of times, it becomes second nature. Eventually you just start cruising and then all of a sudden your idea is ready launch. And then real fun begins as you acquire new users and respond to their feedback to make your product or service even better.
Some keys to improving your idea are to have a solid group to beta test. You want a group that’s going to provide tons of feedback and not get too frustrated with an app that is in the works. During the beta phase you’re really trying to refine your idea and turn it into its best version.
Another key feature on that point is to have a solid onboarding process. You want to make it painless for new users to sign up because your goal is to have as many people providing as much feedback as possible.
Because then you’re going to take that feedback and (say it with me): Plan, Design, Build, Test (and repeat)!