Home » Archive

Articles Archive for December 2003

Uncategorized »

[30 Dec 2003 | Comments Off on Extending Non-Abstract Classes | ]

Many people create APIs that extends concrete (non-abstract) classes. I have come to avoid this practice. Through the use of design patterns (especially strategy) I have come up with much better designs. It is my preference that classes are either final or abstract. If they are final, nobody can extend them. If they are abstract, then all of their methods should be either final or abstract.
Why shouldn’t you extend a concrete class and override one of its methods? It breaks encapsulation. You have …

Uncategorized »

[29 Dec 2003 | Comments Off on Should Database Design Be Incremental? | ]

When developing a new system that is not in production, database design can easily be incremental without much thought. In production systems, however, changes to the database are not as pleasant.
If the database is an interface point between multiple systems, it seems like its worth spending the time to sit down with all involved parties and hammer out the database schema in an upfront fashion. Of course, this doesn’t eternally prevent changes to the database, but it can help standardize an interface. Another approach to standardization …

Uncategorized »

[17 Dec 2003 | Comments Off on ID Values | ]

I always think about ID values as some buried part of the application whose value nobody should ever know or care about. The system I’m working on now is interesting because the employee IDs actually have meaning. The first few digits represent the state, the next few digits essentially represent an area, and the rest is unique to the employee.
I would normally think that this is unnecessary, that they could have just auto-generated a number and assigned it to an employee. But, out in the field, managers …

Uncategorized »

[17 Dec 2003 | Comments Off on Decoupling Technical Decisions from Business Decisions | ]

Decoupling technical and business decisions is very important. Every time I sit in a meeting where technical people are making business decisions and business people are making technical decisions, I get frustrated. This is one aspect of XP that I truly believe in.
No discussion has really taken place regarding the “business requirements” for the project I’m working on. If it has, it was well buried in technical discussion about the database schema. These technical discussions are carried out with the customer. The developers sit down …

Uncategorized »

[15 Dec 2003 | Comments Off on Simplicity | ]

I find a lot of parallels between this article on ‘The Role of Simplicity in Writing’ and the role of simplicity in software.
A developer’s source code will inevitibly be read by someone else. That’s why people realize the importance of code reviews. If your source code is complex, then people can’t read it, so they are more likely to want to rewrite it than maintain it.
When I’ve worked in XP environments, it was nice because through pair-programming, collaborative code ownership, refactoring, and TDD, we created code that was …

Uncategorized »

[12 Dec 2003 | Comments Off on Where Would Agile Not Work | ]

I often ponder about types of environments where agile methodologies wouldn’t work.
The company I’m working for right now uses no methodology at all. The developers deliver to different groups within the company, mostly creating small Web applications, but also a few that are a bit bigger. Yesterday, I found out about the “process” for adding new features on one of the bigger projects. The developers create whatever they think the customer might want. The customers have absolutely no contact with the developers, because they are separated …

Uncategorized »

[10 Dec 2003 | Comments Off on From a Rare Breed | ]

I fall into an interesting category of software developers. Most of my experience as a professional software developer (thus far) has been working with agile teams using agile processes.
Most developers who follow agile methods seem to come from the “been there, done that” camp. They have experienced all the non-agile strategies and people. They learned through years of experience why agile was important. I, on the other hand, only worked for a couple of years doing business software before adopting eXtreme Programming around the 1999-2000 timeframe. …

Uncategorized »

[10 Dec 2003 | Comments Off on In Shock of Agilelessness | ]

I just started working on a new contract as a Web application developer. After working on several “Agile” software projects, I am back on a very non-Agile project.
It is interesting how important concepts in software development get interpreted and implemented by different people. For example, I was told that I should avoid running the unit-tests for the Web applications because they were not designed to be maintained after the feature was done being written. WOW! What a horrible approach to testing. It’s like they read …