Over the last 10 years, the use of Agile software development methods has quickly transitioned from a cutting-edge approach to a commonplace practice. As someone tasked with recruiting technical talent at my local university, I assumed that universities would keep pace with the Agile movement. I started to look for the word Agile on student résumés, and I was surprised to find that no students were listing it as a skill.
This was a call to action for me, because I understood how important this skill was for securing good jobs, and because I had researched the benefits of Agile development as part of my dissertation. One of my philosophies is that people can complain about something that needs to change, or they can take action to make that necessary change. I prefer taking action, so I decided to propose an Agile course at the university.
Identifying the Need
First, I decided to dig a little deeper by doing some informal research into why students weren't listing Agile skills on their résumés. Most of the students I interviewed said something along the lines of "I've heard of the term Agile, but I didn't learn about it in class, and I don't know much about what it means." They had no idea that Agile was a skill they might need in order to market themselves to potential employers.
Next I met with professors, department chairs, and deans in the business, engineering, and human-computer interaction (HCI) fields to inquire about how Agile was being taught at the university. Their responses ranged from vague to knowledgeable about what Agile development could offer an organization. In general, the faculty agreed that Agile had not been taught to date, but it should be taught at their university. The biggest problem was that they had little idea of where to start. After all, they didn't have professors on staff who had worked in an Agile environment, nor did they know of anyone researching the topic. They had very little awareness that Agile was a trend in the field of software engineering or product development.
My final step in the research process was to speak to local Agile enthusiasts in the field. I wanted to know whether any of their recent college hires came on board armed with knowledge of Agile development. Their consensus was that the employees they had hired right out of school had no training or education in Agile software development. Most of these enthusiasts agreed that their companies had trained employees on the job by bringing in Agile consultants, sending workers to Agile training, or hiring an Agile coach. Now they were seeking a university program that was teaching Agile, so they could recruit trained students and reduce their training requirements.
Once my interviews were complete, I was more convinced than ever that a hole needed to be filled at my local university—and possibly beyond, in higher education. As far as I knew, I was the only person who had done recent Agile development research, and I had experience working in an Agile environment. It was up to me to propose a new class to the university.
Making the Sale: How to Convince Your School to Teach Agile Concepts
Because I've spent much of my career convincing business leaders to invest in major multimillion-dollar technology projects, I assumed that proposing a new university course would be an obstacle I could overcome. But I quickly realized that it would be a much bigger hurdle than I ever expected. I had to learn how to navigate their political structure and make my case by appealing to the priorities of academia—not an easy feat for someone who's accustomed to corporate America.
Understand Your Goals
As I began to think about what kind of class I wanted to propose, it quickly became clear that it should be more than just a one-day seminar. Students needed enough information and practice to feel confident that they were skilled at Agile techniques. I also wanted the students to get more in-depth knowledge, to have the ability to work on a real-world design and development project, and to hear from practitioners in the field. This level of content required a full-semester course.
At our university, all new proposed courses require a full proposal form for the department chair as well as a preliminary syllabus. Depending on the targeted department, proposals need to be adjusted to fit with existing programs. For example, an Agile course taught as part of a computer science curriculum might involve more programming than a comparable course taught in a business school, which would benefit more from learning about planning sprints and managing requirements. My Agile course initially got the most interest from a human-computer interaction (HCI) program. That program's focus was usable design, and it had a mix of technical and non-technical students, so I put more focus in my proposal on design considerations and usability, and I suggested that the biggest assignment be the partial redesign of a current product.
Make the Right Connections
A big part of getting my course approved was an extensive search to find the right person to help me champion the idea. Surprisingly, it wasn't someone who was an Agile enthusiast, but rather a faculty member who was interested in new and interesting approaches to developing products. While I had to pitch the idea to several other people in his department, my champion helped me to wade through the process of getting approval for an experimental course. He also enlightened me on how to provide politically correct answers to questions such as these: "Why do we need a separate course?" "Can't we tuck this content into the project management course that already exists?" This process might be a little easier for proposers if they already work at the university and can reach out to their network of colleagues. For anyone without that advantage, a search through faculty profiles at the target college might be the best way to find a champion.
Leverage Your Network
I relied heavily on my network of Agile professionals to help me craft and propose the contents of the course. My Agile experience at my own company differed from the experiences of other people working in Agile environments, and I wanted to make sure that I represented a more general view of the Agile world. After all, the students would likely get job offers from different kinds of companies, ranging from startups to large global corporations. My network provided a lot of helpful ideas that made the course more useful and relevant.
Another great advantage that my Agile network provided was references to the university during the proposal phase. I supplied the address of the target department chair, and my contacts sent letters emphasizing the need for Agile education at the university.
Finally, my Agile network served as guest speakers to help bring the topic to life during the course. They were also excellent resources for an interview assignment I required during the course. They enjoyed being Agile evangelists and interacting with the students. They also liked having a direct pipeline to students who would graduate with Agile knowledge.
Teaching the Course
I wanted to teach the basics of Agile with a focus on three major themes: networking with the Agile community, preparation for certification, and real-world experience. I couldn't cover everything students needed to know about Agile in only a semester, so I wanted them to know how to reach out to other Agile enthusiasts for ideas and support. Not all students would be interested in certification, but I wanted them to have that option, and the course offered the required number of education hours. Finally, I feel that the best way to learn Agile is through experience, so I wanted to give students the closest resemblance they could get to real-world experience while in a classroom setting.
These guiding objectives led me to plan three assignments:
- Interview an Agile practitioner who worked outside the student's company (if he or she was employed), discussing the practitioner's experience with Agile.
- Pass a multiple-choice test, with questions similar to those asked on the Project Management Institute's Agile Certified Practitioner (PMI-ACP) exam.
- Work in Agile teams with the owner of a small business to propose a new design for the organization's e-Commerce site, using Agile methodologies.
My final challenge was to figure out a way to fill a four-hour class that couldn't have face-to-face discussions or activities due to the online format of the course. Given my focus on networking and real-world experience, I went back to my Agile network and asked key Agile thought leaders in the community to engage in a Q&A with me on the topic of the week throughout the first half of the course. I dedicated the second half of the course to lecturing on the weekly topic. The course always concluded with a retrospective. Students could also post retrospectives during the week, which were read during this time period. About half of the students attended the class live, and the others watched the recorded class sessions.
Retrospective: The Next Calling
I was pleased with the proposal process, and I plan to use many of the same strategies again to propose an Agile course as a regular offering at the university. Teaching the course on a trial basis certainly gave me a much better understanding of the strategies that work best. I also received some good feedback on the course. One suggestion stood out for me above all the rest: This student said that a good textbook really would have helped him learn the course material. Then I knew what I needed to do: write an introductory book on Agile methods that would be appropriate for a semester-length curriculum.
As luck would have it, I later met a fellow Agile expert, Kristin Runyan, who shared my passion for Agile education. She had taught introductory Agile courses in corporate settings, and she agreed that a textbook would have helped her students to understand the topics. Together we crafted a book outline that was accepted by a publisher that agreed there was a need for an Agile textbook. After signing a contract, we were on our way to creating Introduction to Agile Methods.
One important lesson that the class taught me was that networking with Agile professionals was extremely beneficial for students. The Agile professionals really helped to answer the "Why try Agile?" question for students, so I knew that networking with Agile experts would be an important part of any Agile textbook. We reached out to many of the key Agile thought leaders and were delighted that they were willing to share their insights in the book. At least one thought leader is interviewed in every chapter. In addition, the appendix includes a case study focused on John Deere's adoption of Agile.
The class also taught me that some curriculums are more technical than others, and an Agile textbook needs to accommodate both. For this reason, the book includes information about Agile roles, culture, and marketing, as well as a chapter on quality that provides a step-by-step code example of test cases for test-driven development (TDD).
We feel that the essence of a great textbook is not only providing clear explanations and exercises to facilitate learning, but acting as a valuable reference as the reader continues mastering skills. With this aim in mind, we spent significant time developing illustrative examples, an extensive glossary, and an index in which finding key topics is quick and easy. This textbook would have made it much easier for the students in my Agile course to study for the exams and work through the Agile interface design for their customers.
Agile software development has enjoyed widespread adoption over the past 10 years. With Agile becoming the norm, college hires and even experienced hires will be expected to know the basics of Agile, and companies offering Agile training for employees will become less prevalent as this trend continues. Therefore, it's important that colleges and universities start to incorporate Agile software development courses in their curriculum. I hope that the ideas I've presented in this article on proposing and teaching an Agile software development course, along with having a new textbook designed for learning the topic, will arm educators with the tools they need to get started.