software development concepts
Have you ever gotten that classic job interview question, "where do you see yourself in five years?" When asked, I'm always mentally transported back to a certain Twisted Sister video from 1984.
I want you to tell me – no, better yet, stand up and tell the
logging
A recent Stack Overflow post described one programmer's logging style. Here's what he logs:
INFO Level
* The start and end of the method
* The start and end of any major loops
* The start of any major case/switch statements
DEBUG Level
* Any parameters passed into the
user experience
As a software developer, tell me if you've ever done this:
1. Taken a screenshot of something on the desktop
2. Opened it in a graphics program
3. Gone off to work on something else
4. Upon returning to your computer, attempted to click on the screenshot as
software development
Some developers love to gold plate their software. There are various shades of .. er, gold, I guess, but it's usually considered wasteful to fritter away time gold plating old code in the face of new features that need to be implemented, or old bugs that could be squashed.
programming practices
When you join a team, it's important to bend your preferences a little to accommodate the generally accepted coding practices of that team. Not everyone has to agree on every miniscule detail of the code, of course, but it's a good idea to dicuss it with
privacy
From the ACM Code of Ethics [http://www.acm.org/about/code-of-ethics]:> As an ACM
member I will 1. Contribute to society and human well-being.
2. Avoid harm to others.
3. Be honest and trustworthy.
4. Be fair and take action not to discriminate.
5. Honor property rights including
programming languages
One of the seminal papers in computer science is Edsger Dijkstra's 1968 paper GOTO Considered Harmful.
For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they
programming practices
Is software development an activity preferred by anti-social, misanthropic
individuals who'd rather deal with computers than other people? If so, does it
then follow that all software projects are best performed by a single person,
working alone?
The answer to the first question may be a reluctant yes,
programming practices
As a software developer, you may be familiar with the DRY principle: don't repeat yourself. It's absolute bedrock in software engineering, and it's covered beautifully in The Pragmatic Programmer, and even more succinctly in this brief IEEE software article (pdf). If you haven'
agile
We've adopted Scrum for all of our software development at Vertigo. Although I'm totally in favor of Anything But Waterfall, Scrum is an unfortunate name:
1. It's two additional characters away from a term for male genitalia.
2. The term is derived from rugby,
properties
I occasionally see code with properties like this:
private int name;
public int Name
{
get { return name; }
set { name = value; }
}
As I see it, there are three things to consider here.
1. When is a property not a property? When it's a glorified public variable.
Why waste everyone&
software development
Joel Spolsky came up with a twelve-item checklist
[http://www.joelonsoftware.com/articles/fog0000000043.html] in August, 2000 that
provides a rough measure of – in his words – "how good a software team is":
1. Do you use source control?
2. Can you make a build in one step?