Real-world experience teaches things that classrooms just can’t. That’s why we have our interns work on real software for real people.
Did you ever struggle through a math problem in school and then use the exact same equation in real life only to realize how simple it actually was? That’s probably because you actually cared and had a stake in the problem at hand.
Real-world experience has a funny way of teaching things that textbooks and classrooms just can’t. That’s why we made sure to incorporate a real software project into Integrity’s internship program.
While some internships may shy away from putting new developers on real, important projects, we say, “How could we not?!” If our intention is to give our interns a valuable experience that will prepare them for their careers, we believe there’s no better way to accomplish this than to let them build a real software project and work through everything that comes with it.
Work with a real product owner
In many internship experiences, assigned projects are very simple, artificial, or just direct assignments. Regardless, there’s not much interaction with the person who’s actually going to use what’s being built.
By building a real application for a real product owner, our interns must learn how to work in a much more ambiguous situation where the people who want the software can’t necessarily tell the developers exactly what to do. Our interns have to learn to ask good questions to accurately find out what the product owner needs from the software. They see first-hand the relationship dynamics of a product owner communicating their needs, the group collaboratively coming up with the best ways to meet those needs, and developers providing the expertise to get the job done.
They experience the process of making progress, getting feedback, and adjusting the product to that feedback. They have to think about designing for the way the actual users will use the software—not the way developers would think about or use the software.
A classroom or textbook can point to these scenarios and give advice, but the real-world experience of working with a product owner is where the real learning happens.
Think about real-world implications
Because the software that the interns are working on addresses real scenarios and will be used by real people, our interns get to practice thinking about how a feature is actually going to be used.
In a classroom setting, defining success for a project can often take on a transactional approach. Instructors create a rubric and students form their project around the requirements in the rubric. As long as the project fits the guidelines, the project is considered to be successful.
However, in a real software development scenario, there’s more to it. Setting a feature in place for the sake of crossing it off the list won’t cut it.
Through working on a real application, our interns have the opportunity and incentive to think outside of just “getting it done.” They have to think about the best approach from multiple angles of multiple users—because actual users are going to be using it.
Focus on practical skills that are useful right now
Classrooms often break down learning into chapters based on topics. You spend time learning a lot about the topic, but you may or may not ever use what you learn. However, with real experience, you learn precisely what you need to know and why you need to know it.
Our interns learn things that are directly practical for what they’re working on. What we’re teaching through working on a real software application is not just pieces of information or a list of topics; it’s information that is immediately useful. Plus, they’re able to see how all the pieces of information they learned in school actually work together to build real software for real people.
If we’re going to teach our interns to think like professional software developers, we see no better way than to give them experience building real software. The benefits they’ll receive are far beyond what a classroom could teach them, and we at Integrity are happy to be facilitators.