d-insights

Technology Consulting

D-Insights software consultants work closely with our clients’ executive and technical staffs to align technology strategy with business goals. Clients typically engage d-Insights consulting services prior to embarking on strategically critical software projects to develop an internal application or system, a new product, or a new family of products.

The value of d-Insights strategic advice is directly related to the knowledge our senior staff has gained the hard way -by actually building, testing and deploying software that works. For example, our architecture consultants are the same staff members who designed the architectures for mission critical software systems that we have developed. We are doers, not just thinkers.

Our consulting engagements can range anywhere from a couple of days to several months, or they can become long-term involvement incorporate technology steering committees.

Some of our clients need help to formulate their software strategies. Others are looking for an impartial, external validation of their strategies.

On some consulting engagements we work with our clients to create the highest-level concepts; on others we transform a client’s high-level concepts into the essential technical details.

When d-Insights strategic consulting services are combined with our extensive software development services, d-Insights is the perfect partner to usher concepts from the drawing board to the market. We are also there to support the software through the full lifecycle of ongoing maintenance upgrades.

From plans and prototypes through technology selection and rollout schedules, our consulting services help our customers to rapidly convert their business vision into profit.

The complex systems being deployed today must be built to stand the test of time, often supporting numerous product line enhancements and platform migrations over a serviceable lifetime of more than a decade. A well-designed software architecture is the key to creating top-notch, modifiable, scalable systems, with the lowest risk of being late. Software architecture analysis, design, documentation and evaluation methods have matured significantly over the past couple of years. Symphony architecture consulting services help our clients leverage the best new ideas while reducing the risks inherent in any complex system architecture.

Architecture Methodology

Symphony software architecture services incorporate architectural evaluation methodologies such as SAAM and ATAM (developed by the Software Engineering Institute) and an extensive base of experience in designing complex software systems. There are four major components:

Analysis

Bounding the problem, and assessing the impact of the requirements and other forces.

Analysis activities include prioritizing stakeholders, and defining business goals within the system’s environmental context. Business drivers are examined to understand the most important functions, value propositions, and the known technical, organizational, economic, political, legislative, and regulatory constraints.

Formulation

Prioritizing and categorizing the architectural challenges with the largest impact on significant quality attributes and generating a suitable architecture.

Documentation

Recording the key architectural decisions, the decision rationale, and the important structural components of the architecture.

Evaluation

Reviewing the solution for suitability to achieve the desired system behavior, providing a rationale for the recommended alternative, and conducting a conceptual integrity review to ensure the components make a workable well-integrated solution.

It is unfortunately too often the case that delivered products fall short of market or client expectations, or worse, fail to provide enough differentiation to establish a real or perceived advantage over the competition. If not a worst case scenario – it is at least a bad outcome – with investment dollars and schedule likely exhausted for the current release cycle, and market opportunity squandered. The impact on future product or corporate viability is sometimes far greater.

In these cases Engineering is often found lamenting Marketing’s volatile, inexact requirements, and shifting goals – as well as the technological constraints of the required functionality and performance. Marketing, in turn, is pointing to both unreasonable Management goals and constraints, and Engineering’s rigidity in meeting the specific requirements of the marketplace for the product woes. Management is blaming everybody; the product developed is late and over budget. Worse still, everyone is wondering if the final product was really what was intended in the first place.

Understanding the root of such failures is critical to avoiding them. Through more successful product deliveries Symphony has put earned experience to work and developed proactive strategies for ensuring that our client partners get to market with the right product, on time and within budget.

Value driven analysis (VDA) – or value modeling – is a technique developed by Symphony to capture the critical qualities a product must attain to achieve success in the marketplace, and to ensure an accurate alignment of business vision with product strategy, and technology planning and architecture.

It is a rigorous process and language – extended and adapted from the architecture analysis methods originally developed by the Software Engineering Institute at Carnegie Mellon University – that is designed to bridge the natural communication gaps between the various groups responsible for bringing a product to market. VDA illuminates the important interrelationships among providers and consumers of product value and how they vary with deployment contexts and over time.

The process captures the external forces, limiting factors, dominant complexities, and areas of volatility that need to be rigorously understood as the basis for a well-formed product strategy and architecture.

It identifies value curves that lead to more precise ROI analysis and guide technology investment planning to optimize value in a way that mere cost reduction planning later in a project cannot hope to achieve. In summary, VDA is a rigorous, low cost, short duration, high impact, up-front planning exercise to tilt competitive advantage in your favor.

Evaluation
Reviewing the solution for suitability to achieve the desired system behavior, providing a rationale for the recommended alternative, and conducting a conceptual integrity review to ensure the components make a workable well-integrated solution.

All too often our clients must make critical business decisions about existing software assets without a sufficient understanding of that software. Perhaps the software was part of a corporate acquisition and the parent company’s internal staff is too busy to look at it carefully.

Perhaps there are widely differing internal opinions on the overall health and future potential of existing software and an impartial external opinion is needed. Perhaps your internal staff does not have the knowledge to rate the software with respect to best industry practices for similar systems.

A Symphony software assessment can help you make rational strategic decisions about your software assets.

Is the software suitable for use in future products?

Would there be a significant ROI from cleaning up the software?

Should the software be replaced?

Can portions of the existing software be salvaged or reused?

Software assessment engagements will typically include some or all of the following:

•Software architecture evaluation

•Static analysis of the source code

•Analysis of customer-reported defects

•Analysis of programmer productivity

•Quality of the software documentation – both end-user documentation and internal software documentation

•Assessment of the source control, and the build and test approaches

•Assessment of development and maintenance practices

•Adequacy of release testing and overall software quality practices

•Technical competitive assessment – how it compares to competitors’ software from the perspective of ease of use, features, ease of installation or integration, etc.

•ROI based comparison of developing new software from scratch or migrating existing software to a new platform and/or a better architecture