I would like to work for a software company during the holidays. I am just 17 and I do not have a computer science or related degree. However, I do feel pretty confident that I can add value to a company. Do you think I have a chance? What should I do to increase my chances of getting a job?
Build relationships with people that work at software companies that may accept bringing you on temporarily to try you out.
Consider what terms are you expecting from the company as they would likely want someone that already has some skills rather than the person that has to spend a week getting some basic skills to contribute to a project.
Understand that this kind of set-up may work better at start-ups where there isn't as much paperwork and HR stuff as big companies would have for my last point here. If you are going through a school sponsored internship then the established companies may work and while you don't have the degree, you would be on your way to this as co-operative education programs exist as a way this would work. However, to get a job directly without the assistance of a school at such a company may be harder though some companies may run "Code Camps" or other similar projects. Google's Summer of Code being an example for university students.
I'm a professional web developer and have no formal training; it's just something that I did as a hobby for a significant chunk of my life, then landed a junior position in my late 20s when I decided to pursue it as a career. All I had to show was a few little projects that I did in my free time, and a couple of interesting (admittedly poorly written!) web applications that I had made for my previous employer to help streamline some of their processes.
Building up a small portfolio of two or three projects that showcase your skills - even if they're not fully finished - is a good way to impress someone in a job interview, despite your CV/Resume not including any relevant educational experience.
I've since been in a position where I've been responsible for hiring developers, and I have hired applicants like you that are eager to learn and work hard so long as they've been able to show potential. You'd be surprised how many computer science graduates fail a simple practical interview test like 'FizzBuzz'!
What should I do to increase my chances of getting a job?
The way which has the best chance at your age, qualifications, and experience is by personal referral.
Everything else is a long shot at best unless you can get a position through your school if you're at one.
Other IT related positions would probably be more suitable and easier to attain, rather than developer. Working in a retail for example...
The only way I'd hire you as a developer is as a favour to a friend or client (no offence). But I might hire you as an assistant or other very junior position and give you a chance to prove yourself and earn experience.
Learn as much as you can about software development (as opposed to just 'coding') : developing and maintaining test suites, project management, continuous integration, common coding style standards, and so on.
Develop a professional (but interesting!)-looking online portfolio showcasing your skills.
Try to get your CV through to (or have a talk with) people who might be impressed by your portfolio (technical people with a say in hiring) rather than people who might just filter you out based on qualifications (more straightforward HR people?).
Apply to companies whose business you feel you understand, and learn as much as you can about each company before applying, tailoring your application accordingly.