Software Engineering

Buffalo Creek Software Engineering, Inc. (BCSEi) provides a range of software development and consulting services to meet the needs of small to medium size businesses. Using a combination of proven technologies to bring our customers' projects to realization on the internet, corporate network, desktop, and mobile devices.

How we engineer software to meet our customers' needs represents an important part of our corporate philosophy. There are core principles governing the internal processes which result in producing the best software we possibly can.

Conception, Requirements, and Analysis

The development of software begins with a customer's ideas and an examination of what it will do. Parts of this iterative process are revisited to make changes and refine the definition of the project. See Web Site Development.

Specification and Design

This is where the "blueprints" are drawn and revised as development moves forward. We bring the business requirements into focus for the software engineers, database administrators, and other programmers. There is the "look and feel" too, that spells out for the graphic artists and user interface people how the software should be presented for the users.


The implementation of the software components begins; working from the development plans the applications are programmed, unit tested, and debugged by the software developers. At some point, each iteration of construction produces a working version of the system that gets handed over to quality assurance (QA) for functional testing and other evaluations.

Quality Assurance

Each round of building and testing the system results in feedback from QA that addresses the problems they have identified. These errors, omissions, and functional deficiencies are reported to each of the parties responsible for correcting them. QA will track all of the issues and verify the resolution in subsequent versions of the build.


Once perfected or at least sufficiently corrected the software system is ready to be deployed / released. This may mean creating "shrink wrapped" packages or files for downloading online containing the necessary installation components and instructions. A proprietary or internal system would have methods defined for the installation or roll-out of each software release.

The Six Boxes
The Six Boxes. Click Here to view a bigger image.