I bug fix every new software request before I release from live to test environments but good software development relies on a separate person other than the developer doing the testing.
In big companies I have worked with this is usually a test team where a tester or group of testers is assigned to a project or a developer.
The developer does his unit testing and then the testers do system testing and Quality assurance.
In small companies this is usually the client .. hence it relies on them or someone delegated by them to test and make sure that any new features fully meets their expectations and business requirments.
This means testing each and every new feature in as many situations as possible.. yes this is boring .. yes this takes time.. but further down the road it does ultimately save time and increase revenue.
I have never and will never bug fix software I have developed free for life ..
In my experience this doesn’t happen in reality except by developers that overcharge initially , are desperate or inexperienced or a combination of all three.
Of course there is "give and take" in all relationships and of course smaller fixes and tweaks are done out of good faith. The other exception is fixed price work where the specification is crystal clear and allows indefinite fixing of issues which are included in the initial price.
Building software is not like building a house! Things change.. dependencies get broken.. windows server hotfixs get applied to servers by automatic Microsoft updates that break databases etc
A modern computer and software suite is by far the most technically complex edifice ever constructed - far more complex than any mechanical or civil engineering project. Thus, a software project is an inherently complex task being undertaken in an environment where the interactions are far more complex and poorly understood.
what I'm saying is what might work one week may break the next .. there are so many inputs and permutations .. logic paths that can happen only on certain conditions… A recent point in case was a registration screen which all in all took me over an hour to diagnose and in the end it was down to the SMTP server switched off on the server and an emailing app turned off…. Fix time 10 seconds... responsibility or negligence of the developer - ZERO %
Which is another point ... that the diagnostic of some of these issues can soak up and absorb 99% of the time.. and the fix can be done in seconds once its found. Add to this a poorly written report by the client of the bug with no test case details and you have to factor in additional time to hunt down the right user account/ page/ report/ whatever to use.
As I mentioned while most GOOD developers that I've talked to agree that bug-free is a myth since there's always room for improvements at the very least; there's a fine line between being driven to writing quality code and then charging for it being intentionally bug ridden.
The model I would recommend is to use a grace period. Any bugs found with in 2 weeks of a release will be fixed for free (with a caveat about duration); however, anything not discovered until after that will be considered part of the next release and billable.
The other thing to make clear here though is locking down of requirements and expectations so that "bugs" are not found when in actuality its a new feature that’s needed.
Thanks for reading this far .. sorry it got a bit heavy ..i’ll leave you on a lighter note
Programming today is a race between software engineers stirring to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning.” Bill gates
Just wanted to update you on our latest Project for a Property company.
This project is related to the Rightmove UK v3.0 datafeed.
We are building a Windows service will extract data from a property table in our database, construct a Rightmove v3.0 BLM file (delimited text file) and package this with images referenced in the table to a ZIP file and deploy to a folder ready for transport to the RightMove FTP site.
The service will be configurable on:
1. The number of packages that are created for deployment ie there may be multiple locations we wish to send the BLM+image package
2. How often and when the service runs each day.
1. Windows installer for service
2. Full instructions for use
3. Fully annotated source code and build instructions
To assist future development, C# is the preferred language, and VS 2010 ASP.net the very latest version of ASP.net is being used.
Update:!!! attcahed is the documentation we produced for this service
chwet RightMove Export Service V1.0.docx (20.19 kb)
Latest customer endorsement!
"You have come up with great ideas, solved problems and got things done. Which I have been very impressed with.
This has been such a stressful time and I have dealt with some right untrustworthy, unreliable, plonkers and I am a little weary. Although I know you are different but you have caught me at the end of a very long, bumpy and costly road, I only wished I met you at the beginning! However, I have to say thus far you have been great and I just wanted to say thank you for helping me finally achieve my dream."