Hello, this is my first post. I came here for advice regarding casual contract work for programmers.
I'm a recent graduate, and I took on a casual contract with an organisation as the sole developer to build a non-commercial Java application and which would pay a set amount at the completion of the project. Because of the nature of software development work - shifting requirements, debugging and ongoing maintenance, etc. - I was a little worried about the nature of the contract, but I knew the people fairly well and trusted them to be fair, and I really needed the work!
Well, requirements did continue to shift, and new things added to the project, and the time-frame kept expanding, and I was eventually paid less and less per hour until in the end it was barely worth my time (and I didn't know how to say no to them!).
My question is: has any one else had experience with this kind of contract, and what was your experience like? How did you handle the contractual relationship when requirements continued to be added and changed? Was I completely idiotic to take on a contract with these conditions for this kind of work?
How did you handle the contractual relationship when requirements continued to be added and changed?
By being very specific with the scope of the job. I do exactly what's written on the requirements document, which you Company have read and signed, for that amount of money. X modifications and Y hours of support are included, after that we renegotiate.
Was I completely idiotic to take on a contract with these conditions for this kind of work?
Idiotic? No. Naive? Yes, but you're inexperienced so it's easy to fall into this pitfalls. What doesn't kill you makes you smarter.
The general rule of thumb is to be specific and explicit. What happens if you're not satisfied with the final product? What happens if I have to call back on the project? What happens should the company cut off the project? And by "what happens" I'm talking about "How much do I get paid / have I to refund to the company" and "What are my legal liabilities".
has any one else had experience with this kind of contract
Probably most of us have been down this track in our early years of developing. As has been suggested be as specific as possible, I would be surprised if you even had a spec document probably more likely a requirements statement and worked from there.
In my later years I would take the requirements meeting and maybe 2 others. I would then give them and estimate to write the specification.
Once you have written the spec you should have reduced the potential scope creep. Note, you will never eliminate it! So now you should be able to put an estimate on the development costs (you will get it wrong so go high). Then note that additional requirements will mean additional funding.
Try and identify milestones where you can get paid and how much of the pot you can get at each milestone. This should help you get a reasonable return for your time.
Never forget your reputation is worth more than money so leaving the client satisfied is very important as you need references more than pots of money.
Never underestimate the power of human stupidity
Everyone makes beginner mistakes because we all were beginners. Don't be embarrassed; learn from the experience and move on.
* Always have a contract. Always. If nothing else make sure there is a document that spells out in detail exactly what each party expects of each other; in the simplest cases that may be an email message. But if (_when_, really) it changes, it's equally important to update that document.
* Read Weinberg's The Secrets of Consulting, a book I've given as a gift at least 10 times over the years. One important lesson you'll gain from it is that "The answer to any client query, 'Can you do this?' is always: 'Yes: And this is what it will cost you.'" The cost may be in time or cash or any number of other things. It always surprises me what people are/aren't willing to pay for; make sure you set a price that makes you happy if they respond, "Sure, that works."
* Get money up front. The most common breakdowns are "half in advance, half at completion" though for some projects it may be, "x% at signing; x% at [some midpoint, where you both can see what the end result will look like; x% at completion." Be very clear in the contract what "completion" looks like. You might think it's, "The site is live!" but the client may believe it is, "When the CEO approves it" and she is on a year long sabbatical.
So im asking for guidance on which programming language to learn if i have basic knowledge of MS-access, and my goal is to be able to create a web based database with the latest futuristic tools by myself, and sell it to small businesses.
so far 2 companies rejected the idea of access, even after proposing the migration of tables to SQL server to bypass the 2 GB limit :S , however its safe to say they were fairly large businesses.
I'm curious, Raffi, why you insist on programming for Access. It's a long obsolete, inefficient database management system with extremely limited capabilities. Once upon a time it was a viable platform for many small business applications because SQL Server was so incredibly expensive. So long as the user count remained below about 5, it was relatively reliable, though prone to corruption if locking was improperly implemented.
But now the free version of SQL server offers capabilities that are orders of magnitude greater than Access ever had, and supports much larger databases. Why in the world would anyone still use Access?
By the way, Access, as part of the MS Office suite, was designed to be programmed using Basic - VBA, to be specific. Using any other language will involve workarounds and compromise. If you really want to build a product that has any hope for widespread acceptance by businesses of any size, Access is definitely the wrong way to go.
well at the time it seemed to be a simple easy way to a create database, at least for small businesses i thought, i know i over estimated it, i started out access cuz i have no coding skills at all, but hey at least i got familiar with limited amount of macro's in access while creating the database, anyway now im learning C# and then asp.net.... and then i guess SQL =/ if i want to pursue my dream of creating databases for small sized businesses by myself to get lots of money
Hi guys, first and foremost, I want to take the time to thank all those who contribute beforehand. Your help is greatly appreciated.
I have really been stressing on making a good career choice that will allow me to be my own person. Over the years (I am 24) I have been thinking about becoming a fullstack dev for an environmental company (primarily front end for creative reasons.) I believe this is a good choice for me that can be a great opportunity and feed my soul. It is in a field that I love which allows you to be your own person and is for a great cause. My amount of time for achieving this goal is one year. I am currently in the monthly planning stage of it, after I develop a solid sketch I will move on to weekly. I have little experience in the area though I can have a conversation on it, so it is probably better to assume I know nothing.
I really need help designing my goal plan. I am motivated to make this happen and will follow the advice given and post blogs on my progress each month.
As of right now I am focusing on working a lot and though I have time to relentlessly study I am not sure if school would be a good idea. (its expensive and I make little money) I have started looking into online courses and want to choose the best options.
I am not good at goal planning. I am literally turning my life around, changing the way I think and leaping into a new world of possibility through taking control through studying life skills.
Any advice on this journey and how it should be approached will be greatly appreciated
I am sure professionals in the Software Development community have come across this scenario in their careers.
I am about to be assigned to work on an existing project that my team mate worked on. However he is being moved to work on another project. One of my team members who worked on this project has left. So as you can see there is only one person left on how this piece of software is suppose to work.
I am overwhelmed/nervous because my knowledge on the project is very limited and the deadline for this is short. This individual has knowledge on the technical aspects of the project and the business requirements/process. He has 20 years experience in software development.
We have a tester assigned to the project but the tester only has knowledge about the business requirements not the nitty-gritty stuff.
I appreciate if someone can provide me with advice/general tips on how to become better at adapting to new projects, learning about the project and implementing features, fixing bugs, what to do, what not to do.
Unfortunately there is no easy answer to this, as it depends on so many unknowns: the complexity of the application, the programming language, the rules and processes, your knowledge and experience, etc.
I have had to do this a number of times in my career, and the support I received varied from very good to non-existent. If you have access to the original developer then you should be able to ask for help from time to time. As it is you need to spend as much time as possible studying the code and (hopefully) the documentation, to get familiar with the overall design and flow of the application. One of the things I sometimes did, was to take a copy of the project and do mock changes and builds for my own testing, just to see what happened in certain situations. Ultimately the only real way to do it is by practice, practice, practice.