Francis was at the start of what was sure to be a challenging and rewarding journey towards a degree in Computer Science. One of his first classes was a group study course built around cross-departmental education. It forced together a Business major named Suzanna to play the role of Project Manager, Francis and Carlos, another CS student, as developers, and a Music major named Johann, as a tester. Assignments and interaction with the instructor were all online, but the group met in person to work on their project.
The parameters were simple: over a semester, the group would develop a fully functional Public Administration website for a fake city to allow its fake citizens to pay their fake utility bills with fake money. The biggest wrinkle was that they had to use a home-grown application framework the professor built called the Framework Application Provider, or FAP. FAP was supposed to be easy to get a handle on, and would allow n00bs like Francis to easily crank out whatever they wanted, whenever they wanted. The problem was that FAP was actually a big, sticky mess.
Francis’ instructor, Doctor Wacker, forced them to buy FAP licenses as part of their course materials, which promised extensive documentation and demos for all things FAP. This “extensive” documentation took the form of a single tutorial video on creating a FAP object which had all the quality of a scrambled cable TV channel, circa 1996.
Francis tried emailing Doctor Wacker about the lack of assistance, and got no response for two weeks. When a response arrived, it was a brief, “You shouldn’t need me to hold your hand! FAP is so easy to use, it practically does everything for you! I expect a working demo by mid-terms.” While Suzanna typed away at dull requirements documents, Francis and his fellow programmer were left to dig through the FAP source and try and understand it with their limited experience.
“I don’t even…” Francis said. He tried to run his sample programming inside of FAP. “I’m sure I understand the syntax, but these functions don’t do what they’re supposed to do.”
“Oh, I know,” Carlos said. “You know commitDataChanges
? It opens a print dialog.”
“Doctor Wacker is a real jerk.”
As the semester wore on, Francis and Carlos beat FAP around and eventually figured out how to get FAP to turn input into output that wasn’t total garbage. Their progress wasn’t much: a login page and a basic account page. Bill Pay was just a fantasy. The week before the demo was due, they handed it off to their tester Johann, who was so busy tuning his g-string that he couldn’t be troubled to show up for their group meetings.
Francis and Carlos emailed a URL to Johann with explicit instructions on how to access their demo site and test it. Ten minutes later, he surprised them with a “works fine” response. Clearly, Johann hadn’t tested anything, because “works fine” would never have been uttered by anyone who actually used the site.
Suzanna set up a meeting for Francis and Carlos to submit their mid-term demo to Doctor Wacker, along with her carefully handcrafted requirements. She insisted they read them over first. The requirements were 200 pages of promises of functionality that would never be delivered and weren’t close to what the program actually did. Francis and Carlos were just learning to be developers, but Suzanna had already mastered the fine art of project management.
“Whatever,” Francis muttered to Carlos. “I don’t give a FAP anymore. Let’s turn this in and spend the rest of the semester to polish it up.” Off it went to the professor, requirements bible and all, to be judged.
Two weeks later, the group received feedback. “Off to a good start! This really shows the power of what FAP can do for you! B+ work. Add in all the features listed in the requirements, and it becomes an A for your final.”
Suzanna took Wacker’s response as a mandate that her requirements document was golden, and now it was only up to her developers to make it happen. Francis and Carlos knew that it wasn’t going to happen, so they spent the rest of the semester hacking away at FAP and whacking out the handful of requirements they could meet from the list. What they wound up with was exactly what they set out to make- a website where John Fakington could create an account and pay any bills associated with his account number. It wasn’t pretty, but it worked.
Doctor Wacker wasn’t pleased. Upon receiving the final project, he called it, “sloppy and an embarrassment to FAP.” Suzanna screamed at them over the grade, Johann complained that "C is such a dull key," but Francis and Carlos were perfectly happy to live with the C- they got, only because it meant they were done with FAP forever. At least until they registered for their next semester. The university had rolled out a new registration website with online payments, that allowed any student to create an account and pay any outstanding bills with their account number. It wasn’t pretty, but it worked.
At the bottom was a prominent banner, “Powered by Doctor Wacker’s FAP.” Wacker happily stole their work to stroke his own ego, and it left a bitter taste in their mouths.
Image from “Batman: Beyond”