Code Conventions

Traffic lights highlight the importance of conventions. What would you do if you encounter a traffic light colored purple, white, and orange?

Like revision control, fresh graduates are introduced to the foreign concept of code conventions (or “coding standards”) once they enter professional software teams. As implied by the term, “code conventions” are a set of standards and guidelines that developers have to follow when coding in their software project.

Contrary to what many people think, code conventions are not there simply to make code style consistent throughout large projects with hundreds of thousands of lines of code. Nor is it simply an unnecessary tool used by senior developers to assert their control over the project that only complicates coding.

In fact, properly defined code conventions help manage complexity.

Continue reading “Code Conventions”

Pareto Principle

Pareto Principle

In the next few posts, I’ll be posting about other fundamentals that I have missed so that we could move on to better stuff (i.e. stuff that not everyone knows) by the time I reach the 100 post mark.

The Pareto Principle (also known by many names e.g. Law of the Vital Few, 80/20 Principle, etc.) is a widely observed phenomenon wherein 80% of the effects come from only 20% of the causes.

Continue reading “Pareto Principle”

Spanish Theory of Value

Spanish slaves mining for gold

For anyone who has experienced working in a corporate environment, reading books about 21st century management can be really depressing. Rapid Development made me feel really down (especially since it was just lying there in the office bookshelf with no managers or senior developers reading it), but it wasn’t as bad as The Essential Drucker: that book affected me so much that at one point I closed the book and didn’t touch it until I felt better.

Here’s an excerpt from Peopleware, another book on managing software teams, discussing something about productivity. See if it could make you put your face in your hands and groan:

Historians long ago formed an abstraction about different theories of value: The Spanish Theory, for one, held that only a fixed amount of value existed on earth, and therefore the path to the accumulation of wealth was to learn to extract it more efficiently from the soil or from people’s backs. Then there was the English Theory that held that value could be created through ingenuity and technology. So the English had an Industrial Revolution, while the Spanish spun their wheels trying to exploit the land and the Indians in the New World. They moved huge quantities of gold across the ocean, and all they got for their effort was enormous inflation (too much gold money chasing too few usable goods).

The Spanish Theory of Value is alive and well among managers everywhere. You see that whenever they talk about productivity. Productivity ought to mean achieving more in an hour of work, but all too often it has come to mean extracting more for an hour of pay. There is a large difference. The Spanish Theory managers dream of attaining new productivity levels through the simple mechanism of unpaid overtime. They divide whatever work is done in a week by forty hours, not by the eighty or ninety hours that the worker actually put in.

That’s not exactly productivity—it’s more like fraud—but it’s the state of the art for many American managers. They bully and cajole their people into long hours. They impress upon them how important the delivery date is (even though it may be totally arbitrary; the world isn’t going to stop just because a project completes a month late). They trick them into accepting hopelessly tight schedules, shame them into sacrificing any and all to meet the deadline, and do anything to get them to work longer and harder.

Y4iT Planned Schedule

Y4iT Tickets

Being unemployed, I finally have the chance to go to the Philippine Youth Congress in Information Technology (Y4iT) this year.

With the event less than two weeks away, I’ve decided to plan out what I’ll be doing in those four days. Given that the talks will be done simultaneously at the UP Theater and the UP Film Center, I have to decide which talks to attend.

My choices under the cut.

Continue reading “Y4iT Planned Schedule”

Refactoring

Refactoring

Refactoring is a term you’ll hear thrown around a lot in software engineering discussions. If you’re unfamiliar with the term, you might assume based solely on the content of those discussions that it’s a mystical advanced programming technique known only to experienced developers.

But what exactly is refactoring?

Continue reading “Refactoring”