We set the scope enough for generality and narrow enough for success. Successful development of a business solution depends on the ability to manage the dynamic tension between scope and results. Project scope must include an area of the business wide enough to ensure sufficient generality, yet narrow enough to make success achievable in a limited time frame.
We use abstraction to gain business and technical agility
The challenges you face in developing a business solution are numerous and complex. To succeed, you need ways to reduce complexity without overlooking critical details. By abstracting—that is, representing complex areas of need or capability as “large” components—you can account for and capture their significance with manageable interfaces that do not overwhelm your analysis. You can then selectively explore the details of any large component as your needs dictate.
We define and evangelize a common understanding of the system
All those involved in the project—the project team, client management, end users, and client operations staff—need to have a common understanding of the big picture and what their role is in creating it. Clearly communicate the business’s goals and objectives, the high-level vision of the final system, and how that system helps the business.
We establish priorities for the team, and use those priorities to guide the project
Eventually, every member of a systems development team needs to make decisions about how to proceed most effectively. These decisions may have a significant impact on the outcome of the project, so it is worth your time to think about and prioritize general goals in at least three areas:
Understand the general priorities and value disciplines of your business
Identification of your position regarding operational excellence, customer intimacy, and product leadership. Determine how those values affect this project and the product you are building.
Develop priorities for the project
Articulate the values and objectives of the project itself as distinguished from the product that will be produced. For example, consider trade-offs, such as technology transfer versus speed of project completion or proof-of-technical concept versus delivery of business function. Once the project stance is articulated and accepted, make it a part of the baseline and follow it without compromise.
Develop priorities for the design and construction of the product
We articulate the values and objectives for the product that is built. For example, we consider trade-offs, such as system performance versus ease of use, system cost versus system function, short-term productivity versus long-term productivity, security versus performance and ease of use. Once a project stance is adopted, we make it a part of the baseline and follow it without compromise.
We demonstrate progress through regular exhibitions
Establish a regular pattern of formal exhibition of progress to the you. This keeps you involved, uncovers major misunderstandings, and provides regular delivery events to help focus development team efforts. We demonstrate real system behavior as soon as there is anything to show.
We design and deliver solutions incrementally
We use iterative, short-cycle development, dividing the overall problem into smaller chunks that can be moved rapidly from modeling to a working prototype.
The increased use of the Internet as a solution delivery mechanism has introduced new issues and priorities in development projects. Here are highlights of specific areas that come to the fore when providing business solutions for Web-based delivery.
Branding strategies must be conveyed in the interface’s visual design
Interface design and overall visual imagery play an essential role in communicating your message and image. To ensure that the design reflects your requirements, time limits or price tags cannot be placed on the creative process. Visual design and user experience are key means for capturing and retaining audiences.
Usability is crucial
Most Web applications have a global reach, making organized training unrealistic. Usability goals on Web projects must aim at providing intuitive interfaces. Navigation and functionality of Web-based applications must be immediately apparent to the non-trained user.
Security cannot be taken for granted
Providing perfectly secure Internet applications cannot be accomplished without problems or without potentially causing user inconvenience. The security infrastructure must be carefully built to respond to your particular needs.
Be prepared to address hosting issues
Clients who are new to Web applications typically have not resolved hosting issues. They will require guidance in making hosting decisions. It is important to understand the array of hosting options and the trade-offs associated with each.
Speed to business results drives use of third-party products
In the Web environment you are under competitive pressure to go live with online solutions. Product companies focus on perfecting the solution sets they produce. For this reason, evaluation, integration, and customization of third-party components plays a major role.
Knowledge transfer is an integral component
Knowledge transfer can mean anything from providing standard project documentation, to mentoring your developers, to assisting in hiring and building an Internet services team for the client. Make sure that the extent of this endeavor is well-defined when scoping an engagement.