Ethical Dilemma: Should I still cater for IE6 as a web-developer [duplicate] - png

This question already has answers here:
Closed 12 years ago.
Possible Duplicates:
IE6: To support or not to support.
Should we support IE6 anymore?
I'd hate to (HATE TO) admit it, but there are some people still using this browser. A client of mine is facing an issue where the "transparency" area of a png comes out a light grey - ONLY on IE6.
I know it's an unsupported browser, but some people STILL use it. I'd love to have a little discussion about whether or not I should choose to support it.
One point pro-support of IE6 is that often in large organisations, the update of systems is often unimportant to their IT department, so theres a large proportion of people working in these organisations that still use IE6. Schools are the same.
One point con-support of IE6 is that Microsoft no longer offer support for it, and it is considered a defunct browser, so why should I waste my time catering for it.
It is a little bit of a dilemma. I'd love to hear other peoples responses to this.

One point con-support of IE6 is that
Microsoft no longer offer support for
it, and it is considered a defunct
browser, so why should I waste my time
catering for it.
Because it's not Microsoft you're catering for, or people who consider it a defunct browser, it's people using the browser, aka your customers. By all means, don't take on customers who have a requirement that you support IE6 with websites you produce, that is your chocie. But if you're getting paid for it, I'd hardly call it "wasting my time" =)

For my own sites I do not bother with being pixel perfect and having identical functionality in IE6 but I do like to make sure that the site is accessible and functional at a basic level. That shouldn't be too hard and it'll probably be useful for web crawlers as well.

I don't see an alternative. In fact, I dare say it wasn't very professional of you to put a commercial site up that doesn't support IE6. Your site should work on all browsers - cross browser compatibly is part of our job.
In reply to the comments, here's what I mean when I say professional:
It is expected of you to know IE6 is going to be a problem before you start.
Target supported browsers must be part of the contract. Before working on the site you should ask who will be the target crowd and make that decision together. If you need to support IE6 your cost estimation should be higher.
It is expected of you to at least test the site or all browsers (yes, including IE6, knowing that it isn't quite dead yet - you don't have to like it though).
IE6 doesn't support PNGs, has weird box model (so don't use width+padding), etc etc... Every time I consider using a PNG, I take a note - this wouldn't work in all browsers. You are expected to know that or find it in the test you've made.
Full disclosure - the site doesn't look or behave exactly the same on all browsers? When you present the site, explain how and why, and how it will effect end users. This may sound silly, but if you don't have IE6 in your contract, your client may not be too savvy. Your client is going to find out eventually the site doesn't work on IE6 - most likely when the site breaks for of her friends or clients, making her look bad. That knowledge better come from you.

I agree, making web sites display correctly in IE6 is tiresome. Being a web developer for a multinational pharmaceutical company I would know, they are still required to use IE6.
But there's another point to this. If we, the web developers as a group, continous to cater for IE6 then the large organizations have no reason to upgrade. Are we then responsible for people using IE6?
At our firm we have decided not to support IE6 in the administration part of our CMS, but we do cater for IE6 to the public eye.
The client mentioned earlier runs an old version of our CMS and is so stuck there although we and the administrators are willing to upgrade. In other words: Stuck between a rock and a hard place.

It depends who you expect to use the website.
Some recent figures for use of IE6 in different places make interested reading.
If your client still uses IE6, then you are probably going to have to give in (or convince them of their evil ways). Otherwise it might be worth explaining the numbers involved and the additional cost to cater to them - if it takes x hours of your time, does your client really want to pay for that?

Count yourself lucky you're not trying to cater for the Chinese internet user-base...
I make the site work in IE6, but have a banner that comes down pleading with the user to upgrade to experience the awesomeness of this century.
Example page that shows the banner

My opinion is that the site has to be USABLE.
Eye-candy is good, and should be given to as many users as possible but, the question is: does the gray background of the image render the site impossible to use?
Supposing you have a substantial IE6 user base, are these users really complaining about that?
Or do you have 1 person out of the 100 that use IE6 complaining?
Now people say that the clients pay and you have to do what they say etc etc... Well, it's YOUR role to TEACH the client why IE6 should NOT be supported anymore.
Show them that:
1) the site WORKS (i.e. you can read content, submit forms etc), so the IE6 users will be able to use it
2) you can put some "hints" like "you have a crappy browser, don't complain if websites suck with that" (maybe in a slightly more polite way)
3) show them that even Internet giants dropped support for IE6. Why should you keep it? Do you really want to live in the past?

