View on GitHub

COMP 491/492

Dickinson College Computer Science Senior Seminar

PA05 - Tech Spike Preparation

Introduction

In agile software development a spike is a small side project done to test an approach or to learn something new. The goal is to learn enough about the approach or the new topic to inform the work on the main project. Because the work done in a spike is experimental or is part of a learning process it is done outside of the main project’s code base. Then what has been learned from the spike is used to produce a clean implementation of the desired functionality in the main project. By working in this way mistakes or missteps that naturally occur during the learning process do not get accidentally left behind in the main project’s code base. It is not unusual for there to be many spikes across the course of work on a project. Each time a developer is unsure about an approach or a technology they should take a little time out to do a spike. They then return to the project with a higher level of confidence in the approach being explored or the technology that was learned.

Assignment

In this assignment the project teams will prepare to complete a tech spike in which they learn more about the key technologies used in their projects. The result of this activity is a planning document that will guide the team’s work on the tech spike. This planning document will include a Gap Analysis, a list of Learning Resources and a description of Planned Artifacts. The Gap Analysis will help the team identify gaps in their present knowledge and skills as related to their chosen project’s technical requirements. The list of Learning Resources will identify instructional materials that can be used to fill those gaps. The description of the Planned Artifacts will indicate things that the team plans to build to demonstrate their learning.

Getting Started

To get started:

  1. Make a copy of the TechSpikePreparation.md file from the teams directory into the team’s own directory.
  2. Add a bullet to the “Project Documents” section of the team’s README.md that links to the team’s TechSpikePreparation.md file.

Gap Analysis

A gap analysis is a process that can be used by a business, a team, or an individual to compare their current state to a desired future, and then to set goals to move toward that future. Gap analyses are often performed in a four step process. In this section, teams will follow an adaptation of that four step process to perform a gap analysis that will guide their tech spike.

Work as a team, involving every team member in the discussion, to complete a gap analysis by adding the following content to the appropriate sections of the team’s TechSpikePreparation.md file:

Learning Resources

In this part of the activity teams will identify learning resources (readings, videos, tutorials, courses, etc…) that that they will use to begin to fill in the gaps that the team has identified. While the Gap Analysis was a full team activity, this section should be completed individuals, pairs, or sub-teams based on how the team has delegated responsibilities in the “Our Plan” section above.

  1. Add sub-sections to the “Learning Resources” section of the team’s TechSpikePreparation.md file that align with the gaps in the “Our Plan” section of the “Gap Analysis”.
  2. In the sub-section for each gap, the responsible team members should create an annotated list of resources (with links) that they believe will help them learn what is needed to begin to fill the gap. Some tips for building this list:
    • Search the project’s documentation for any resources that they have provided or recommended.
    • Be sure to use the project community here. Search the appropriate communication channel, explain what you are trying to learn and how you think it will help your team engage with the project and ask for suggestions of good resources.
    • Do a web search to identify resources (tutorials, lessons, videos, articles, etc…) that will help fill the gap. This approach may be your first instinct… but you are very much encouraged to engage your project community!

Look at a lot of resources (20-30 seems a good number) and narrow them down to a few (2-4) that are at an appropriate level, seem engaging, and that can be completed in the time available for this assignment (i.e. before the presentation). It can also be beneficial to lean toward resources that have you actively build something (see Planned Spike Artifacts below).

Investing time here to filter through a variety of resources and identify good ones that have you build things will pay off later!

Planned Spike Artifacts

PP01 - Tech Spike Presentation occurs at the end of the Tech Spike (See the Course Schedule) and requires that each team give a presentation. In this presentation the team will introduce the project and demonstrate of some of the things that were built during the Tech Spike. This section asks that teams identify artifacts that they may build during the Tech Spike and demonstrate in their presentation.

Consider the learning resources that have been identified:

  1. Add a bullet to the “Planned Spike Artifacts” section of the team’s TechSpikePreparation.md file for each thing (i.e. artifact) an individual, pair or sub-team may build.
    • Each artifact might be something that is created by following one of the learning resources (preferable) or something that the individual, pair or sub-team aim to build based on what is learned. Note that listing the artifacts does not imply that they will all be built. The plan for which learning resources are used and what artifacts are built can evolve as the spike progresses (e.g. a learning resource turns out to be not as good as initially thought).
  2. For each bullet:
    • Indicate the individual, pair or sub-team that may build the artifact.
    • Give a brief description of the artifact.
    • Indicate if the artifact is a part of the learning resource or something designed by the individual, pair or sub-team.

Completing the Tech Spike

Once a team has completed the Gap Analysis, identified Learning Resources, and Planned Artifacts, it will use the time until PP01 - Tech Spike Presentation to learn, build artifacts, and prepare the presentation.

During this time the team members are expected invest the expected amount of time per week (See the Syllabus) working on the following tasks:


Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License All textual materials used in this course are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

GPL V3 or Later All executable code used in this course is licensed under the GNU General Public License Version 3 or later