My Authors
Read all threads
@yminsky @hillelogram I'll do my best. Here's my story. I was asked to teach upper-level software engineering many years ago. How hard can it be, I thought. I do SE, I publish in all the major SE confs, this should be easy. I got about a dozen SE books to read over winter break to design my course. »
@yminsky @hillelogram Something happened to me that NEVER happens to me. Middle of the day, deep in the middle of SE books, I was falling asleep. Like actually going out. I knew I couldn't in good conscience use such a book with my students. As this kept happening, I was panicking. »
@yminsky @hillelogram Then I realized the problem: it's all abstractions up front. (And more than a bit of what Spolsky calls architecture astronautics.) It was clear that if I began my classes the same way, I would kill my students. Had to find another way. »
@yminsky @hillelogram I had an insight, which is the same insight we used many years later to design Logic for Systems: Teach It Backwards. That is, take the order in the books, and go in the opposite order. Invariably, this means you go from practice to theory. Starting with the former is obvious. »
@yminsky @hillelogram Ending in the theory is more subtle. Usually, it's easy to *motivate* by then. Second, it's an *abstraction* over what they've seen. Third, smart students are *thirsty* for it by then. Everything nicely clicks into place. »
@yminsky @hillelogram So we did essentially that. (Leaving out lots of details here.) Near the end of the semester, we got to software development processes. We had obviously been using one already (agile-ish), and they'd used others before. Now they could see there were shapes, patterns. »
@yminsky @hillelogram But the thing about Waterfall is, I was inspired by my studies of philosophy of science as an undergrad, where I learned about historicist approaches. [See more at the link.] I realized a similar approach was the right way to view these models. »
plato.stanford.edu/entries/ration…
@yminsky @hillelogram Looking back, today, Waterfal is easily made to look silly, rigid, authoritarian, white-shirt-and-black-tie. Note I said "made to look". If you strip it of the mockery, it's not a *terrible* idea. Sure, it needs iteration. That's not a cosmic change, just an increment. »
@yminsky @hillelogram But it's even more significant when you look at it *as a product of its time*. What did software development look like *before* that? They weren't sitting at interactive terminals, using continuous integration, etc. They had Fortran, punched cards, and 1-day turnarounds. »
@yminsky @hillelogram It's worth spending a while putting yourself in the shoes of a 1958 programmer. You've got a complex problem to solve and unimaginably primitive tools (maybe not EVEN Fortran!). How do you achieve your goal in a reasonable way and obtain a reliable product? »
@yminsky @hillelogram So we went through this bottom-up process of rediscovering the key elements of Waterfall. Roughly, I have been able to get classes to mostly derive it for themselves. And once they do, they don't mock it. They just reflect on it and figure out ways to improve it. It's all good. »
@yminsky @hillelogram One last comment about that course. The first day of class I put up about 30 different terms from those snooze-fest SE books on the board. Didn't explain any; just wrote them down, then asked the class why I was writing them. They guessed, "You'll teach us all this?" »
@yminsky @hillelogram "No", I said, "I'm not going to teach you ANY of these". (Not strictly true, I did talk about some of them.) "So why would I be writing them down?" Even more bafflement now. They're all out of guesses. "Because", I said, "one day you'll go to an interview. … »
@yminsky @hillelogram "They might mention one of these terms. If you say ‘I've never heard of that’, they'll say, ‘What the heck kind of university did you go to?’ But if you say, ‘You know, my SE professor mentioned it, but I honestly don't remember what it means.‘ they'll … »
@yminsky @hillelogram "wink, grin, and say, ‘Oh, me too, that's totally fine, let's talk about what's important instead.‘ I don't want you to ever have that disadvantage at an interview. But now you can honestly say I mentioned it."

They immediately knew this wouldn't be like other SE courses. •
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with ShriramKrishnamurthi

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!