Do You Have Your Custom Web Development Risks Under Control?

Managing custom web development is managing a software project. More and more, average people in average businesses are managing software projects in the form of customized blogs, websites, and e-commerce shopping carts. Even more so, if they are trying to deploy a custom intranet application, for internal use by their company’s employees, or an extranet application, for use by their customers and corporate partners, they may find themselves faced with developing a fully custom software system.

For example, one project I recently worked on is a custom extranet application that a certain company’s clients use to submit jobs to the company. As each job request goes through the system, a number of people in the company need to add information and sign off on it. This automated system was thick with business rules for this particular company and as a result was almost completely custom, because no off-the-shelf software got even close to doing the job the way they needed it done. It was expensive for them to develop, but it allowed them to automate a process that previously had been manually intensive. (Before this, they would email Excel spreadsheets around. Now, the computer handles all the grunt work, and frequently, all a human has to do is click “Approve.”)

This is an extreme example, but more moderate examples also exist. For example, a Gilmore Girls fansite I put together years ago had custom database features in order to store memorable quotations from the show with fan commentary, linked to episode and topical guides. That’s something that has not to my knowledge been done before or since. It required custom programming and configuration to process user submissions, store the data, and display the data in the right format.

Unfortunately, if you’re facing this type of project, many of the consultants and service providers you talk to will not be aware of the software development issues involved and how to manage the software-development risk. They may try to shoehorn your problem into something off-the-shelf software can accomplish. Or they may just “hack together” custom programming, without managing the complexity of the underlying software design. Or they may want an up-front specification of everything your project needs to do and may want to spend months working out these details, under the guise of good planning. But how can you plan a project you have zero experience with? You can’t. And neither can they.

Now, this is not a problem if all you need is a stock installation of off-the-shelf software. For example, if all you need is a WordPress blog with off-the-shelf plugins and an off-the-shelf theme, the traditional approach is the right one. Figure out what you need, install it, make sure it works, and release it to the world. Even if all you need is a custom theme for a stock website, the traditional graphic design approach–3 mock-ups, choose one, then implement it in code–may be the best approach. Even if you have a semi-custom installation of a more complex web application, like a content management system or an e-commerce shopping cart, the traditional approach may be acceptable.

But the more customization your project requires, the more software engineering concerns will impact it, and the more ignoring these concerns will put your project at risk. This is especially important in a financial squeeze, where you need to maximize what you get for your software-development dollar and minimize the risk that the project will go off track or bust.

If you find yourself faced with this prospect, here are 13 “lucky” software development tips to planning and executing your next web development project, briefly:

  1. Resolve to take tiny steps. Don’t develop and deploy the system in one big leap. Rather, do it in small chunks so that you can monitor its progress and adjust its direction each step of the way.
  2. Find an expert you can trust, then trust him. Don’t just look for someone to bang out code for you, but for someone to advise you on technology and on the software development process.
  3. Don’t commit to which features you want until you need to develop them. Wait until the last responsible moment before committing. That gives you more time to gain the experience at each step to choose the most important features to add next.
  4. Make sure the contract allows for changes, and make changes before committing, but not after. Work with a development team who will allow you to make changes to the plan, up to the point at which they begin actually implementing your requests.
  5. Provide software requirements in the form of objective test procedures. Go step by step through a typical usage scenario so that the developers can understand what you envision, and so that your in-house testers can know that they implemented what you asked for.
  6. Set objective acceptance criteria for each feature. Be as flexible as you can without giving up your core requirements. Think through ahead of time what you really need and what you can get away with. Then talk to the developers about what they can do to give you the former.
  7. Ask the developers how long each feature will take to implement, and whatever they tell you, trust but verify. Many developers are over-optimistic in their estimates. So depend on their expertise in estimating time-to-completion, but verify it with your own measurements.
  8. Make an “expert user” available to advise the developers. Good developers will ask you questions about the system that you probably never thought of. Assign an “expert user” to answer these questions, someone in your company who can represent the users of the system to the developers.
  9. Get regular status updates. Have someone in-house look at each release. Meet with the development team leader every week to address issues. Stay in constant communication.
  10. Expect the possible, but not the impossible. If your developer says such-and-such a task will take a month, don’t argue him down to a week. Rather, talk about what parts of it you can leave out to reduce the time it will take.
  11. Be prepared to choose which features are more important, and which are not. If the developer asks you to choose which of two features is more important, don’t insist that both are critical and must be done next week. Make the hard choices. Pick one to do this week, and leave the other until next.
  12. Expect to fail in the short term, even if you’re optimistic in the long term. Microsoft didn’t get Windows right until version 3. You also may need to wait until the third monthly release before you see anything usable in your application.
  13. Don’t be afraid to pull the plug. At some point, you’ll find that all the most important features are already working and that the ones that are left aren’t actually worth what you’re paying for them. At that point, stop buying new features, and move onto the next project.

Not every development shop will be able to work within these bounds. These tips do come from many years of experience, failed projects, and successful ones. But there’s also a certain amount of faith involved, because despite the years of experience, we still have scanty scientific data to prove which software-development practices are most effective. That’s why some developers may not be used to working with the kind of process I’ve outlined here and may even refuse to. So you may need to shop around a little to find a developer who can. But at least now you know what questions to ask.

Web Development in America Continues to Flourish Amid International Design Community

With all eyes on China this weekend as the Olympics kick off; many foreign countries are ready, willing, or considering China not only to be the next economic power, but also the next technological heaven for scientists, engineers, designers, and artists. One of the newest technological developments in China is known as the GreenPIX wall. This wall is famous not only for its massive scale, but it is also an object that uses ‘zero energy’. It is a giant television screen capable only of displaying single colors (much like an LED). The panels of this giant screen are covered with clear solar panels which absorb solar energy during the day and use it to power their system at night. The wall is one of the major pushes in sustainable design and it leaves the rest of the world wondering if China has the money, technology, and manpower to surpass the other major nations. I respectfully disagree.