Depends on your user base and would need to be agreed with your client. For an intranet type application you may be able to avoid it. For public applications - government, banking websites, anything the public may rely on, you need to consider it still.
For more luxury type sites, e.g. 'brochure-ware' for a small business, you may be able to take a call on this, but again depends on your client's requirements - do they want to potentially turn away some business? If you can make it fail gracefully (i.e. still looks ok in IE6, but with less bells and whistles), then you have more chance of selling this.

How much money do you earn from the customers who still use IE6?
How much resistance is there within those companies to upgrade from IE6?
How much money will it cost you to support IE6?

We are software developers. We make tools to make life easier for people ("users").
If a user of your software is using IE6, and you refuse to offer that user support until he/she upgrades to a newer web browser, are you making life easier or harder for them?
I'm actually not asking this question rhetorically, believe it or not. It may be that for you to support an older browser takes away too much of your time, keeping you from developing features that would be of greater benefit to the user.
My point is that you need to ask yourself what is best for the user, not whether catering to someone who's using an old version of a piece of software (who isn't?) is somehow beneath you.

I like this approach: http://morten.dk/blog/ie6-tax-now
Normally I would say that IE6 and IE7 is not supported by default, but the client can pay an extra price for supporting legacy browsers (the website will cost 30-50% more depending on the website requirements).
It might be also a good idea to get information from similar sites. One of our newest deployed site has 2-3% IE visitors (including all IE versions), and the IE6 and IE7 users are below 1%. So we decided not to support IE 6 and 7 at all (we don't test them), and we give full functional support for IE 8 (the site is usable, and looks OK, but it isn't as sexy as in a modern browser with a better CSS3 support, which means that there aren't any gradients or rounded elements). But this site is a little special case.
So I say that analyze what kind of people will visit your site, and make a decision based on that information.

I've never understood the idea that this is some sort of "ethical" issue.
If it's around a client then it's a commercial issue.
If your contract says that the site you've developed will support IE6.0 then yes, you should support it.
If it doesn't it's up to him to work out whether he wishes to pay you more to fix any issues that come up with it.
(If it's not specified then you need to make sure you specify it in your next contract otherwise you're open to requests to support anything your client fancies).
In terms of whether it's worth him supporting it, it will depend on his market. I previously worked for a travel firm whose core client base was people who were aged 40+ which 12 months ago was still registering 30 - 40% IE6.0 usage. In that instance IE6.0 support for their site is critical but obviously each site has a different user demographic and that will dictate your approach.
But an approach based on "principal" is unlikely to be the right way to go, you need to have specific commercial or technical issues which mean that the cost of supporting the browser is greater than the cost of not supporting it.

This is a great discussion. My customers are car dealers and while IE6 useage is declining, it is still 12.5% of my traffic. I have actually seen PC's running Win98 in these stores. Amazing!
We've segmented our catalog product into different interfaces for them to pick from. We're getting ready to launch a new one and we're close to making the decision that it will not support IE6. They can still choose one of the others that still do, and we will continue to support those but not enhance them.
So I can finally embrace sprites and transparencies and ... :)

You can't make a horse drink the water, but you can sure as hell lead him to it. What's the point of going forward in browser technology with advanced engines like Webkit and Gecko, if we still allow stupid, uninformed users to visit our websites in IE6 without any interruption?
Then all web standards are redundant and we can just go ahead and make browser-specific websites, which ultimately will become online applications. I would say, educate your user, after all, if you don't, who is going to do it?
We have made a conscious decision here at our design studio to alert IE6 browser-users that their browser is too old and that they should upgrade. We have not encountered any problems so far.
One should take into account that if you are hired to develop specific IE6 web applications, then you really don't have a choice in the matter, but if you are part of a design studio developing forward moving websites implementing new technologies or advanced Javascript, then I would say forget about IE6.
After all, the internet is full web developer handiwork and if we decide it's over, then the revolution will come.
// edit
If you want to make stuff a little easier for yourself, using CSS, start using BrowserDetect.js CSS browser detection. It's initialised using jQuery and simply adds a browser-specific class to your body tag on load.
In other words, if you're running Safari 5, your body tag will look like this:
<body class="browserSafari browserSafari5">
This enables you to create browser specific CSS styles without any hacking of sorts.
That was my last 2c.

