BITPIPE RESEARCH GUIDE :

Software Development Management Overview


Think you're not in the software development business? Think again. Even companies that make the business decision to rely on off-the-shelf software wind up doing some of their own software development to customize things for their environment. And that doesn't include the stray legacy application or two that needs to be integrated into modern environments. Then there are companies whose primary business is creating software solutions for clients. Development projects cover a lot of ground, from commercial software or internal applications, to client-server or Web-based applications, to new development projects or integrating legacy software. Whether your primary business is software, or you're just trying to keep the business going, the successful development projects follow the same basic process: Analyze, Design, Develop, Test and Deploy.

Process Management

Good process management ensures the timely delivery of the end products.

  • Software Development Methodologies. In order to ensure data quality, development teams need to follow best practices. Whether making a decision about migrating to the newest technologies or upgrading the environment to comply with new ISO, CMM or CMMI regulations, development methodologies need to be continuously evaluated and iterated to ensure quality.

  • Software Configuration Management. Also known as configuration management (CM) or environment mapping, it's a detailed report of the company's hardware, software and network systems, their version numbers and installed patches. In a development environment, this also refers to documentation of code, as well as errors and requested changes.

Analysis

The successful development project is one that results in software that is what the customer wants. To that end, gathering requirements is critical. A common understanding and sign-off of a project's objectives helps ensure success.

  • Software Selection. Once requirements have been determined, the next step is to select the appropriate software. This is the classic buy-versus-build analysis. In some cases, it may be the right solution is to build a new piece of software. In many, though, it may be faster and more affordable to purchase an off-the-shelf solution. In other cases, requirements are so critical to the business, that acquiring technology by buying the company who makes it is the right step. Defining requirements and getting buy-in from all parties involved is crucial to making this decision.

  • Software Licensing. A key component of the analysis phase is the buy vs. build step. Smart business analysis adds a third option, which is licensing key components. An effective, disciplined licensing program can greatly extend an IT budget.

Design

After the project has been analyzed, and development and business requirements established, the next step is system design. This establishes the overall structure of the project, defining the framework that all parties agree to.

  • Software Architectures. Often describes the operating system required by the developed application, but can also refer to the programming language (Java, C++), the programming framework (.NET, J2EE), or a particular kind of software system (Business Intelligence, Customer Relationship Management, or CRM). In most cases the architecture is defined by the development requirements.

  • Web Services Architectures. Web Services are applications that are made available from a Web Server. These services do a better job of communicating with other applications because they introduce themselves - describing what function they perform, how they can be accessed, and what kinds of data they accept. Based on XML and other open standards, they are relatively easy to learn and often have a reasonable price point.

Development

With the prep work complete, it's time to start creating code.

  • Rapid Application Development. A software development process that allows usable systems to be built in as little as 60 to 90 days. The small, empowered team prototypes to the requirements, then iterates until it is fit for a business purpose. This process works best for standalone and/or specialized internal applications that can be built on standard APIs.

Testing

Though including testing for defects, quality assurance means making sure that the product or service being developed meets requirements -- both customer and business requirements.

  • Software Quality Assurance. While often cobbled on to the end of the process, to be effective, testing needs to happen throughout to ensure a quality end product. This assures that the product functions to requirements in the specified environment.

  • Debugging. The process of locating, then fixing, errors or "bugs" in program code. Debugging is an ongoing process, as individual components are completed, then brought together. There's also a system test when the mostly completed product is used with other, existing products. Very complex products often take advantage of a beta test where the product is distributed to select customers to use in real-world environments.

Deployment

To put into use or action.

  • Application-Development. Installing and configuring software into the system environment, as well as training end users and IS or IT to support and maintain the software moving forward.

  • Application Integration. Part of the deployment process, where a new application is brought into the environment with existing applications. Ideally the new software will have been developed with that requirement in mind.

For more information on choosing the right solution for your company, please read our Software Development Management First Steps.

Go to Bitpipe Research Guide: Software Development Management.

 

About TechTarget:

TechTarget provides enterprise IT professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective IT purchase decisions and managing their organizations' IT projects - with its network of technology-specific Web sites, events and magazines

All Rights Reserved, Copyright 2000 - 2014, TechTarget | Read our Privacy Statement