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 our our industry calls a Statement of Work (SOW). The SOW defines the programming efforts to be performed, based on wireframes, business and hundreds of programming requirements. At Sofvue, we employ the Component Based Software Engineering (CBSE) and 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 save your project, depending on size, from thousands or tens of thousands of dollars in otherwise lost production time, deployment and up-time development costs.
The first stage is two-fold. 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 will look like. After we meet, our team carefully analyzes your project goals and determine whether Sofvue is a good match. The analysis takes 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.
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 is dependent 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 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 have 10-15 business days of dedicated development time 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 begin interacting with the application.
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 ensure outcomes are valid. 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.
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, the source code is prepped and released to the staging environment(s). Whether you are launching a small Customer Relationship Management (CRM) system, or a large enterprise application serving thousands, when software is designed correctly following our approach, deployment remains critical but silent, often with project owners and employees not even realizing deployment has occurred.
Deployed software needs time to stabilize. This is why each deployment includes a (30) day stabilization period so customers and/or company 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 board, saving thousands of dollars in wasted development and support time releasing unproductive features.