Category Archives: JRT-Dev

This is a blog where I can present my ideas, concerns and thoughts on all things related to Software Development, from the tools to the talent. This is a place for professionals, not those that expect things to be PC and nicey-nice.

Top of the Food Chain, Baby!

Something that has always bothered me… I have always considered Software Developers to be pretty much at the top of the food chain when present in a software company. And that is not just because I happen to be one! Please allow me to explain…

If you are a software company, then your whole business is about software. Hence, your most valuable asset is your group of software developers! Yet many software companies treat their developers as disposable items, when they should be treated as the least disposable asset.

Another thing: software developers are generally the only ones present within an organization that can be fully productive (and make money) on their own, taking on the roles of almost all other members of an organization. For example, a single software developer can start their own company, do market research and design, architect, develop, test, manage, package (for deployment), and market a software product. They can also do their own user support. Now, of course, they may not be at good at marketing, as a large organization’s marketing group, but they at least CAN do it to some degree. Can people in the marketing group do that? How about the H.R. or Sales groups?

On the other hand, almost all other people/groups present within a software organization need the presence of a software product (hence, duh, the software developers) to do their jobs. Without a product, the marketing department has nothing to sell. The QA department has nothing to test. Project/Product management have nothing to manage. And without all that, the CEO has no company to lead. It all starts with the developers!

Using the above example about how a developer can successfully take on all those other roles in the organization, when is the last time you met someone in marketing that can do all that? Or in support? Or QA? Or any levels of senior management or executives?

Also, when is the last time you saw a corporate announcement (from a software company) that seems to credit/mention all other groups in the company except for software development? Dunno about you, but I sure see that shit a whole lot more than I should. Developers do not ask for much; we expect to get recognized for doing our part, and expect to get rewarded accordingly. Sounds pretty simple, huh?

Writing code for 8+ hours a day takes a bit more work and brain power than cold-calling someone, taking a client out to lunch, or bitching at developers about missing a milestone after you “adjusted” their estimates without their permission or guidance!

Something for managers/executives to think about the next time they are tying to figure out how to spend their budget or distribute the allocated raise/bonus money:

Never Forget Where Your Bread Gets buttered!

C-Hash, C-Pound, C-WHAT?

A recent discussion raised the fact that C#, often called “See Sharp” is technically incorrect because the symbol used is not the musical symbol sharp, but is the octothorpe, also known as Pound, Hash, Splat, Number Sign, etc.

An example of the differences is shown here (provided your browser and current font set support it).  The character above the 3 key on most US keyboards is this: # – but the musical sharp symbol is this: .  See the difference?  Simply, one has angled vertical lines (“pound”), but the other has angled horizontal lines (“sharp”).

Continue reading C-Hash, C-Pound, C-WHAT?

Educated Opinion .vs. Knee-Jerk Reaction

Ever make a comment regarding the performance of applications written for the .NET platform, or about Java’s performance and/or, God forbid, the current system requirements of most large-scale J2EE implementations, only to have some dumbass jump on you about how your comment is just the typical knee-jerk, “C/C++ elitist” reaction to the word “Java” (or “C#”, or whatever), never stopping to think that you might actually have an informed opinion about it based on actual experience?

And funny how they never consider their reaction to be a knee-jerk reaction to your comment?

Dumbasses…

$0.02 to buy a clue: Remember “HotSpot”? Do you think it was created because Java was already fast enough, or because there was an actual performance problem it was supposed to address? Think about it…

To Design or Not To Design?

One of the things I have noticed is that the ideals of design are often misused or misapplied.  More often than not (in my experience), this happens more often with developers that have more academic experience than real-world experience.

Nothing is worse than a recent CS graduate with a masters degree that has less than 2 years real-world experience creating a 23-page detailed design document for something as simple as a word-counting application.

Schools may teach software design, but they may fail to teach when it is best to forgo the design and start coding, letting let the design evolve naturally from the code, and not the other way around.

When designing first, inexperienced developers are more likely to over-engineer a solution.  They may see entire objects with rich hierarchies where a simple basic-type variable would work fine.  Only with experience does one realize to spot the situations where spending too much time on design is detrimental to a software project.

When I was younger, I learned: Think First, Code Later.  However, wisdom is what caused me to realize that thinking before coding is not necessarily the same as designing before coding.