Much of the Web development process involves a creative exercise to resolve a business problem using development tools, techniques, and imagination. There is no absolutely right or wrong way to develop business applications. Some programming solutions might be more efficient than others; some might take more lines of code; some might be better documented; and some might use more straightforward and understandable programming techniques. However, even within certain tolerances of efficiency and maintainability, there are an uncountable number of development options.
That being said, Web development is not a complete free-for-all, either. In fact, within this environment of countless alternatives, there is always a push to standardize as many of the development options as possible. Standards are a way to ensure some consistency between developers and development teams. Whenever there are alternatives in the development process, there is time spent finding the best alternative. If you have guidance (standards) in certain areas, you can more quickly incorporate those aspects of the solution.
Standards also provide efficiency through reuse because you can develop faster by using components that were built earlier. You can also develop faster if you are using common programming techniques that you've utilized in the past. Let’s look at the areas of Web development where it makes sense to standardize.
Standardize the development environment
You should start off at a high level by standardizing the tools and technical environment used in Web development. This means that you establish a common Web development architecture, which simply means that you determine the Web languages and tools you'll use for development and then ensure that everyone uses them.
For example, you might prefer a common language that everyone uses. But that strategy may not be possible, so it should be understood what development language to use for specific circumstances. In the same respect, you should have a standard database platform, standard testing tools, deployment tools, etc. There are not many things that get a development shop in trouble faster than allowing each development team to pick unique tools that they think are best suited for them. For instance, if part of your shop uses Microsoft tools and another part uses open technology such as Java, there are inefficiencies built into your entire development environment.
You should also utilize common development libraries. Libraries that come with the vendor tools make sense for standardization. However, you should also look to build and utilize standard libraries of helpful prebuilt components that are created within your own organization.
Standardize the development processes
Earlier, I mentioned that the creative process of development is not easily subject to standards. This is true at a low level. However, at a higher level, it's true that you can standardize much of the development process. For instance, you can develop a standard set of development processes and templates that can be used on all Web development projects. If you are creating a design document, for instance, it is very helpful and more efficient if the developer has a template to follow rather than having to build one.
Another example is to standardize your development approach. For instance, if you have many development teams using agile development processes, you should understand and document how the overall agile process works at your company. That way, others can follow a similar model. This makes it easier and faster for new development teams to start, and also makes it easier for team members to transition from one team to another.
Standardize the user experience
Typically, your clients want the look and feel of all of their Web applications to be similar. Again, they get the benefits of familiarity and reuse. If a new Web application is developed, the client users will be able to utilize it more quickly if it follows the same logic rules and has the same look and feel as other applications they're already familiar with. These user interface (UI) standards also make it easier on the developer because you don’t have to reinvent all of the user experience, and you can take advantage of prebuilt code from other applications. Consider these components when standardizing the user experience:
- Fonts and font sizes
- Graphics, icons, and images
- Standard screen layouts
- Field names
- Overall logic flows
There's a lot that can be standardized from the user perspective. For the most part, each aspect that you can standardize means that future applications should look and behave more and more similarly, while the overall development process should be more and more efficient and timely.
Setting the standards
For the most part, your development organization should determine the internal development standards. This includes development tools, processes, and components. On the other hand, the user interface standards are a partnership between the development group and the client community. In general, the clients should take the lead; however, the development organization can provide input on whether certain standards would result in more efficient development processes. The expertise of a UI specialist would be very helpful in developing these standards as well.
Much of the development process relies on the creativity and expertise of the developer and the development team. However, creativity takes time. If you custom-develop from scratch on each project, your overall development effort will take much longer than it needs to. It is absolutely vital for companies to standardize on a set of Web development tools. It is also very important for your Web applications to have a common user interface. More sophisticated and mature development organizations should also standardize as much of the development process as possible. Standardizing still leaves room for creativity. However, it removes the creative aspect from certain areas of development where you do not need it and allows those areas to proceed more quickly and efficiently.
What do you think?
Have you gone through a standardization process in your company? What were the benefits? What pitfalls could you alert others to who might be going down this path? Post a message to the discussion board below.