Developer Tea

Effective Simulations

Episode Summary

In today's episode, I discuss the importance of effective simulations for developers. Today's episode is sponsored by RefactorU, the 10-week JavaScript training bootcamp focused on developers dedicated to reinventing themselves. You can get 20% off of tuition by mentioning Developer Tea today! Head over to http://spec.fm/refactor to get started.

Episode Notes

In today's episode, I discuss the importance of effective simulations for developers.

Today's episode is sponsored by RefactorU, the 10-week JavaScript training bootcamp focused on developers dedicated to reinventing themselves. You can get 20% off of tuition by mentioning Developer Tea today! Head over to spec.fm/refactor to get started!

Episode Transcription

Hey everyone and welcome to Developer Team. My name is Jonathan Cottrell and in today's episode we're going to be talking about why effective simulation is important to developers. The concept of simulation is fundamentally connected to the software development practice at many different junctures and it's incredibly important for us to understand why effective simulation matters. In today's episode we'll discuss why effective simulation is important and give a few defining characteristics of good simulation. This episode is a little bit more kind of heady than our normal episode may be but hopefully you will find some value in it and stick through it with me. Today's episode is sponsored by RefactorU. RefactorU is a 10-week JavaScript software development program that's been around for a long time. It's a 10-week JavaScript training boot camp. We will talk more about what RefactorU has to offer specifically to Developer Team listeners later on in today's episode. But first let's discuss why simulation is important to developers. Software development in many ways is itself an exercise in simulation. We often call it modeling or abstraction but essentially with all software we are creating some level of simulation. The underlying word simulate is where we can get our main clue. We are simulating something else whether that is a simulation of a monetary transaction or maybe we're simulating physics engines in a game that we are that we're programming and the simulation doesn't necessarily have to be of something that actually exists in the real world either. For example the simulation work in video games that are modeling war in space or time travel. These are things that ultimately share memory space with the world. So we can get a little bit of a sense of what's going on in the world. So let's get started. RefactorU is a 10-week JavaScript software development program that's been around for a long time. Word documents that are simulating an eight and a half by 11 sheet of paper and ultimately a simulation stacks up as a series of logical constructions. It's just zeros and ones that can be combined to communicate to the human brain a symbol of something that is in one way or another resembling something else entirely. But it's not just digital spaces where simulation is important. It may be a little bit less obvious when you see a simulation that isn't in the digital space but in these less obvious situations we see simulations occurring in the real world. When a certain mental state for example is elicited based on environmental variables or a state of alarm may be simulated at a gym or more useful to our conversation today you might want to simulate a working environment for a potential future employee or even for yourself to prepare you for the workplace. Simulation is very commonly used in training drills which are intended to prepare someone for a circumstance without that circumstance occurring naturally. Instead we are intentionally creating that circumstance or similar situational factors around that type of circumstance. And there's all different types of simulation as well. At a more obvious level in the digital space we see things like skeuomorphism in design, which is a very common form of simulation. We see things like a! At a very obvious evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution 3D, maybe virtual reality thing. And while some simulations are obviously possible in those environments, lesser simulations can be powerful, sometimes even more powerful, and equally effective. We're going to outline three important aspects of simulation when we return from our sponsor break that can help you identify the important points that you can focus on when it's time for you to create a simulated environment. Today's episode is sponsored by RefactorU. If you are learning to code online, but you're hitting a brick wall, RefactorU is an immersive full-stack JavaScript bootcamp dedicated to the learning needs of aspiring web developers looking to reinvent themselves. It's a 10-week JavaScript training bootcamp. They have a dedicated career services team on site, and they are GI Bill approved. This is a super, super important deal for those of you who are looking at school options. The GI Bill is a huge opportunity. Based in the booming tech city of Boulder, Colorado, they have diversity scholarships as well for every cohort that goes through the school. And a very special gift that RefactorU is providing to developer T listeners is a 20% tuition discount just when you mention developer T. 20% discount on your tuition. That's a huge deal. So if you're looking to build a school, it's a huge discount. It's a fifth of your tuition. It's taken care of right off the bat. So go and check it out, spec.fm slash refactor. Make sure you mention developer T for your 20% discount on tuition. Now, if you're on the fence about this, I want you to go and check it out anyway, because there's no hurt, no harm in going and finding out the details of this bootcamp. Everyone learns differently, and RefactorU could be your perfect opportunity. Go and check it out, if you've looked at other options already, and none of them seem to be working for you. Check out RefactorU, spec.fm slash refactor. Thanks again to RefactorU for sponsoring today's episode of developer T. So now we're going to talk about the three important aspects of simulation. And the first one we're going to jump straight in is understand the big rules. Understand the big rules. That sounds really simple. This is paramount to an effective simulation. Simulations create parameters, and the actors in a simulator must abide by those parameters. The actor could be you, or it could be another digital entity that you've set up, for example. Let's say, for example, you have a physics rendering system that you've created. Well, a particle may be an actor in that system, right? So you don't have to be the actor in the system, but the actors in the system must abide by the big rules. So if you're simulating a particular environment or experiencing a particular situation, you must abide by the big rules. So if you're simulating a experience, understand the big rules of that experience. For example, the rules of a workplace are that there is a real-world problem and typically some constraint on time. But equal to the constraints are also rules of empowerment. Tools, for example. In that same scenario, you might have access to a team of other developers that are working on the same problem, or maybe you just have access to Google. And on this particular point, this is one of the reasons why I don't like the idea of a real-world experience. I don't like the idea of a real-world experience. I don't like on-the-spot coding challenges. I don't think they're an effective way to test somebody's ability to solve problems because they are not an accurate simulation. They're missing some of those rules of empowerment, and they may even be missing some of those rules of constraint. So again, number one, understand the big rules. Number two, know which rules you should break. When you are using simulation as a tool for innovation, it's also important to know what rules you should break. And if you're using simulation as a tool for innovation, it's also important to know what rules you should break. For example, if we take our postal mail simulation email, the creators of email knew that the rules of physical paper, postage stamps, and time-delayed delivery were all non-essential to the underlying big rules of the system, which are a one-way written message, perhaps with attachments being passed from one person to another, using a unique address and a delivery mechanism. Breaking the material, time-dimensional rules, doesn't break that underlying system. So it's important for you to know which rules to break. Sometimes you will open up brand new opportunities if you break particular rules. And number three, the process is more important than the resolution. The process is more important than the resolution. When we say resolution here, we're talking about resolution of the simulation, the level of detail in that simulation. When you say something for a human to experience, it is far more important for the simulation to have accurate process and steps than it is to have high resolution details in the system. In other words, if the system is low resolution, but is accurate in its process, it can still be extremely effective. This can be proven in a separate field, that of written books. The resolution of a novel is relatively low, right? We have to imagine everything that is happening in a novel. If the novel is low resolution, it is relatively low. based on the words we're reading. If we compare it to the sensory experience of, for example, a movie, a 3D movie in the theaters, huge screens, a book remains one of the foremost ways of telling stories. This can be attributed to the fact that a book does not necessarily need high resolution to tell a good story. In the same way, a very high production value in a movie may be technically impressive, but the intention was to simulate a story. And the production value is high, but the story is poorly written, well, the simulation becomes relatively ineffective, and the resolution does little to nothing to save that. In the same way, a very simple game, for example, take Flappy Wings or Pokemon Go, these games have achieved massive success even if the particulars of their simulated resolution are relatively low. They aren't super immersive games. Because the process is in place. In most vehicle simulators, for example, flight simulators or driving simulators, if the process is in place, even if the projected images around the vehicle are poor or pixelated, the mechanics of the system and the process of driving that vehicle or operating that vehicle can still be quite effectively modeled. And these models actually provide real training to the system. And so, if you're a computer, you're going to have to the people who are operating these vehicles. So, running back through the three important aspects of simulation. Number one, understand the big rules. Number two, know which rules to break. And finally, number three, the process is more important than the resolution. Thank you so much for listening to today's episode of Developer Tea. I hope this inspires you to create better simulations and to start seeing things that you previously didn't see about the world of simulation. And I'll see you in the next episode. around you and about the products you use and the things that you do with your time. A lot of what you do is participating in some level of simulation. And it's incredibly important for any software developer to be able to identify these important aspects of a good simulation. Thank you so much for listening. And thank you again to today's sponsor, RefactorU, the 10-week JavaScript training bootcamp that is offering you a 20% discount just for many people. Thank you so much for listening. And I'll see you in the next episode. Developer Tea. Thank you. Thanks again to RefactorU for sponsoring Developer Tea. And until next time, enjoy your tea.