Software has never been easier to build. It used to be necessary to make a significant investment in databases, development tools, and production infrastructure. Acquiring, building and configuring these components alone required the creation of a robust technical development organization. Now, with much of the software needed available for download as open source, and the availability of Cloud offerings such as Amazon’s Elastic Compute Cloud (EC2) organizations can quickly, easily and cheaply be in the software development business with solid production infrastructure. This enables companies to build innovative and competitive products. However, it also means that these same organizations can easily and quickly run into major issues. They often end up not building the kind of engineering operations and practices that are necessary to grow the operation, achieve scale, maintain and enhance their code base and ultimately support the company’s growth and the creation of real value.
This manifests itself in a number of ways and our CTO Consulting Practice is designed to help you:
- Identify the problem areas
- Develop a prioritized strategy
- Address both the symptoms and the underlying causes
Using the same approach that we use when performing due diligence audits for acquiring parties, we review the people, processes, and technology to identify strengths and areas of possible concern. Each engagement is tailored for the specifics of that unique environment, but typical areas of attention are:
ASSESSMENT OF THE PRESENT STATE
Our CTO practice performs an independent verification and validation of the client’s people, processes and technology with specific focus on the development practices. Leveraging our Software Engineering IVV™ process, the current status of the go-to market products will be reviewed in terms of development, deployment, functionality, intellectual property ownership and reliability.
Assessment findings will be documented and presented in a white paper delivered in MS-Word and PDF formats. Findings are typically categorized as:
- Critical – high priority vulnerabilities that should be addressed or mitigated in the near term.
- Important – issue areas that should be included in the company’s near term development and improvement plans.
- Watch List – areas that should be monitored and addressed when certain identified thresholds have been crossed.
DEVELOPMENT OF A STRATEGIC PLAN
Working closely with leadership, development staff, outside teams and all key vendors, we analyze the present state of development activities. Next we will develop a phased-target strategic plan for addressing identified issues.
Through a series of meetings and/or workshops, we guide the client through the process of refining and finalizing a three to five year strategic plan that supports the organization’s vision while remaining reasonably implementable within the budget and staffing constraints.
While we are always committed to delivering an actionable, implementable strategic plan aligned with the resources and capability of the particular client, BostonCIO is available to assist with plan execution on a project basis or via leveraging our Shared-basis CTOSM offering. This is an important distinction as many consultants are full of good ideas; our commitment to successful implementation serves as a guidepost and reasonableness check on all recommendations.
Many companies are frustrated with the speed of delivery or the quality of the output they are getting from their development operation, and in many cases at least part of the problem is in the process that is being used. This is particularly prevalent with companies that are adopting agile methodologies. Our approach to process coaching is to start by looking at how well business value is being delivered from the development process. Typically this is evaluated on three criteria:
- Speed of delivery
- Quality of delivery
- Accuracy of delivery
By looking at how the development efforts are delivering on each of these dimensions, we can typically identify root cause problems in each area, and then define the actions that need to be taken as part of an overall improvement plan. Process improvements typically happen in an incremental fashion, and as part of our process coaching practice we recommend an ongoing engagement. The level of coaching input often varies over time to help guide and direct this incremental progress with the ultimate goal of the development team taking complete ownership of the improved process.
The software development industry struggled over the years with the challenge of growing senior technical personnel into effective leaders. Having effectively made this critical transition ourselves we are in an excellent position to provide leadership coaching to other individuals. We can effectively coach these emerging leaders to transition successfully into their new roles:
- Managing administrative details such as enforcing compliance with process, security, or other rules
- Leading development process and technical meetings
- Addressing engineering-specific personnel issues
- Establishing process and conducting structured code reviews
- We can provide guidance and support to help any level of manager, from first time team lead to C-level technical executive, helping them become more efficient, effective and ultimately delivering increased value.
OFFSHORE OPERATIONS OPTIMIZATION
Outsourced and offshore operations are a fact of life in many organizations yet remain a challenge for many companies in terms of getting quality, adequate throughput, productivity and value from these operations. This problem is becoming more severe as the drivers for offshore development expand beyond pure cost savings. With offshore development costs continuing to rise and companies increasingly looking for staff augmentation alternatives to supplement difficult to fill local positions, the need to optimize becomes ever more critical and strategic. We have extensive experience working across a range of offshoring models with both outsourced and captive operations. This experience includes new software development, maintenance, customer support and delivering customer implementation services remotely. We can help you with:
- Project selection
- Project initialization and ongoing governance
- Offshore working model
- Communication mechanisms