I am spending the Fall 2014 semester on sabbatical1. This is the proposal I submitted to request my sabbatical leave:
I will use my sabbatical to become more expert in the area of Software Development/Software Engineering. The Computer Science Department recently created a Concentration in Software Development, which has expanded our course offerings in this area from two courses to four courses. This expansion does not simply expand the number of hours we spend on Software Development topics, but adds many topics that we have not been covering at all. Many of these topics are outside the expertise of any of the faculty in the department.
I am the only member of the Computer Science Department who has worked as a professional software developer, but have not worked professionally in that field for over 20 years. Many of the current processes, techniques, and tools were not in use at that time. The members of the department have worked to learn these new skills so that we can teach them to our students, but have only an academic/theoretical knowledge of many of them â€“ we lack the practical experience of using these skills in a professional environment.
During my sabbatical, I will learn the processes, techniques, and tools of modern software development, and apply them in a professional context by working as a full-time (but unpaid) developer within an open source software project. I will work with Dr. Heidi Ellis at Western New England University and Dr. Gregory Hislop at Drexel University to get the academic perspective on how to teach these skills to undergraduate students, and to take advantage of their experience working with, and their contacts within, open source projects.
Drs. Ellis and Hislop are both well-known software engineering researchers and software engineering education researchers. They have been on the forefront of work to help students develop professional software engineering skills by working with open source software projects. They have a particular interest in having students work within projects with a humanitarian aspect. I have done some work with them in this area over the last 4 years, but have not had the time to work exclusively and intensively on developing these skills myself. In addition, Dr. Hislop served on the committee that developed the SE 2004 software engineering curriculum for the ACM and IEEE, and is currently serving on the committee that is updating those standards. I have already tapped his expertise in developing our new curriculum, and plan to do so again as we develop the new courses in the curriculum.
- Develop a list of processes, techniques, skills, and tools that are necessary for modern software development. Thislistwill bedevelopedin consultationwithDrs. EllisandHislop, by reviewingtheSLOs of our newly approved Software Development Concentration courses, and by reviewing the SE 2004 Curriculum and any publicly released drafts of the new ACM/IEEE Software Engineering curriculum. This list will include,atminimum:
- Agile development processes
- Automated build environments
- Automated test environments
- Version control systems
- Software architectures
- Design patterns
- Requirements elicitation
- Software licensing and intellectual property
- Project planning and estimation
- Risk management
- Analysis techniques
- Test planning, strategies and techniques
- Test coverage
- Code reviews
- Quality assurance
- Project and team management
- Select an appropriate humanitarian open source project to participate in. The project will be one which
- Allows me to experience the full range of processes, techniques, skills and tools from the list above. (Or as many as possible.)
- Allows me to use tool and language skills I already possess to minimize the number of new tools and languages I need to learn.
- I can continue to use with students in the Software Development Capstone course, and with other courses in the concentration.
- At this point, the two projects that seem most likely for my participation are:
â€œThe global OpenMRS community works together to build the world’s leading open source enterprise electronic medical record system platform.
Weâ€™ve come together to specifically respond to those actively building and managing health systems in the developing world, where AIDS, tuberculosis, and malaria afflict the lives of millions of people.
Our mission is to improve health care delivery in resource-constrained environments by coordinating a global community to create and support this software.â€
â€œWe are a non-profit tech company that specializes in developing free and open source software for information collection, visualization and interactive mapping. We build tools for democratizing information, increasing transparency and lowering the barriers for individuals to share their stories.
“Ushahidi”, which means “testimony” in Swahili, was a website that was initially developed to map reports of violence in Kenya after the post-election fallout at the beginning of 2008. Since then, the name “Ushahidi” has come to represent the people behind the “Ushahidi Platform”. Our roots are in the collaboration of Kenyan citizen journalists during a time of crisis. The original website was used to map incidents of violence and peace efforts throughout the country based on reports submitted via the web and mobile phones. This website had 45,000 users in Kenya, and was the catalyst for us realizing there was a need for a platform based on it, which could be used by others around the world.â€
- Participate in the selected project. Iwillparticipate in the selected project on a full-time (unpaid) basis, contributing to the project in whatever ways I can including:
- Participation in planning and design meetings
- Writing code
- Writing documentation
- Helping with support
- Participate in Western New England University course. I would like to observe or help teach a software engineering course at WNEU so that I can see what pedagogy is used in the course, and adapt it to our own courses.
- Blog about my experiences. I will write about my sabbatical experiences on my blog (http://blog.karl.w-sts.com/). This will allow me to document and reflect on what I am learning and how I can use it in our own courses.
Preparation for this Sabbatical
- Participant in POSSE (Professorsâ€™ Open Source Summer Experience) in 2010, 2011, and 2013 â€“ A workshop designed to prepare faculty to support students working within open source software projects. The summer 2013 workshop group is continuing to work together over the 2013-2014 academic year.
- Participant in SoftHum (Software for Humanity) workshop in 2011 â€“ A workshop with faculty working to design materials for use in their courses.
- One of the organizers of Teaching Open Source Symposium in 2012
- Participant in OpenFE Materials Sprint in 2013 â€“ A workshop to develop materials for teaching POSSE workshops
- Introduction to Programming
- Software Construction, Design and Architecture
- Software Process Management
- Software Quality Assurance and Testing
- Software Development Capstone
- Software Development Process
Benefits to the Computer Science Department and to the University
The department will benefit by having a faculty member who has relevant professional experience in software development, with contacts within at least one open source software project, and with the academic experience of applying that experience to courses. I will be able to use that experience and those contacts in order to give students the opportunity to gain valuable practical experience working within a large software project on the same types of tasks and using the same kinds of skills that they will be expected to use in their professional careers.
The University will benefit through a strengthened Computer Science program, by having a higher profile in the software development world, and being recognized as an organization that has donated a semesterâ€™s-worth of work of a full-time faculty member to further the mission of a humanitarian project.
There have been some changes since I wrote the proposal and it was approved:
- IchoseOpenMRS as the project that I will be working within.WhileUshahidi seems like a very interesting project,OpenMRS seemed to fit better with my goals for the following reasons:
- It is written primarily in Java, which is the language that we use most in our Computer Science courses. (Ushahidi is written primarily in PHP, which we do not teach at all.)
- OpenMRS seems to have a more “formal” software development process and tooling, which I think covers more of the topics on the list of what I want to learn.
- We can use OpenMRS as a tool in the Health Informatics course that we teach for the Nursing majors, to provide an Electronic Medical Record system for the Nursing students to try out.
- I participated in the Teaching Open Source Symposium at SIGCSE 2014 and in POSSE 2014.
- I increased my use of Open Source tools both in my own work, and introduced them in our first-year courses.
- Students in my Spring 2014 capstone course did some work within the OpenMRS project.
- I started attending OpenMRS online meetings to familiarize myself with the project.
I will be writing more about sabbatical as the summer and the semester move along.
- For those not familiar with the ways of academia, a sabbatical is a paid leave awarded every 7 years to allow a faculty member time for research or updating skills. ↩