Link Search Menu Expand Document

What is software engineering?

An introduction to what software engineers actually do.

XKCD sketch of Julia Stiles, as a 12-year-old, with a bandana over her head, long wavy hair, elbow shirt, wrist band, and pants. Caption: The best thing ever to appear on TV: 12-year-old Julia Stiles as a hacker in a 1993 episode of PBS's "Ghostwriter". Julia Stiles: Do you know anything about hackers? Julia Stiles: Can you jam with the console cowboys in cyberspace? Julia Stiles: Never experienced the new wave? Next wave? Dream wave? OR cyberpunk?

Image: xkcd 130

What is code?

Here is what you’ve been told: All of the computer code that keeps the website running must be replaced. At one time, it was very valuable and was keeping the company running, but the new CTO thinks it’s garbage. She tells you the old code is spaghetti and your systems are straining as a result. That the third-party services you use, and pay for monthly, are old and busted.

Are We Really Engineers?

If I wanted to know how software development compares and contrasts with “real” engineering, then I’d have to talk to “real” engineers. But thinking about that, I realized another problem: while “real” engineers could tell me what they did, they couldn’t tell me how their work differed from mine. Just as we make sweeping statements about real engineering without any evidence, they could make sweeping statements about software without knowing anything about it either. Even if they use a bit of software in the day-to-day work, that’s not the same as developing software as a job. Only a person who’s done both software development and “real” engineering can truthfully speak to the differences between them.

Why Software Engineers Disagree About Everything

Why are there are so many disagreements in software? Why don’t we all converge on the same beliefs or technologies? It might sound obvious that people shouldn’t agree, but I want to convince you it’s weird that we don’t. This talk will be a philosophical exploration of how knowledge converges within subcultures, as I explore this question through the worlds of software, online fraud, and poker.

What is “creative” coding, anyway?

At this point, I am wary whenever I hear the term “creativity” used in the domain of computer science and computer programming. Since there are so many ways to create in this world, creativity can mean different things to different people.

The ‘Invisible’ Materiality of Information Technology

But if the digital is in actuality grounded in the material, where is all that materiality hiding? Buildings full of servers are generally out of sight and out of mind, even without the highlighting and hiding arising from the cloud computing metaphor. Very likely most people have never been in a server warehouse. Even for people who live near one, in some cases its considerable consumption of water and electricity is concealed in part due to secrecy agreements signed with local governments. There is also a disconnect between physical infrastructure and personal use—it is also likely that most people do not know where their data is stored or requests are being processed (the privacy-conscious might at most know which nation the servers are in, given the different regulations); and of course one of the typical features of cloud computing is that service providers can seamlessly shift the storage and processing to different locations.

IEEE Code of Ethics

IEEE Code of Ethics on professional activities