Archive for the ‘software engineering’ tag
The Bizarre Bazaar: Misconceptions of Open Source
Open source software is a strange thing. Often described as a bazaar-like marketplace of innovation, open source software has gained a lot of traction in the last decade. But with its success has come a lot of myths. Let’s settle some of those myths here.
Myth: Open source is just an academic pipe dream.
This was a more prevalent argument 10 years ago. Today, all I have to do is point out that open source software is everywhere. Mozilla Firefox is one of world’s most popular web browsers. A huge proportion of the Internet’s websites are run by products like Linux, Apache, MySQL, PHP, Perl, Tomcat, WordPress, and Java. Google’s Android platform is becoming one of the biggest platforms for mobile devices today. Software developers themselves use a plethora of open source software tools and libraries, the most famous is probably Eclipse. Open source is so ubiquitous, you’d be hard-pressed to argue it’s not relevant.
The Agile Manifesto, in Plain English
Imagine yourself on a team of programmers, and you’ve just finished a new feature. What should you do next? Do you write more code, or test what you have? In the world software engineering, the philosophy that dictates what you should do next is what we call “the process”.
Every software development team has a process, even if it’s not explicitly articulated anywhere. The process tells you what you should do, how much you should do it, when you should do it, and why. Sound boring and bureaucratic? It can be, but it doesn’t have to be.
5 Reasons to Love Programming
It’s no secret that I love writing code. I’ve been writing software for over a decade, making programming not only my longest-running hobby, but the cornerstone of my career.
Why do I love it so much? Here’s my list.
Reducing Paranoia with Unit Tests
Remember long division? Remember how confusing that process was to learn? With me, every long division problem was like a jigsaw puzzle wrapped in a Sudoku wrapped in a Ken-Ken.
Writing software is another activity that can be confusing and error-prone. Programming create lots of loose ends you need to keep track of. And with such a complex activity, how do you know you have arrived at the correct solution?
Enter the unit test: a software development practice designed to reduce bug paranoia and improve how well developers sleep at night.
