Custom Software Development

Component Based Software Engineering

You would never dream of asking a general contractor to start construction on an office building or custom home without a set of approved floor plans, but in software development, it happens everyday.  Just like construction, software needs a starting point.  It needs "floor plans", or what those of us in the technology sector call a Statement of Work (SOW).  The SOW defines the programming efforts to be performed, based on wireframes, business and hundreds or thousands of programming requirements.  At Sofvue, we employ the Component Based Software Engineering (CBSE) technique, along with the agile approach, to develop source code.  This approach ensures projects stay on track and fulfill the defined business goals.

Continue reading to learn more how this approach can reduce project overhead by thousands or tens of thousands of dollars in otherwise lost production time, deployment and up-time development costs.  

Stage 1 - Assessment

Assessment is divided into two parts.  First, after signing standard Non-Disclosure Agreements (NDA's), we meet with you and your team to learn more about your project. During this first exploratory meeting, you identify key deliverables that define what project success looks like.  After we meet, our team carefully analyzes your project goals to determine whether Sofvue is a good match.  Depending on project size, the analysis can take 1-10 business days.  When we're the right fit, a second meeting delves into expected delivery dates, preliminary time estimates and sprint schedule.  We also discuss preliminary time and cost estimates.  Once everyone agrees to the expected delivery and time estimates, we execute a development agreement to begin the design and planning stages of the project.  This is where software development begins.

Stage 2 - Designing & Planning

Just as an architect might offer two-point perspectives to give you a visual representation of a finished project, Sofvue develops wireframes that demonstrate every page (component) of your software application.  We achieve this by utilizing the Component Based Software Engineering (CBSE) model of development.  Following the CBSE model, we produce well defined wireframes and requirements.  This forces all the software elements to be clearly defined before any programming work begins.  For each phase of development (what we in the IT world call "sprinting") there might be 10-20 wireframes, or thousands.  The largest project we've ever developed had 6,000 wireframes, spread across fourteen sprints and four years of time.  That said, every project is unique and the time required to complete a project depends entirely on the volume of business and programming requirements.  The process is iterative (following agile methodologies), and can last a few weeks, months, or years.  It all depends on the business case, deliverables, budget, time constraints, expected hosting requirements and maintenance needs.

Stage 3 - Coding & Development

Stage 3 takes all the wireframes and documentation, and bundles them together to produce a Statement of Work (SOW).  Once the SOW is contractually executed, actual coding and development work ensues.  When designed correctly, programmers will typically be give 10-15 business days to produce and deploy source code to one or more staging environments for expected testing. As programmers write the source code, test planning determines what will happen during the testing stage of development.  It is also during this phase that you can see and begin interacting with your application.

Stage 4 - Testing

Ask any business owner who owns custom software, and they will tell you testing is both misunderstood and takes considerable time to complete.  In fact, testing can take as long to complete as development.  This is particularly true when it involves time sensitive Use Case studies and scenarios, or the application has complex algorithms that require testers to run dozens and sometimes hundreds of test scenarios to validate expected outcomes.  At Sofvue, we assemble appropriate test plans so technical personnel and your company employees know what to test, when to test and what defines a successfully completed test effort.

Stage 5 - Deployment

At Sofvue, we follow Agile methodologies and believe that many small deployment yields far superior results than one large deployment.  Once production servers are created, or cloud instances become active, the source code is staged and released to appropriate production environment(s).  Whether you are launching a small Customer Relationship Management (CRM) system, or a large enterprise application serving thousands, when software is designed following our approach, deployment remains critical but silent, often with project owners and employees not even realizing deployment has occurred.

Stage 6 - Stabilization and Improvement

Deployed software needs time to stabilize.  This is why each deployment includes a (30) day stabilization period so customers and/or company employees can be trained and begin utilizing the technology.  This allows productivity among staff to peak, which in turn allows ROI to materialize.  It also provides additional shadow testing to occur to see if there are any hidden defects not discovered during the testing stage.  It is also during this stabilization period that we begin to examine how to improve the existing software, improve performance and expand functionality, with ROI driving each decision along the way.  When it makes sense, new components and features are added and we roll back-up to Stage 1 of the process.  When ideas don't work, they die on the drawing table, saving thousands of dollars in wasted development and support time.

Next Steps...

Call our office at 623-845-2747 so we can schedule an introductory call to learn more about your company, your goals and how Sofvue can bring value to your project.  We look forward to your call.