Indispensible pocket wisdom for building websites you will find anywhere.
This is a constantly evolving list. Some require more expenation and will link to a blog.
#1 - Hire a professional developer to write up the specs for your project. You communicate your vision to the spec writer, and they turn it into a series of programming tasks & steps. The developer will also give you a reality check, an AI system may cost billions to build, but an e-commerce site is more feasible.
#2 - Don't be cheap. If you are building a professional business/avocation site, it is very serious business. If you are willing to spend $500 for a custom-crafted bed for your little doggie, you can spend $1,000 to build a web\site that may profoundly change your life or what you will be doing the next few years.
#3 - There is no such thing as a login page or a shopping cart. The login you see is the tip of a large application that involves many steps: the registration and validation process, password reminders, logging in, security & encryption, your profile and a user mgmt system for admins to use that may have 10's of thousands of users. Most content mgmt systems and e-commerce now have it built in, but like logging in, every other idea you have is the tip of the iceberg.
#4 - Web developers are highly skilled workers and web developing is a highly technical, logical and intellectual function. Do not treat them like day laborers and do not assume what they do is easy and something that only takes a couple of hours.
#5 - Small tasks take 10 hours. Medium tasks take 100 hours. Large tasks take 1000 hours and a team. Your facebook webpage takes 10 minutes. A static website can take 10 hours to build. A CMS with no frills can take 20 hours to build. A website that has users, and different audiences, and workflows with 12 steps that may span weeks takes 1,000.
#6 - A website with core functionality can be launched. You can launch a successful website with glitches as long as there are no show-stoppers. Live with glitches, no website is perfect. Microsoft has a policy of bringing still-buggy code to market and fixing them over time. You can do the same.
#7 - A website is a hell of a lot of work to create, for you as well as your contractors. The process is filled with show-stoppers, hard decisions, compromise, or surprise cost if you insist a feature works. Worries keep you awake while you build, while coding definitely keeps your contractor awake. Sleep deprivation is common in this field.
#8 - A web-based business is a business. After you go live, you have to manage it. And promote it. And deal with unhappy customers, payment issues, delivery and shipping. Brick-or-mortar, or the web, you're still the business owner and have the same responsibility.
#9 - Your business website has to be based on your business model and workflow. If you have a staff of 2, and your website gets 1,000 customers in 1 day, it must not take 1,000 hours for your staff to process. Web programming offers automation and scaling, if designed right, and your developer have better understand how to make it work for your staff of 2, or even 4. Your website has to serve your bottom line and insure greater economy-of-scale. If 100 transactions cost $10, 1000 must cost less than $100.
#10 - Developers should delivery clear, quality code that alternative developers can quickly adapt to. Developers should keep you as a customer because they delivery outstanding service and code, not because they saddle you with code only they can make sense of. Developers should give you blank buttons that you can use HTML/CSS to label.
#11 - To OffShore or not? For your first website - NO. Your 2nd website - NO. Small project after going live with first website? MAYBE. Your 3rd website? MAYBE. Clear Specs mandatory. Active mgmt mandatory. If you do everything right, you'll save more like 25%-50%. If you're saving 90%, DUCK.
#12 - Deadlines are not worth dying for. It happens all the time, it happens way too often. You have a date in your mind to go live, maybe it's the beginning of the Fiscal year, maybe its your wedding anniverseary. Maybe you're anxious to make your fortune. Websites are big projects. If you put down a live date, you're being naive. And that naive, arbitrary point of time all of a sudden becomes a tyrant that will put people through misery, introduce failure and catastrophe, stress, exhaustion, and sour everybody on each other. It shatters reputations. Developers hire contractors on short notice at great expense, house programmers work through the weekend without rest, code quality drops dramatically. Experts say that throwing man-power at a late project never works, it blows budgets out of the water and does not result in projects going live on time.
Who is master, you or your deadline? Does a date really mean anything but an arbitrary point in time? Stick with your deadline and your project becomes a nightmare with lots of casuallties. Or with a simple phone call grant another month, get a 10% discount, and everybody wins?
Do NOT put a live date in your contract. Put a soft delivery date instead.
Do put in a penalty in form of a discount for time extensions, but be prepared to give generous extensions. Enough that the current staff can complete the job properly in a normal work-week, and go home and have their own lives on the weekend.
When you are satisfied with the site, then you put a live date into motion. Starting your promotions, executing deals, putting logistics into place for the event.
The developer loses 10% of the total, but pays less than the overtime that would otherwise have happened. Developers succcessfully deliver a product to your satisfaction, well-rested, having enjoyed the experience of building you site. In the end, everybody gets a celebration.