I didn't see this point anywhere above, but I apologize if I missed it.
It's interesting that you say ethical, because I think moving standards for technology forward is one of those responsibilities that we have as consumers and as developers. Moving towards SVG and HTML5 and CSS3 is really good for the industry, because it means more efficiency and a better, faster web.
It may not be best for the client if their site doesn't support IE6, but if developers move on from outdated technologies en masse, it forces the last users of those technologies - in this case, businesses and schools and stegosauri with IE6 - to update their browsers, which is not a negative thing. It's OK to make decisions for the good of the industry as a whole, and we should more often.

It really depends who will be using your app! If your client is the UK gov, then yes, you had better develop for IE6 as it's the only browser in use (due to legacy systems that will ONLY work in IE6)
If on the other hand your client all use Safari, then no you don't have to bother.

Users will not stop using IE6 if all websites still work perfectly with it as they then have no reason to change.
This is bit of a "deadlock" which can only be broken if applications stop supporting IE6
Make the users aware that they are using an unsafe and out-dated software, e.g. with something like:
This webpage will not work (well)
with IE6 because that browser is
insecure and no longer supported
Most of the time you can also convince the customer by explicitely stating how much it will cost to support and maintain the application for an unsupported browser. This will usually be a significant amout for any non-trivial website...

The question really is how much degradation do we make IE6 users tolerate? My feeling is: quite a bit. I'd much rather this minority took the pain instead of holding back everybody else. Since our sites are all (naturally) semantically marked up and pass accessibility guidelines, they will make sense and work just fine with styles and javascript disabled. So the simple answer is to give IE6 users the old Netscape 4 treatment and disable all CSS and js for them.

I would definately suggest customer to upgrade with following points.
Technically no updates are provided by Microsoft for IE6, if they do not upgrade their browser, they should be made aware of all security issues they have left open by not upgrading, such mild threats do work and its right as well. Plus you can certainly recommend firefox, as Microsoft never completely implemented html standard and in large organizations, standard, compliance and security these are always considered as big things and you can certainly point towards them and get your update done.

No.
I have a client that requires for his pages to work in Netscape Navigator because he uses it.
That doesn't mean that I should prepare all my pages for last historical version Netscape Navigator.

Related

CMS or framework or manual, what to choose for small scale site?

I am looking to make a small website that will be used regularly by only 80 odd people. It would contain a home page with a few widget like parts (calendar, upcoming events, chat, news). It might have a forum, but that would be low key. It would also (if it is possible) have a link to google groups mail. I would also liketo include a jainrain style openid/google account login for the site as well as local login. The site would be in part multilingual, if only the back end in english and the front another language.
Now to the "please dont shoot me" part. I am not looking for a specific solution (drupal, plone, wordpress) - well not as much as a general direction. Hopefully this will be of use to others in the same situation in the future.
I know python (as well as other non web orientated languages) and have past experience with two several month projects using web2py. I have yet to use a CMS, but have installed and played around with wordpress and plone over the last couple of days.
To the question. Is a CMS the right choice for something of this style. From what i have seen of them i really like the bits that are done for you out of the box, and i can tolerate the learning curve - but wordpress for example seems a bit to article/post orientated, and CMS's look to be aimed to provide the average non-coding admin the ability to change the site. Which is not needed here. I have done quite a bit of googling and comparison shopping of the various CMS's out there, and get that you can use it for static pages also. But should i be looking in an entirely different direction altogether?
I imagine that a framework like django or web2py are beyond overkill (and would take way too long for the effort i want to invest). And that anything can be done with wordpress etc given enough effort. But is something of this size with these features suited for a CMS, or should i be looking to do manually or otherwise?
I get the impression that this is not the type of question that is liked here - if so at least writing it helped clarify the problem for me a bit.
Thanks - and don't shoot!
I understand your website will be very small, but never say "never". You should plan with taking into account the possibility that your site will get bigger, even if you and your clients are sure that the site will not get bigger. In other words: it's better to have a solution which works for your small site even if it will increase than having a solution which will not support larger traffic.
Also, there is absolutely no point in reinventing the wheel. It's better to use a CMS (especially because you can get pretty nice CMSs for free), because they already have nice features and their new versions will be even better.
"Thanks - and don't shoot!"
You're welcome... BANG :D

