Building software may be the way your company makes money, or it may be
an all-to-necessary by-product of trying to integrate legacy, homegrown
systems with off-the-shelf software. Either way, an effective and efficient
software development process can contribute to the bottom line.
(If you're just starting to think about this, please read
our Software Development Management Overview.)
Whether it's time to take on a new development project or streamline an
existing process, here are some things to consider:
Focus on Quality
Think that delivering a high-quality solution is slower and more expensive
than a so-called quick fix? You'd be surprised. Low-quality software actually turns
the organization backward facing, focusing its energy on fixing defects and
issuing patches. Building quality into the process from the beginning allows
organizations to focus on the future, pursuing new opportunities and resulting
in faster development, reduced cost, and easier integration of new features.
A common commitment to quality can also bring cohesiveness even among
in-house, outsourced, or offshore teams.
Defined Development Process
Like any construction project, the successful development project relies heavily
on preparation. Quality isn't just a matter of good testing -- it has to exist as
the project moves from planning to development to deployment. It is crucial
to have a clearly defined process that is communicated to all participating
parties, so there is a common understanding of how to proceed.
Build What the Customer Wants
Meta Group reports 80 percent of customer dissatisfaction can
be traced to a misunderstanding of requirements. The starting place for a
quality development project is to clearly identify customer requirements - whether
those customers are internal to the company or external clients. Once they've
been identified, it's important that they be put down in writing and circulated
to the client for sign-off. That way there can be no misunderstandings later.
Once the requirements have been approved, they must be translated into objectives for
the development team. Before a single line of code can be written, it's important
that the developers understand what they need to accomplish to succeed.
In addition to customer requirements, keep in mind that development teams also have
their own business requirements. While it may not be appropriate to share with customers,
it's important they be known, communicated, and included in the process.
Build a Usable, Functional Application
Iterating -- the act of building, testing,
fixing software -- is part of
any development process. Most software goes through many iterations before
it is deployed. The trick is to iterate enough to get a usable product,
without going through so many as to make the process drag on for too long.
The software doesn't need to be all things to all people, but it does need
to do its job -- and do it well.
Deployment and Maintenance
Deploying the software is the beginning of the end of the
process. Proper installation and
configuration
are necessary to
a good customer experience. But just enabling the software isn't
enough. The people who will come in contact with the software need
to be enabled as well. This includes end users of the software,
as well as IS or the department responsible for
maintenance.
If the software is meeting IS's service-level expectation, in
addition to being usable and doing what the customer wants,
consider the project a success.
For more information on choosing the right solution for your company,
read our Software Development Management Overview.
Go to Bitpipe Research Guide: Software Development
Management.