The Truth About RUP

The Truth About RUP: "Every methodology I've come across has, at its kernel, a very small section labelled 'do magic here'.

RUP is much the same. You draw the user interaction diagrams, you do the flow things, , you draw class diagrams with methods and stuff and then they get turned into code and the application falls out of the bottom of the process."

It doesn't matter what type of software development methodology you use, in the end success depends upon having people on your team with the right skills and aptitudes. That doesn't mean "don't bother with process" - it means that no process can make up for not having the right people.


How To Write Unmaintainable Code

How To Write Unmaintainable Code: "In the interests of creating employment opportunities in the Java programming field, I am passing on these tips from the masters on how to write code that is so difficult to maintain, that the people who come after you will take years to make even the simplest changes. Further, if you follow all these rules religiously, you will even guarantee yourself a lifetime of employment, since no one but you has a hope in hell of maintaining the code. Then again, if you followed all these rules religiously, even you wouldn't be able to maintain the code!"



If you're a blogger trying to increase traffic to your blog, this one is worth a try.

Basically, after you register you surf around and look at other peoples' blogs. For every two blogs you look at, you'll get a visitor back to your site. There are also mystery bonuses of extra credit and a 'blog lottery' where you can buy lottery tickets in exchange for credit, with a huge number of credits as the main prize.

With all the credits you earn, you can buy banners and advertising and drive more visitors to your site.

This is a great way to check out a lot of lesser-known blogs and troll for ideas. Have a look at the designs different people come up with, see what they're blogging about, and see who they're linking to. You can 'blogmark' any interesting blogs you come across, so you can find them again later.

There's also a referral system, so if you recommend BlogExplosion to other people who sign up, you get bonus credits equal to 10% of the credits those people earn. It doesn't take credits away from those people, it's just an extra bonus to you for referring them.



Java Programming Notes

This is a huge collection of notes and code snippets written by Fred Swartz to fill in the missing bits in standard Java textbooks.

If you're having trouble finding help in a normal book or tutorial, this is the site to hit!

Java Programming Notes


The problem with IDEs

Here's an interesting article about learning to program, and why using an Integrated Development Environment (IDE) right from the start might not be such a great idea.

The basic theory is that IDEs shield the user from much of the knowledge of what is going on "under the hood", leaving the learning process incomplete. There are a lot of interesting discussion points in the comments below the article, too.

Read about why you should not start with an IDE when learning how to program:

The problem with IDEs ยป Whitespace


Specialties and Strategies

This two-part article talks about specialties within the software development field. How do you choose which specialties to pursure or develop? How do your job choice and career goals influence your set of specialty skills? How can you protect yourself from having your specialty become obsolete?

This is an interesting essay to get you thinking about how your are managing your career and where you want to go with it.

Even if it was written by a Windows programmer :-).

Specialties and Strategies (Part 1) - DeveloperDotStar.com


Camels and Rubber Duckies

Joel Spolsky has written a great article about how pricing works, and all the different things that need to be taken into account when setting the price of your product.

Sort of.

You see, every time you think you understand how it works, he pulls the rug out from under you with fascinating insights into human behaviour and corporate stupidity.

Still, by reading this article you'll have a good appreciation of the theory of cost curves, consumer surplus, coupons and discounting, and home/professional/enterprise editions of software products. You'll understand what companies are trying to do when they come up with strange-looking pricing structures and cash-back rebates, and with luck you'll be able to figure out how to avoid letting them rip you off.

Or you'll just conclude that it's all too hard and let somebody else deal with setting prices.

Joel on Software - Camels and Rubber Duckies

The Task Pattern

Often, you need to write code that performs a time-consuming task, or a task that takes an indeterminate amount of time. This often happens when interacting with the outside world, like executing and waiting for output from another program, sending a file across a network connection, fetching a web page, etc.

The Task Pattern provides a way to monitor long-running tasks, allowing you to give the user feedback (e.g. a progress bar).

"This paper is divided in eight sections: In the first section I examine the problem and motivation for this design pattern. In the second section I explain the pattern in a basic "hello world" manner. Then in the third section I integrate the Task Pattern with the Gang of Four Command, Command Holder and Mediator patterns. In the fourth section I explain how to use the Task Pattern with a worker thread. (The worker thread approach is recommended for production systems.) In the next section the paper explores implementing the pattern with aspects. In the sixth section I present a quick case study of the use of the Task Pattern. In the last two sections the paper does a summary and conclusion and cites references."

The Task Pattern: A Design Pattern for Processing and Monitoring Long-Running Tasks - DeveloperDotStar.com


Joel Spolsky on Salon.com

Joel Spolsky is the founder of Fog Creek Software, publishers of CityDesk (a desktop web content management system) and FogBugz (a bug tracking system designed to actually be useful instead of just collecting meaningless statistics for managers' PowerPoint presentations).

Joel has published a couple of books - one on user interface design (based on this series of online articles) and another that's a collection of his Joel On Software essays.

What I like about Joel is his writing style. It's relaxed, easy-going, and illustrated with funny and memorable stories and anecdotes that help both the explanation and the retention of the point he's making.

This interview is definitely worth a read, especially if you develop software for a living and have to deal with any kind of 'methodology'.

Salon.com Technology | The Shlemiel way of software


Const Correctness

When programming in C++, applying the concept of 'const correctness' can make your code easier to read and understand, as well as more robust and less error-prone. But it's a difficult subject to understand.

This series of 6 articles discusses all aspects of C++ const correctness quite thoroughly, with lots of example code. It progresses step-by-step, starting with simple examples and building in complexity with each article.

Definitely worth a read if you work on a large C++ project.

C++ Const Correctness


The Tao Of Backup

"A novice wanted to learn the Tao of Backup. The master said: "To become enlightened, you must master the seven heads of Backup. He who knows the heads will keep all his data forever. He who knows them not will lose all his data," and with that, the lessons began..."

If you're looking for a simple, fun way to explain proper backup strategy to someone, this is it. The content is very well written, and the advice is as good as you'll find anywhere.

Go on. Grab the pebble. Head out into the world with a clear mind and a reliable backup system.


Bubble, Bubble, Build's In Trouble

Here's a novel and fun way to alert the team when your automatic build tests start failing - light up a green lava lamp when everything's OK, and light up a red one when a test has failed.

The article explains what X10 home automation equipment you'll need, how to hook it all together, and how to interface it to your build machine so that the right lamp lights up in response to the output of your test framework.

It's more interesting than just sending emails out to the team!

http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc: "Bubble, Bubble, Build's In Trouble"