Description | Work as part of a team of professional developers. | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Type | Internship. | ||||||||||||||||||||||||||||||||||||||||||||||||
Duration | About 50 working days. | ||||||||||||||||||||||||||||||||||||||||||||||||
Progress points | 50.0 | ||||||||||||||||||||||||||||||||||||||||||||||||
Credits | 15 | ||||||||||||||||||||||||||||||||||||||||||||||||
Test matrix |
|
Assignment
Work as part of a professional software development team for 10 full-time weeks (or equivalent). Your main challenges are to get up to speed with the development workflow that the team is using, and to learn the technology stack. Generally, you'll want to strive to get your first commit approved into the main branch (or similar) as early in your internship as you can.
Internship report
During your internship you will want to work on your internship report. Don't worry though: the report doesn't need to be very wordy, and it's structure is described in the sections below and templated in the provided report.md
file.
1 → The basics
Objective #1MUST
Complete the first section of the report.md
, containing basic information about your internship and the company.
2 → Journal
Provide a journal for at least 45 working days at the company. For each day, the following questions should be answered:
- Accomplished: What have you accomplished today?
- Learned: What are the most important things you learned today?
- Next: What are the most important questions you still have at the moment and/or what will be your next steps?
On average, your answers should combine to about 100 words per day.
Objective #2: Minimum working daysMUST
The student interned/worked at the company for a minimum of 45 actual working days, as evidenced by the journal.
Objective #3: Structured learning0.9 points
The journal should reflect a structured approach towards work, learning and setting goals.
3 → Tech stack
For each of the languages, frameworks, libraries, tools and design/architectural patterns you encounter during your internship, list the following:
- Name.
- Description: Description of the tech.
- Company usage: How it's used within the company.
- My usage: What you personally did with this tech during your internship.
- Curriculum: If this tech was covered in the curriculum, describe to what extend it's usage within the company is similar to what you've learned, and in what ways it was different. If not, describe which aspect(s) of the curriculum is/are most close related, and how this is different.
- Opinion: Your personal opinion on this tech. Would you use it again? In what situations? Why (not)?
This list may be long! Besides the obvious, think of all kinds of build tools, databases, container tech, orchestrators, linters, issue trackers, code review tools, analytics tools, monitoring tools, cloud services, coding techniques, etc. Mention all technologies you've had to actually work with (for a bit) yourself.
Objective #4: Accuracy and completeness of tech stack (and comparison)0.9 points
Objective #5: Student involvement with large parts of the tech stack0.9 points
Objective #6: Volume and novelty of learnings0.9 points
4 → Your contributions
Describe everything you did/accomplished during your internship. This can range from tiny bug fixes, to documentation improvements up to whole new features/products. For each:
- What: Explain what you did.
- Learning: Explain what new things, if any, you needed to learn in order to do this.
- Duration: An estimate for how much time this took, including any learning.
- Team work: Describe what kind of help and/or reviews you received and/or how you collaborated with other roles.
- Demo: If at all possible, include a screenshot or screen capture showing your work. In some cases, this may also just be console output. If your change is hard to spot, you may consider including a before/after comparison, or adding an arrow pointing out the change.
- Source code: A link to the full source code of your contribution, including version history. In case the contribution is a small project you made by yourself, please provide the full (git?) repository. If, more likely, you've contributed to a larger project, it suffices to provide the patches for all commits you created towards this contribution. When using git, you should be able to do something like this from a feature branch:
git log --author="$(git config user.name)" --patch origin/main..HEAD > feature_name.patch
- Status: What has happened with your contribution after you were done working on it? Has it been rolled out, or ...?
IMPORTANT: Create this documentation immediately after completing (including any review stages) a contribution. If you do it later, it may be a lot harder to produce the source code patches, create screen captures, and describe the contribution accurately.
Objective #7: Contribution size1.8 points
Grading is based on the amount of time that it would take a specialized professional developer to implement all of the realized contributions.
Objective #8: Implementation quality1.8 points
Grading is based on the provided source code, with regard for various quality aspects: reliability, readability, adaptability, maintainability, security and performance.
5 → Roles
Objective #90.6 points
Describe each of the (other) roles within the company that a software developer would encounter in her/his work:
- Name.
- Description: Describe the role and its purpose within the company. Some example roles are: developer, scrum master, tester, marketeer, devops engineer, HR manager, UX designer, but each organization will have a unique composition.
- Count: State how many employees have this role within the company. This can be an estimate, if you're working a large organization.
- Profile: Describe what kind of education/background a person in this role will generally have.
- Typical collaboration: Describe what kind of collaboration people in this role will generally have with the software developers and to what end.
- Your collaboration: Did you collaborate with someone in this role during your internship? If so, please describe.
6 → Development process
Objective #100.6 points
Describe the development process used by the company in about 800 words. Focus on the most important things the company does to achieve a high development quality and velocity. Topics may include..
- Methodology
- Work flow (how work moves from the author, through various stages, to production)
- The kinds of regular meetings
- Review procedures
- Collaboration tools
- How various roles are involved
Objective #11: Recommendations0.6 points
Try to come up with a few recommendations to the company on how the development process could perhaps be improved.
If you find this difficult to do in the general sense, try to come up with ideas that may improve the experience for new junior developers like yourself.
Wrapping up
Objective #12: Get internship supervisor feedback- 2.0 points
Email your complete and final report.md
(and possibly a PDF version of this file, see next objective) and the template feedback.md
to your company supervisor, with your Saxion study coach in the CC, requesting the company supervisor to complete the feedback.md
and to email it back to you as well as to your study coach.
IMPORTANT: You must do this within one school week after the last day of your internship. Half a point out of ten will be subtracted for every week that your report is late.
Put the feedback.md
you received back in place of the template file, to be uploaded as part of your submission.
Objective #13: Intern Meetup DayMUST
You need to have attended two Intern Meetup Days.
Objective #14: Create PDF filesMUST
Having all documentation in PDF format is a precondition for receiving a graduation grade.
Although Markdown is convenient for software developers, it requires special tools to view them properly, especially when using advanced features like embedded PlantUML. As this work will become part of your graduation dossier, we ask you to please create a companion .pdf
for each .md
in your submission. You can do this using the Markdown Preview Enhanced VSCode extension by:
- Opening the
.md
file. - Showing the preview panel for it (using
ctrl-k v
). - Right-clicking on the preview panel and selecting Open in browser.
- Within the new browser window, print (
ctrl-p
) to PDF. - Give the
.pdf
file the same base name as the original.md
file, and place it in the same directory.
Objective #15: Double checkMUST
Make sure the LMS directory for the assignment contains:
- Your fully completed
report.md
. Are you sure you checked everything? No more TODO's or left over examples? - The
feedback.md
completed by your company supervisor. - PDF versions for both of these.
- All source code repositories/patches referenced from Contributions section.
- All screenshots/captures referenced from Contributions section.
All spiffy? Then upload and submit!
First internship retakes
An internship can be a daunting learning experience, especially the first time. Therefore, some leniency is provided in the rules for the first internship:
- If, while approaching the end of your internship you think (and your Saxion study coach agrees) that you don't have enough to show for it to pass this exam, you may consider requesting a five week internship extension. This is of course only possible if your company supervisor agrees to this. Please put your request for extension in an email to your company supervisor and your Saxion study coach, and make sure you receive written agreement from both.
- In case of special circumstances, you can file a request for (further) extension with the examination board.
- In case you receive a failing grade for your internship, you may (together with out study coach) choose between these three forms of retake:
- Start a new internship at a different company.
- Improve and resubmit your report, based on the grading feedback you received. The new deadline for the report is two week after you received your grade.
- Get a five week internship extension like described above, if the internship wasn't extended already, and then improve and resubmit your report. Please note that this will probably be more difficult to arrange with the company once you've ended your internship.
- You may choose retake option 2 or 3 only once per internship.
- As usual, you are entitled to do two attempts (meaning one retake of any kind) per academic year. In case you require an additional retake, you can file a request with the examination board, which would normally be granted without much fuss.
Second internship retakes
During the second internship, you will need to demonstrate your skills within the stated time in one go.
- Extensions are not allowed, except due to special circumstances, in which case you can file a request with the examination board.
- In case you receive a failing grade, you will need to start a new internship at a different company.
- As usual, you are entitled to do two attempts (meaning one retake) per academic year. In case you require an additional retake, you can file a request with the examination board, which would normally be granted without much fuss.
Rubrics mapping and grading
#3 | #4 | #5 | #6 | #7 | #8 | #9 | #10 | #11 | #12 | - | Σ | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Implement software. | 1.80 | 0.40 | -0.40 | 1.8 | ||||||||
Proficiently use common technologies. | 1.80 | 0.40 | -0.40 | 1.8 | ||||||||
Quickly and independently learn to use new techniques. | 0.90 | 0.90 | 0.40 | -0.40 | 1.8 | |||||||
Use automated software testing and deployment. | 0.90 | 0.90 | 0.40 | -0.40 | 1.8 | |||||||
Collaborate within a development team. | 0.60 | 0.60 | 0.60 | 0.40 | -0.40 | 1.8 | ||||||
Base grade. | 1.00 | 1.0 | ||||||||||
Σ | 0.90 | 0.90 | 0.90 | 0.90 | 1.80 | 1.80 | 0.60 | 0.60 | 0.60 | 2.00 | -1.00 | 10.0 |