While acknowledging China’s great strides and leaps onto the international stage in terms of their economic, military, and even athletic strength; China has yet to prove itself technologically. The massive structures they have been erecting, designing, and implementing are products of European architects and scientists. Technology and science are also fields where the west and namely America still hold the upper hand. In terms of military science and technology the USA still has the most advance aviation units and is still currently the furthest along in the space race. Digital technology also remains in the hand of the west with the east using the majority of the technology created elsewhere. Web development is one of these creations. With the strict guidelines and regulations imposed on Chinese internet service providers, it’s hard to expand with web development when everything is constantly focused on subverting the World Wide Web. In the United States; however, we find that there is a haven for web development in NY People from all over the world with different ideas, backgrounds, and goals converge in one tightly packed city and shell out thousands of creative ideas day by day. Design firms and companies all seek to expand web development into a new age with better usability, intuitive ideas, and more ethical design. New York is, and will be the best place for web designers, scientists, and all technologically inclined individuals to reside for at least a few years.

Top Ten Things to Do Before Hiring a Web Developer

Before approaching web developers for estimates on building your new business’s site, there are a few things you should think through first so you are fully prepared for the questions you will be asked. Here’s a list of ten things to be clear on before making that important next step:

  1. Be clear on your business plan. This may sound obvious, but it has happened where I’ve been asked to build a website when the potential client only had an idea of what they wanted and no business foundation planned out at all. Are you sure you have a viable business idea that will provide you with a reasonable ROI or is this more of a hobby that you just want to dabble in? It is important to be clear on your intensions of what you want to accomplish first.
  2. Be clear on your business name.  Make sure you have a registered business name before creating any of your marketing materials. It could be a costly mistake to have to go back and change everything if you find out your business name has been rejected.
  3. Be clear on the product you sell or service you provide. Ensure you are clear on the product or service you offer so your developer knows what site features and design will work best to enhance them. Ask yourself if they are digital products or systems or a service for hire? How many products and how are they sold?
  4. Be clear on your brand. This does not mean you have to have your logo already designed (some web development companies can also design your logo and other stationery/marketing materials for you as well), but it does mean you need to be clear on the message you want to give others about you and your business. This is actually not an easy or quick process but makes a significant difference if you are clear on this before moving on to anything else. Often the designer/marketer that you hire to create the visual brand for you can help with this process or I recommend checking out BrandU where they help you through your brand definition process step-by-step. Once done, you will be very clear on not only the essence of our brand, but also the “look” of your brand so you can simply hand over your results to your designer to create it for you.
  5. Be clear on what you want your website to accomplish.  A site that does not have a clear call to action is not going to be effective in fulfilling its purpose. When visitors come to your site, what do you want them to do once there? What is your primary call to action?
  6. Be clear on how you are going to get site visitors into your database. The odds are slim that someone is going to purchase from you on their first visit to your site, so you need to plan out a way to capture their name and email address so you can keep in touch with them on a regular basis and develop a relationship with them.
  7. Be clear on what features you want on your site. Will it be a static “brochureware” site with standard 4-5 pages or do you want something more dynamic with features such as a blog, calendar, search function, photo gallery, shopping cart system, newsletter system, membership signup etc.?
  8. Be clear on your budget. Your developer needs to know a price range that you’re looking at so they can recommend a site build that will fit within your means. Keep in mind that your website is your primary marketing piece due to it being accessible 24 hours a day, 7 days a week. You don’t want to skimp with such an important and prominent showcase of your business! Don’t be fooled by the cheaper template options or “do it yourself” applications out there where, unless you have studied the intricate nuances of how the Internet works, search engine optimization and effective layout design, you run the  risk of scaring off your perfect customers instead of attracting them!
  9. Be clear on website maintenance.  Once your site is built, who is going to maintain it? The reason why this is important to determine before your site is built is due to the different ways it can be built. If you want to be able to update the site yourself, then you need your site built in a CMS (Content Management System) platform. This will put your site design into a template where you log in to make updates. Now before you get excited about the thought of saving all that money on doing this yourself, consider these points:
    1. Do you know enough about content layout and copywriting to make an effective marketing piece that looks professional to your perfect client?
    2. Do you know how to optimize images so they don’t slow down your site’s performance?
    3. Do you have enough time to do updates to your site?
    4. Are you aware you can’t write off your time that you spend on doing things yourself where you can if you have a professional take care of the updates for you? As you can tell, I am biased on this point… the reason is from working with over a  hundred clients over the years, these points always come up and they soon find out that even though it seemed they could “easily” update their site themselves, it rarely turned out that way. I heard from many that were extremely frustrated because they were working in an environment and medium totally foreign to them. Meanwhile they were wasting valuable time trying to learn to be a web developer instead of spending it on getting clients! Mind you, some people are more computer literate and can pick up on the more technical aspects required and they manage fine; however, it is still important to learn good copywriting skills and understand what makes an effective website before going the DIY route.
  10. Be sure you do your research on who to approach. You want to find someone with experience and skill who will partner with you to help you build your business. You want to avoid programmers who only do exactly what you tell them as opposed to others who can offer ideas, suggestions and be a part of your  team to be there as a valuable resource when needed. Always ask to talk to their clients to see what their experience was working with the developer. Be aware of those that claim to be developers when in reality, all they learned was how to use a “do it yourself” software like Microsoft Front Page. The quality of your site – both in design and in how it is coded – is very important on many levels so ensure the person you hire understands how to design and build a quality product for you.