Teaching Software Craftmanship
Posted: March 5th, 2012 | Author: greger | Filed under: Professionalism | Tags: software craftmanship | No Comments »
Can you successfully teach software craftmanship to university students? I have several old colleagues who try to improve how programming skills are picked up by students, for instance Marie Nordström worked on how to improve student comprehension of object oriented programming concepts. Yesterday, I found out about a project where a whole course was taught around software craftmanship where students worked on improving their deficiencies which concepts such as “apprenticeship patterns” and “programming katas“.
Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman
References
-
[2012,techreport] bibtex
T. Sedano, "Towards Teaching Software Craftsmanship," Carnegie Mellon University, Mountain View, CA 940352012.@techreport{citeulike:10413210, abstract = {We report on the experience of the first offering of the course, ” The Craft of Software Development.” The purpose of the course is to identify and remediate individual weaknesses as software developers. Each student was asked to pick a personal learning focus in an area of known software development weakness for that student. Through a ” maiden speech” they asked their class community for help in creating a learning plan to address their area of weakness. Learning plans typically incorporated known apprenticeship patterns such as ” Find a Coach,” ” Breakable Toys,” and ” Practice, Practice, Practice.” After creating their learning plan, students identified metrics to track their progress towards their goal. While executing their individual learning plans, the class performed programming katas which are specific programming exercises to work on issues relevant for the entire class. Several issues emerged in the first offering in the course and several suggestions are provided for incorporation in the next offering of the course.},
address = {Mountain View, CA 94035},
author = {Sedano, Todd},
citeulike-article-id = {10413210},
citeulike-linkout-0 = {http://repository.cmu.edu/silicon_valley/93/},
institution = {Carnegie Mellon University},
keywords = {20120304},
month = feb, posted-date = {2012-03-04 21:02:25},
priority = {3},
school = {Silicon Valley Campus},
title = {Towards Teaching Software Craftsmanship},
url = {http://repository.cmu.edu/silicon_valley/93/},
year = {2012}
} -
[2010,phdthesis] bibtex
M. Nordström, "Object Oriented Quality in Introductory Programming Education," PhD Thesis , 2010.@phdthesis{citeulike:10413204,
author = {Nordstr\"{o}m, Marie},
citeulike-article-id = {10413204},
citeulike-linkout-0 = {http://www8.cs.umu.se/~marie/thesis/},
citeulike-linkout-1 = {http://www8.cs.umu.se/~marie/thesis/},
keywords = {20120304},
posted-date = {2012-03-04 20:53:32},
priority = {0},
school = {Ume\r{a} University},
title = {Object Oriented Quality in Introductory Programming Education},
url = {http://www8.cs.umu.se/~marie/thesis/},
year = {2010}
} -
[2007,article] bibtex
B. Vodde and L. Koskela, "Learning Test-Driven Development by Counting Lines," Software, IEEE, vol. 24, iss. 3, pp. 74-79, 2007.@article{citeulike:2140455, abstract = {During the last two years, Nokia Networks has started changing much of its product development from a traditional waterfall approach to Scrum, an agile software development process. Besides Scrum, there has been a lot of focus on engineering practices such as test-driven development. We've been involved in creating {TDD} training at Nokia Networks to support the transition to agile development. This training approach has students write tests that count lines of code. The problems they encounter provide valuable insights into {TDD} and its benefits},
author = {Vodde, Bas and Koskela, Lasse},
booktitle = {Software, IEEE},
citeulike-article-id = {2140455},
citeulike-linkout-0 = {http://dx.doi.org/10.1109/ms.2007.80},
citeulike-linkout-1 = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4163032},
doi = {10.1109/ms.2007.80},
issn = {0740-7459},
journal = {Software, IEEE},
keywords = {20120304},
month = may, number = {3},
pages = {74--79},
posted-date = {2012-03-04 21:12:26},
priority = {2},
publisher = {IEEE},
title = {Learning {Test-Driven} Development by Counting Lines},
url = {http://dx.doi.org/10.1109/ms.2007.80},
volume = {24},
year = {2007}
}

A Waterfall is Fine – for Watching
Wordle for March 2012
Agile Offshoring in Practice
Waterfall got it right… almost