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.
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.
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
- 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.
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.
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.
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.
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.
To put into use or action.
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
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.