Why software engineering interns should learn about Agile
It is a well-known fact that software engineering and software development are best learned “in the trenches”. Even the best university courses cannot keep up with the latest technologies, languages and frameworks, especially when it comes to the actual application of knowledge.
This is why the software engineering students who wish to hit the ground running out of college decide to do internships while still studying. Besides getting exposure to the latest developments in the field, these internships also enable them to experience the reality of developing actual software that will be released.
More often than not, this reality nowadays entails the Agile approach to software development.
Today, we will take a closer look at Agile, why software engineering interns should learn about it and how they can do this.
Agile software development 101
The main idea behind Agile software development is to have an approach to developing products in a way that makes sense for modern software and the business of modern software. It tries to accomplish these by putting emphasis on a number of ideas and concepts:
- Iterative development
- Early releasing
- Adaptation over planning
- Self-organized teams
- Transparency and communication within teams
- Better collaboration with stakeholders
- Improved alignment with business goals
- Reduced documentation
Over the years, the adoption of Agile software development has increased and this approach is now present in the majority of companies that develop software of any kind.
In short, a software engineering intern is more likely to land in an Agile environment than not.
Reasons to learn about Agile
We have already provided the first reason as to why software engineering interns should learn about Agile before doing their internship – being able to hit the ground running.
It may not seem that way, but it can really make a difference. Interns who know nothing about it can feel confused by the terminology, the processes and the roles that are involved in Agile software development.
For example, when they start an internship at a company that practices Scrum (the most widespread Agile framework), they will have to wrap their head around Sprints, iterations, Daily Scrums, Scrum Retrospectives, Definition of Done, Scrum Masters, Product Owners and much, much more.
In the author’s experience, this confusion often leads to interns focusing too much on this and not on the main reason why they are interning – to learn about software development on the ground.
In addition to this, Agile software development truly does encourage a good approach to developing software for the modern marketplace. Releasing working increments of software and building on it is a much better way to learn the many intricacies of developing software than going through the waterfall phases with their strict boundaries and structured process.
Familiarizing oneself with Agile also lets interns know that talking to other developers and collaboration are key to being a good software engineer.
This is an important lesson and can truly make a difference between an okay internship and a great one.
Where to learn about Agile
One of the great things about Agile is that there is no shortage of resources out there. On the contrary. ApiumHub has a nice list of Agile and Scrum blogs interns can consult, for example.
For Scrum (once again, the most common Agile approach), this Quora page has some really great suggestions.
These Scrum and Agile interview questions are mostly used in situations when companies look to hire experienced Agile practitioners, but they provide good insight into what really matters in Agile even for interns.
The important thing is for interns to understand some basic ideas and practices that they can expect to encounter when they start their internship. They will pick up the intricacies as time goes by.
Agile has become the norm in software development and software engineering interns should expect to find an Agile ecosystem at their place of internship.
Learning the basics will provide a solid foundation that will allow them to focus on improving their craft.
Jug Babic is a marketer at VivifyScrum, a company that developed the Agile project management tool with the same name.