Hacker News new | past | comments | ask | show | jobs | submit login

I'm a bit of a centrist here:

I think of software lies somewhere nebulously between craftsmanship and engineering.

There's a flavor of pure craftsman/artisan that can make an excellent product with overall little "technical" knowledge. A traditional potter works much on instinct, texture, feel. He might know how to select a clay by color, not knowing or even thinking about the constituent minerals. Water is added in eye-measured doses.

Then, there's a flavor of pure engineer that executes most of his tasks in structured, industry-prescribed, formally-verified, deterministic ways. Particle aerospace engineers are the extreme in this category--they're a slave to the formal methods that rule their design, build, and test processes.

But we software "engineers" float back and forth between the two--and all the time. One minute, we might hacking together a throwaway script that checks if Amazon has toilet paper. The next: writing a test for a rules engine that tests every corner case in a truth table. Or proving that some algo runs in O(log n) time.

Most craftsmen/artisans lie somewhere on this spectrum, but I feel we software "engineers" wobble around a large swath.

So, call us software engineers, call us software craftsmen--they both apply.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: