QA Friday 2016-May-13

Take Up Code - A podcast by Take Up Code: build your own computer games, apps, and robotics with podcasts and live classes

Categories:

How do I use my foundational skills in programming to start making useful software? Let me just get right to the point. Foundational skills alone will not lead to useful software. And in fact, I think that trying to focus on the technical aspects first will actually lead you down the wrong path more often than not. When you’re starting a software project, and actually even during all stages of software development, you need to first identify a need and who needs it. If we need something, then it’s a lot more likely to be useful when we get it. You should also try to solve this need with as few features as possible. This is called a minimal viable product or MVP. You’re going to need feedback as soon as possible about your software. Let you foundational skills guide your implementation but only once you have a general direction. You might even decide that the best way to solve the need is through skills that you don’t have yet. You would have never arrived at this conclusion if you started with your current skills. At least not right away. Start with a need and get to know your customer. Produce the absolute minimal product that helps solve the need and then get direct feedback. Adapt, and get more feedback. Let your foundational skills be an advisor only. And later if they’re still relevant, then let them help you build that initial minimal viable product. Listen to this episode for more or you can also read the full transcript below. Transcript Okay on to the question this week. This is another question that I found online. Let me just get right to the point. Foundational skills alone will not lead to useful software. And in fact, I think that trying to focus on the technical aspects first will actually lead you down the wrong path more often than not. Let’s take a very basic and foundational real life skill as an example. Walking. Or in general getting from one side of the room to another. We’re pretty good at this. Even many people who can’t walk can usually find a way to get around. This is something that computers, and by computers here, I’m really talking more about robotics. This is something that computers struggle with. Yet we do it with so much ease that we forget about it. It doesn’t get much more foundational than that. And on top of the basics, we have an amazing collection of feats that computers are nowhere near to matching. We can navigate around obstacles. Even moving obstacles. We can crawl, run hop, skip, and jump. We can do the bear walk, the crab walk, and even walk like a duck. We can walk upside down on our hands with a little practice. We can walk through water and even on the moon. Now that we’ve established our truly amazing foundational skills in walking, let me ask you this. When you start planning your next vacation, do you consider your ability to walk in those plans? Okay, maybe if you’re planning a strenuous hike up Mt. Rainier. Or if you have some difficulty. But in general, our ability to walk is the last thing we think about. If we think about it at all. I used a vacation as an example of something that has value. It’s useful. And yet how many other foundational skills to we completely ignore when planning to do something useful. So if foundational skills alone are not enough, then what should you focus on to build useful software? And does this mean that foundational skill have no relevance? I’ll answer these questions right after this message from our sponsor. ( Message from Sponsor ) When you’re starting a software project, and actually even during all stages of software development, you need to first identify a need and who needs it. If we need something, then it’s a lot more likely to be useful when we get it. There are exceptions of course. Sometimes something useful comes along that we never thought that we needed. To me, this is like playing the lottery. Notice I didn’t say winning t