Drupal 7 is unnaceptably slow

Top post update: "unacceptably slow means between 2 and 10 seconds to load the front page on a site with 12 beta testers, only one lgged in and no more than 20 articles posted, after applying the most popular "speed it up" fixes).
I am a newcomer to Drupal (although I have been a professional software developer for 30 years).
I am just setting up my first site, so am not committed yet and could switch.
Like many others on this forum and elsewhere, I find Drupal 7 to be unacceptably slow (which is a pity, because of the great features, but I guess that's what causes the slow load time).
I have done the research, google around, read blogs and forums and have tried all of the commonly suggested solutions, but to no avail.
I am currently polling my dozen or so beta testers on where the site is acceptable or just too darn slow, but that is just a formality.
So, can you please help? If I can't use Drupal 7 then what can I use?
The obvious answer might be Drupal 6 but sooner or later that will no longer be developed or supported.
Is there another CMS for my needs? I want to have a community site. That means, at a minimum, Forums, Polls, Groups, hopefully a wiki, individual blogs would be nice, maybe photo galleries, though that is less important, chat rooms would be good.
Just your general "bunch of folk with similar interests, although some of them have sub-interests & cliques" site.
I tried CMS matrix, but - surprisingly - didn't find anything. I am googling, but would prefer some feedback from someone with personal experience.
Again, I do not mean to slight Drupal 7, just to say that it's not for me … don't taze down-vote me, bro :-)
Please tell us what "unacceptably slow" means to you. For many of my applications, this is a few tens of ms. For others, it's a few seconds. You probably need to apply the standard set of website speed tuning tricks to make anything go quickly.
Use yslow (http://developer.yahoo.com/yslow/) and related developer tools to help you troubleshoot why the site is loading slowly. Usually these types of problems are not the backend's fault, but are related to issues like over-large images, too many individual elements on a page, incorrect caching, etc.
Make sure your database is fast.
Don't use shared hosting.
Make sure you are not serving oversized images.
Verify that caching is turned on and works the way you expect.
Use a cookie-less subdomain for the static media files.
Compress and combine static files like CSS, javascript, etc.
If you're trying to host a busy, complex site on $5/mo shared hosting, I'm sorry, but that just isn't going to fly.

How to stop pirates? Someone already nulled and pirated my script :(

I dont know what to say. About 3 days ago I released a script to the public. Today I realised, after searching on google that someone had already nulled (removed my protection) and pirated the script.
How do I stop users from pirating the script? It is written in PHP.
Please help or suggest some solutions.
Thank you for your time.
UPDATE By releasing to the public means that I have started selling it to users.
UPDATE My program is priced at only $49. Very reasonable for the functionality it offers. I do not understand how I should stop pirates from pirating my code. The replies which most people have given are rather sarcastic. I was hoping for some good advice. I know there is no silver-bullet. But some techniques which you have used in your PHP programs.
The only real way to prevent piracy is to not give the user the program at all! What I mean by this is have the logic you want to protect remain server side and offer a client interface.
There are a few companies that offer protection services, but these are expensive and can sometimes still be overcome.
If you're worried about this happening again, try obfuscating your code. Here is a free program to do just that on PHP code.
I'm not trying to be sarcastic here: forget about them. Here's my rationale:
You can spend tons of time trying to
prevent pirates from pirating your
stuff, or you can spend the same
amount of time giving your paying
users more functionality.
Extreme copy protection does not give your paying users anything but more
hoops to jump through to use your
application - which might lead them
to get frustrated.
Pirates will pirate your applications
no matter how much time you spend
trying to stop them.
Budget a certain
amount of time to put in basic copy
protection - just enough to keep the
honest people honest.
Most importantly: Don't irritate your paying customers.
They are the ones you need to make
happy.
There's not much you can do.
Be flattered your work was deemed worth the effort!
How do I stop users from pirating the
script?
Do not release sensible source code to the public...
[EDIT] After a few downvotes, I decided to comment on my answer:
Any code that is released public has a chance of being hacked. This is the number one reason why Javascript is not secure. No matter how much you will obfuscate it, compress it or translate it to some random japanese dialect, it is still source code that the user has access to. Hence it should not contain any sensible information such as passwords or such. All sensible data should be stored in the server side where it is kept hidden from the user.
If you are releasing a php framework containing both the server and client code; then you have no way of fully protecting yourself. PHP is, like Javascript, an interpreted language. You may translate it, compress it, or obfuscate it as much as you want, (and it's probably the best thing you can do) you will never fully protect it when released to the public.
Again... If there was a magic way to prevent code from being broken, it would have been known for a long time. No-cd patches / cracks for new games/softwares now are almost released the same day as the softwares themselves. It is, as noted by Paul, a form of flattery for you, even though I understand how sorry you may feel.
There are a few instances where programmers ended up with bullet-proof protection, but it usually involved high-end engineering.
With PHP, you're mostly out of luck. It's an interpreted language, which means that you are essentially forced to give away the source code. Sure, there are obfuscators (tools that "scramble" the source code to make it near impossible to read for humans), but they can be circumvented as well.
There are product like Zend Guard which seem to offer a better level of protection, but from my understanding, your customers need Zend Guard installed as well, which is almost never the case.
There are several methods of handling this:
Offer your product as a service. This means finding appropriate hosting in the cloud, etc. This removes access to your code base, thus preventing direct piracy. Someone can still reverse engineer your stuff, but I'll touch on that later.
Add a unique identifier to each version of the script sold. This can be done automatically, and is great to do with obfuscated code (another, complementing method). This will give you the ability to track whoever pirated your code. If you can track them, you can sue them (or worse).
Pursue legal action. You'll need to know who leaked the code in the first place for this. Their PayPal information or even an IP address should be enough. You go to your lawyer, ask him to get a court order telling PayPal/ISP to release the identity of the thief, and then start tracking them down. If they're located overseas, your only real option is to freeze/appropriate funds from PayPal/credit card. Banks will be sympathetic only if they have a branch in your country (which can be targeted for legal action).
Ignore it, and simply build your business model around the support that you offer.
The sad fact is that information cannot be secured completely. There is no way to prevent a team of Indian programmers from reverse engineering your program. So you just have to be better than them, and constantly improve your product (this is "A Good Thing (TM)", so do it anyways)
Also keep in mind that DRM and other solutions are often controversial, and will reduce your sales (especially among early-adopters). On a personal level, I would suggest viewing this as a compliment. After all, your script was useful enough that someone bothered to pirate it within a week!
PHP is easily decoded, so for people who really want to know, it's easy to find out the source code. However, there are certain obfuscator programs such as this one that'll make your PHP script almost unreadable for those trying to decode it.
What kind of protection did you think you had added to a PHP script, anyway? You should add a line of the form:
if ($pirated)
exit();
and then make it mandatory (in the licence agreement) that users set the $pirated variable accordingly.
Forget trying to prevent it
Go the way of CakePHP (see sidebar on front page) and many other open source projects and ask for donations.
People actually do it!
Contact the pirate and let h{im,er} know that you will be forced to take legal action against them if they do not abide by the license.
I agree with #Michael.
Try ionCube or Zend Guard. They are both commercial offerings, but you say that you are selling your software so it might be worth it. Although nothing is foolproof and can be reverse engineered with enough effort and technical skill, these solutions are probably good enough for the average PHP script vendor.
I agree with Samoz's suggestion to keep the logic server side, however this can often be hard to do. The best strategy is to make the user want to buy it by offering updates automatically to registered users, as well as installation, advice and good support. You are never going to sway people hell bent on pirating, however your goal should be to persuade those who are undecided as to whether to pirate or purchase the script.
Any obfuscation/decryption technique for PHP can be cracked
Jumping in very late to this conversation, but saw this question featured. Nobody mentioned contacting a lawyer and pursuing litigation. You likely saw the script on a server - hosted by a known hosting company - you can probably get a DMCA takedown to have the script removed. If you really press the case, you may be able to sue for damages.
Found this link to assist in going this route:
http://www.keytlaw.com/Copyrights/cheese.htm
You could always pirate it yourself to the internet and hope that any nuller will think "its already been grabbed" so don't bother. But pirate a real buggy version. When users come to you looking for help you'll know they have a pirate version if they question you about specific bugs you purposely added and you can approach them accordingly
If your script won't consume a lot of bandwidth, you could keep your "logic" server-side, as samoz suggested, but if your users won't use it responsively ( a crawler, for example ), this could be trouble.
On the other side, you could become a ninja ...
Attach a copyright notice to it. Some companies will actually care that they're using software properly.
Actually I think it's easier to protect PHP scripts than desktop software, because with latter you never know who is running the cracked copy.
In case of PHP on the other hand, if people run your software on public web servers, you can easily find them and take them down. Just get a lawyer and turn them in to the police. They could also be breaking DMCA laws if they remove your protection so that gives you even more ammunition.
Technical way to protect your code is obfuscation. It basically makes your code unreadable like binaries in compiled languages (like Java). Of course reverse engineering is possible, but needs more work.
In general it's hard to prevent users from stealing code when the program is written in a scripting language and distributed in plain text. I've found that http://feedafever.com/ did a really nice job of being able to sell PHP code but still give the code to users.
But the solution to your problem is very dependent on the domain of your program. Does this script run on the users machine with no internet connection? Or could this be a hosted service?
I'd also suggest looking at some of your favorite software, and seeing how they convinced you to pay for it initially. The issue I find isn't always "how can I prevent my users from stealing my software" but sometimes more "how do I convince my users that it's in their best interests to pay me". Software piracy often comes when your product is overpriced (Ask your friends what they would pay for a software package like the one you are selling, I've found that I have historically overpriced my software by 20%).
Anyway, I hope this helps. I'm glad that you are trying to create software that is useful to users and also not incredibly crippled. I personally of the mind that all software that isn't shrink wrapped or SAAS should be free, but I totally understand that we all need to eat.
The trick is not to try to prevent the piracy (in the long term, this is a losing battle), but to make the legitimate version of your product more accessible and/or more functional than the pirate versions.
"Making it more functional" generally means providing involves additional features or services to registered users, which cannot be replicated for free by the pirates. This may be printed materials (a users manual, a gift voucher, etc), services such as telephone support or help setting the product up, or online extras within the software.
I'll point out that companies such as RedHat are able to make significant amounts of money selling open source software. The software itself is freely available -- you can download it and use it for free without paying RedHat a penny. But people still pay them for it. Why? Because of the extra services they offer.
"Making it more accessible" means making it easier to get your legitimate software than a pirate copy. If someone visits Google looking for your software and the first result is a pirate download site, they'll take the pirate copy. If the first result is your home page, they're more likely to buy it. This is especially important for low-cost software: pirated software may be 'free', but usually it takes more effort to get. If that effort is outweighed by the low cost and lack of effort of simply buying it legitimately, then you've won the battle.
I saw anti-piracy working once only. Quantel EditBox systems (a post-processing video solution), Hardware+Software+Internet solution against Piracy. Workstation only works after checking if the bank received the monthly rent. If not, workstation was locked. Funny days when this happens... (Funny days for me, no work at all... No funny day for the hacker.)
Well, PHP is far away from hardware solutions... so I guess your only real choice is a server side protected against a tiny unsafe client pushing content, as pointed in some answer yet.
piracy != copyright infringement
There are known routes to litigate copyright infringers.
Does it really matter enough to hire a legal team?
Obfuscation do add something. It will not be fun to try to modify your code at least even if they can take the first version of it. In best case they will try to find some open source project that does something similar. Guess this would give you an fast fix at least for your problem?

How to write a spec for a website

As I'm starting to develop for the web, I'm noticing that having a document between the client and myself that clearly lays out what they want would be very helpful for both parties. After reading some of Joel's advice, doing anything without a spec is a headache, unless of course your billing hourly ;)
In those that have had experience,
what is a good way to extract all
the information possible from the
client about what they want their
website to do and how it looks? Good
ways to avoid feature creep?
What web specific requirements
should I be aware of? (graphic
design perhaps)
What do you use to write your specs in?
Any thing else one should know?
Thanks!
Ps: to "StackOverflow Purists" , if my question sucks, i'm open to feed back on how to improve it rather than votes down and "your question sucks" comments
Depends on the goal of the web-site. If it is a site to market a new product being released by the client, it is easier to narrow down the spec, if it's a general site, then it's a lot of back and forth.
Outline the following:
What is the goal of the site / re-design.
What is the expected raise in customer base?
What is the customer retainment goal?
What is the target demographic?
Outline from the start all the interactive elements - flash / movies / games.
Outline the IA, sit down with the client and outline all the sections they want. Think up of how to organize it and bring it back to them.
Get all changes in writing.
Do all spec preparation before starting development to avoid last minute changes.
Some general pointers
Be polite, but don't be too easy-going. If the client is asking for something impossible, let them know that in a polite way. Don't say YOU can't do it, say it is not possible to accomplish that in the allotted time and budget.
Avoid making comparisons between your ideas and big name company websites. Don't say your search function will be like Google, because you set a certain kind of standard for your program that the user is used to.
Follow standards in whatever area of work you are. This will make sure that the code is not only easy to maintain later but also avoid the chances of bugs.
Stress accessibility to yourself and the client, it is a big a thing.
More stuff:
Do not be afraid to voice your opinion. Of course, the client has the money and the decision at hand whether to work with you - so be polite. But don't be a push-over, you have been in the industry and you know how it works, so let them know what will work and what won't.
If the client stumbles on your technical explanations, don't assume they are stupid, they are just in another industry.
Steer the client away from cliches and buzz words. Avoid throwing words like 'ajax' and 'web 2.0' around, unless you have the exact functionality in mind.
Make sure to plan everything before you start work as I have said above. If the site is interactive, you have to make sure everything meshes together. When the site is thought up piece by piece, trust me it is noticeable.
One piece of advice that I've seen in many software design situations (not just web site design) relates to user expectations. Some people manage them well by giving the user something to see, while making sure that the user doesn't believe that the thing they're seeing can actually work.
Paper prototyping can help a lot for this type of situation: http://en.wikipedia.org/wiki/Paper_prototyping
I'm with the paper prototyping, but use iplotz.com for it, which is working out fine so far from us.
It makes you think about how the application should work in more detail, and thus makes it less likely to miss out on certain things you need to build, and it makes it much easier to explain to the client what you are thinking of.
You can also ask the client to use iplotz to explain the demands to you, or cooperate in it.
I also found looking for client questionnaires on google a good idea to help generate some more ideas:
Google: web client questionnaire,
There are dozens of pdfs and other forms to learn from

Personal Website Construction [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I'm currently trying to build a personal website to create a presence on the web for myself. My plan is to include content such as my resume, any projects that I have done on my own and links to open source projects that I have contributed to, and so on. However, I'm not sure which approach would be better from a perspective of "advertising" myself, since that what this site does, especially since I am a software developer.
Should I use an out-of-the-box system and extend it as needed, with available modules and custom modules where needed or should I custom build a site and all of its features as I need them? Does a custom site look better in the eyes of a potential employer who might visit my site?
I've toyed with this idea in the past but I don't think it's really a good idea for a number of reasons. Firstly, there are a number of places that can take care of most of this without you needing to do the work or maintenance. Just signing up for a linkedIn account for example will allow you to get most of your needs catered for in this regard. You can create your resume there and bio information etc and make it publicly viewable. The other issue with your "own site" is that if you don't update it often, the information gets stale, and worse yet, people have no reason to go back because "nothing has changed" - and that's not much of an advert for you is it?
Now that I've said all that, I'll make another recommendation. Why not start a blog instead?! If you've got decent experience, why not share that. I'd be willing to bet that this will be the best advert for your skills because:
It's always updated (if you post often)
It's not like you're looking for work doing it - but your (future) employer, or their developers will check it out anyway to get a better insight into your character.
Putting something on your resume doesn't mean you can do it. I'm not saying that you'd lie about your skills :-), but there's no argument about your ability when you're writing articles about the stuff, getting comments and feedback, and better yet, learning EVEN MORE about your passions.
Best of all - you can run your blog from your chosen domain and also point to your resume that is stored in linkedIn. Just an idea...
That's my two pennys worth on that - hope it helps you come to a decision!
If you are a web-specific developer I would go with a custom site, but if you focus more on desktop applications or backend technologies, I think an out of the box system would be fine.
A nice looking, default, off the shelf, complete website could be more impressive than a poorly done, broken, tacked together, incomplete website. Perhaps start with something "off the shelf" but nice looking, keep it simple, professional, and then eventually add more custom functionality, style and content. Potential employers may like to see that you are capable of reusing tried and trued solutions instead of trying to create everything from scratch without a good reason. Or you could spend time combining great components into something even better than the sum of the parts, as Jeff Atwood talks about extensively in the Stack Overflow podcasts. Stack Overflow is a good example of writing lots of custom code, but combining that with some of the best Web 2.0 technologies/widgets/etc. into something coherent, instead of trying to prove that they could implement x/y/z from scratch.
(On the other hand, it's really fun to build your own login system, blog, or photo gallery. If you really enjoy it and you want to learn a lot or create something new and different, then go for it!)
Here's what I did (or am currently doing). First, use an out of the box solution to begin with. In my case, I used BlogEngine.NET, which was open source and easy to set up. This allows me to put content on my site as fast as possible. Now, I can continue to use BlogEngine.NET, and skin my site to give it more personality or I can start rolling out my own solution. However, I haven't found a requirement yet that would give me a reason to waste time building my own solution. Odds are you probably won't either.
I don't think it matters if your site is blatantly using a framework or other "generic" solution. The real question is "is it done well, with taste?" If you are using an out of the box solution, you should take the time and pay attention to details when customizing it as if you were creating it from scratch.
Alternatively, if you're looking for a great learning experience and something to spend a lot of your free time on -- write it yourself. But know that you are re-inventing the wheel, and embrace it.
edit
A recent post from 37Signals, Gearheads don't get it, really sums up a good point about not focusing on the technical details, but "content and community".
Reinventing the wheel is not such a great idea when you are building a personal site. Building your own CMS is fun, and to some degree is something to brag about, but not so much features you won't have the time to build and all the security holes that you won't have the time to fix.
It's much better to pick a good, well-established engine, build a custom theme, and contribute a module or two to it: you'll be writing code that you can show off as a code sample and at the same time creating something useful.
Knowing your way around an open source CMS is a good skill in just about any job: when your boss says - hey, we need a three pager site for client/product/person X in 10 hours, you can say - no problem.
For a simpler portfolio site, Wordpress might meet your needs.
You can set up 'static' Wordpress pages for contact information, various portfolios, a resume, etc. This would also give you a blog if you want to do this.
Wordpress does give you the flexibility to "hide" the blogging part of it and use it basically as a simpler CMS. For example, your root URL of example.com could point to a WP static page, while example.com/blog would be the actual blog pages.
If you self-host Wordpress on your own domain (which I really would recommend instead of going through wordpress.com), it should be trivial to set up a few subdomains for extra content. For example, downloads.example.com could host the actual downloads for projects you've developed linked from the Wordpress portfolio pages. Similarly, if you're doing a lot of web work, a subdomain like lab.example.com or samples.example.com could then host various static (or dynamic) pages where you show off sandboxed pages that are not under the control of Wordpress.
Keep in mind though that you'll want to make your page look good. A sloppy looking site can scare away potential clients, even if you are not looking to do any web work for them.
Putting your resume up online somewhere helps, I get a lot of recruitment emails from people who happened on my resume via googling. However I agree with ColinYounger in that you'll probably get more bang for your buck from LinkedIn.
My advice is this - if you want to take the time out to LEARN a CMS or something, to better yourself, then why not make your first project in one be your homepage?
Maybe enlighten us as to the "features" you want to have on a personal homepage? Outside of a link to an HTML resume and perhaps some links to things you like, not sure exactly what the features of a homepage would be...
It really depends on:
a) what services you provide
b) what your skill level is when it comes to web design/development
If you are primarily a web applications developer then running an off the shelf product or using blatantly using DreamWeaver to develop it may not be so smart -- or maybe your clients aren't adept enough to notice?
Likewise if you're primarily a web designer then it is probably a good idea to design your own website.
Just as a side question and following up on my 'ego trip' comment: why would you take anything on the web to be 'true'? IME printed submissions, while not necessarily accurate, tend to be slightly less, erm... exaggerated than web submissions.
Do those responding\viewing ever hire? I wouldn't google for a candidate. I might ego surf for a respondent, but would ignore CVs.
Rounding back to the OP, I would suggest that you need to SHOW what you're good at - participate in Open Source projects and POST on their forums, link to projects you can post details of and generally try to show what a Good Employee you could be. Just telling me that you're good at [insert latest trend here] means diddly.
I have come to see that the best way to advertise yourself is to put quality content out there. If you write about the technology that you have experience in, maybe create a few tutorials, and if you do all that often enough, that shows some authority in your chosen field of work.
This alone is one of the best advertisements. However, you also want to show passion. And online, that can be shown through how meticulously your site is done (it doesn't have to be a super great UI or something), but it should be neat, clean, and professional. It doesn't matter if its out of the box, or custom designed.
Either way, you will have to work hard to make it look good.