CATEGORII DOCUMENTE |
Asp | Autocad | C | Dot net | Excel | Fox pro | Html | Java |
Linux | Mathcad | Photoshop | Php | Sql | Visual studio | Windows | Xml |
DOCUMENTE SIMILARE |
|||
|
|||
Nearly all companies struggle with communication, collaboration and cultural gaps between business users who drive the competitive need for software development, IT organizations who create that software, and operations staff that manage application deployment and maintenance. This white paper will address the key challenges faced by companies today with regards to software development and implementation. Then it will discuss changing approaches to Application Life-Cycle Management (ALM) and lay out the core modules of Microsoft's Visual Studio Team System as they relate to driving business success through more effective software development and implementation.
Typically, IT organizations are siloed internally, with poor hand-offs between developers and inconsistent approaches to core project life cycle phases and roles (architect, project manager, developer, tester, etc.). This negatively affects design, quality, code management and deployment. These challenges impact the corporate bottom line in increased expenses due to poor design and quality, ineffective code and project management, and software delays that cripple business responsiveness to the competition.
High-end application life-cycle management (ALM) suite products address many of these areas. However, they tend to be difficult to use, expensive to implement, and not tightly integrated since they have resulted from acquisitions of disparate products.
This means that cohesive information about development team progress, management and quality remain largely inaccessible to both IT and the business. At a time of increasing cost, competitive pressure and greater complexity for business requirements, G2000 organizations require intuitive, accessible, integrated ALM products. Most companies have highly constrained resources and supplement internal IT with outsourcers which further drives the need for better prioritization and metrics for measuring IT success. In addition, regulatory compliance legislation is pushing organizations towards greater rigor with regards to life cycle management. Emerging development paradigms such as Service Oriented Architecture (SOA) demand new, more flexible and comprehensive approaches to life-cycle management as well.
Geographic dispersal of teams deepens the need for visibility and coordination across life cycle phases. Even co-located teams struggle with fractured communication. This problem is exacerbated when development groups work across both large geographic and cultural divides with mixed sourcing that includes internal teams and outsourced or offshore resources. Specialization for core areas of expertise also tends to increase the disparate nature of corporate culture and poor information exchange. It is vital for G2000 organizations to be able to react quickly to business and requirements changes. Yet many organizations have minimal change management in place. In highly dynamic markets (such as financial services or telecom) and areas with intense merger and acquisition activity (such as banking or insurance), companies must react rapidly and appropriately or lose revenue and competitive edge.
Before considering emerging solutions for integrated ALM, it is useful to define and understand key life cycle phases - process and project management, requirements, modeling, testing, and software change and configuration management.
Each life cycle phase brings benefits individually that are more potent when effectively integrated and coordinated with one another. However, these phases and tools must be associated with ALM processes that map to the culture of the IT organization and business as well. Best practices that facilitate rigor and adoption of ALM tools and that resonate with existing corporate and IT culture are key to success. These practices -- coupled with strong project management for task scheduling and resource allocation - create a strong basis for effective software development because they provide a framework for appropriate usage and a template for behavior change. Even with the best technology in the world, organizations will not succeed if they don't use the tools optimally (in the right way at the right time).
Effective processes also help drive better communication across groups. For instance, relevant, current business requirements drive project success. Industry research indicates that 70-80% of project failures result directly from poor requirements gathering, management, and analysis. Here, again, process plays a role. One-off communications between business users and technical staff lead to requirements which are obsolete before the project begins. Enabling users to communicate with developers by using familiar business tools (such as Microsoft Word and Excel) and facilitating feedback loops between business and IT are key elements to improving the quality and currency of requirements. Those requirements can then help to drive modeling. For more rigorous requirements needs, supplementary higher-end tools provide traceability and strong management.
Appropriate modeling enables organizations to create applications that reflect business needs and architectural and system demands. Iterative process approaches enable on-going interaction between business users, designers and those implementing code. In this way, code content is likelier to reflect current business demands. Designers themselves have varying roles. Typically, there's a disconnect between architects and operations which has negative impact and leads to increased costs for software deployment. Those issues can be addressed upfront through greater visibility into deployment and infrastructure challenges via communication between architects, designers and operational staff. Enabling comprehensive design tools that facilitate cross-group and cross-lifecycle visibility are key, here, as well.
For developers, facilitating the development process through close coordination between the IDE of choice and life cycle management is also key, including testing and software change and configuration management and version control.
Finding bugs earlier in the life-time of an application cuts costs. Industry research indicates that software problems found late in the application life-cycle increase costs from 10 to as much as 100 times the cost of finding and fixing the defect during initial unit test. The costs to debilitated reputation on top of lost revenue for transactional and customer-facing systems are incalculable. Enabling early, frequent testing via iterative unit test support is the first step. This means that the quality of code produced for later phases at system and system integration test and beyond with user acceptance and deployment will be of higher quality. In addition, it's important to know what code has been tested, as well as to address performance and load testing, manual tests, and management of the testing process. This enables testers to better structure and manage their testing approaches in coordination with development. Improving quality cuts costs for the business, increases the responsiveness of IT, and eases the transition to operations and maintenance.
Software change and configuration management and version control are key elements for developers in managing code creation effectively. Poor hygiene with regards to managing code changes as well as poor coordination with testing once the changes have been made opens up the door to failure and revision chaos in a variety of ways. The changes themselves may introduce quality problems and changes need to be managed to enable team collaboration (rather than code confusion) and consistent software releases that are in line with key business needs. Prioritization of change requests is also key in that context. Reporting on IT responsiveness to change request provides another quantitative metric to feed analysis and executive understanding about the effectiveness of IT resources (whether the resources are internal, off-shored and/or outsourced domestically).
Overall, it is clear that each of these phases individually must be well established. However, the coordination of these phases with effective automated tools that are closely integrated and that are deployed using appropriate process and project management will yield significant benefits to the business. These benefits include adaptive, flexible responses to competitive pressures and decreased costs for code creation, quality and management into the deployment phase. Since the human barriers to ALM evolution tend to be most challenging, facilitating adoption via accessible, intuitive products and resonant processes and project management are vital elements to success.
Initially, niche application life-cycle products for requirements, modeling, SCM, or testing, were without integration to other life cycle tools and phases or the integrated development environment used by developers to create code. Increasingly over the past five years (2000-2005) this market has been consolidating. Larger vendors have purchased smaller best of breed players and the overwhelming trend is towards the integration of development environments with traditional application life-cycle management tools into integrated suites. The most recent evolution of these suites to encompass IT portfolio management presages what we expect will be dominant across the market. However, integration challenges within and across the suite as vendors have acquired disparate point products, high price points and product complexity have constrained widespread use of ALM suites.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 902
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved