![]() |
|
|||||||||
|
||||
|
This page details the development approach that Mighty Oaks employs when embarking on a Custom Software Project, generally for large applications or for product ventures. It outlines our development philosophies, and the procedures applied to completing a project. It will also identify some of the obvious, and not so obvious, hurdles and possible risks, and itemize the tasks that need to be completed to ensure a successful end result. After reading this document, customers will have a good understanding of what is expected of themselves, as well as what can be expected from Mighty Oaks. This is a fundamental requirement of a successful project: clear understanding by both the customer and contractor of their responsibilities. The industry's large project success rate is between 10-50%, depending on your sources. The difference between success and failure can be traced back ambiguous success criteria, lack of planning, poor project management, and unmanaged expectations. At Mighty Oaks, we use best-of-breed methods and processes to ensure solid project management. Our techniques are based on decades of personal practical experience, and though the implementation of proven industry standards. These create realistic expectations on the part of the customer, and measurable goals for all individuals tasked with delivery. We also work with you directly and continuously so that all parties understand roles, expectations, and each of the next steps. Your success is our success. Mighty Oaks: Proven Software Expertise Whatever the software need, Mighty Oaks has the tools and expertise to assist. Mighty Oaks has a wealth of custom software development expertise in a variety of business domains. Combined, we have more than a hundred years of experience encompass the business domains of higher education, localization, taxation, back office, railway, banking, purchasing, eCommerce, grocery, retail, and general Canadian business. The many software products and projects that we have produced are still deployed and operational in a variety of businesses across North America. We have built applications for varied infrastructure environments (server, web, Windows, Linux, PDAs, Phones, and Tablets). We offer full business solutions: straight through from opportunity/need to full operational support of deployed product offering. Our IT services Division, and our Management Consulting Division are there to provide full support and services, where needed. Our staff are experts for all supported technology and business domains. We assign the most qualified person to do the work for you, not the person who is available. Why Mighty Oaks for your Project? There are many companies that perform custom software development. Why choose a smaller company like Mighty Oaks? Mighty Oaks does not have the high overhead that the larger companies provide. Consequently, our rates can be as much as 1/3, or less, than that of the "big" corporate partners. The illusion of never going wrong with the big corporate companies is simply that: an illusion. Large companies never keep the best people on the same project; in fact, the opposite is continually occurring. The best people in large companies are always being flown to rescue a small part of the project, then they are moved on to the next crisis. The idea of business continuance is also an illusion. Large companies discontinue support for their custom developed products constantly. Their costs for enhancements and features will make your head spin. We do the work cost-effectively, for you, using the best person suited for that work. We do not put our most junior person on work, so that hours, and invoices, are maximized. We leave that type of poor service to the big companies. We build, maintain, and support your custom software, cost-effectively. We support and maintain any custom software that you have perhaps developed yourself, but is no longer support by the original development team. If you are looking for someone to assist on enhancing or creating your custom software, give us a call. Project Overview Mighty Oaks' approach to project work is performed via a clearly defined series of steps. The successful completion of each step is critical to ones that follow. A good analogy would be the construction of a building. It stands to reason that one does not start at the top floor and work down, rather one starts with a solid foundation and builds from there. The sequence of events in a project plan follows a similar logical order. By defining the scope of a project and the series of sub-projects within it, we can establish the resources and time required to completion. The more refined the plan, the less likely the chance of problems once the project is underway. This is the foundation of the project. The steps to building the project plan are as follows:
Our approach incorporates quality into each stage of the entire project, not as a single stage to be performed at a given time. This ensures that quality is built into your solution from beginning to end. Sales/Concept During this sales/concept phase, the overall problem or need is determined. Frequently, the customer has recognized a shortcoming in an existing business process, or possibly an unfilled market niche that they would like to pursue. We generally sign Non-Disclosure Agreements (NDAs) at this first stage, to protect the customer's idea, and allow the project to move forward. The following constitutes a series of events that comprise the Sales/Concept Phase of a project plan:
To summarize this phase, a problem or need has been recognized and the solution has been conceptualized. Both parties agree to proceed on to the Requirements Definition phase. Requirements Definition The Requirements Definition phase is perhaps the most critical phase in a project. The amount of effort and the decisions made here have a direct impact on the overall success of a project. During this phase the requirements needed to correctly proceed to the Architecture phase (which precedes construction) are gathered and finalized. There are essentially two parts to the Requirements Definition:
Identifying the Visual Requirements Our general approach to identifying the visual requirements is through prototyping. Visual requirements include design elements, such as screen layout, field layout, menus, graphics and so on. It is imperative to involve the end-users at this stage. This ensures that the resulting solution will satisfy the end-users' requirements when completed. The following constitutes a series of events that comprise the Requirements Definition phase of a project plan:
This approach has many benefits, such as:
Not enough can be said about the benefits of resolving any issues up front, prior to beginning the development phase, or construction of the software. Research shows that discovering and resolving any issues during the Requirements Definition phase can save between 50% and 200%, what it would cost to deal with the same problem later at the end of the project. Use the Prototype to Create a Users' Manual Create a Users' Manual at the start? This may sound backwards, but upon further examination, it makes perfect sense. The Users' Manual doubles as the Requirements Document. Most projects go through a Requirements phase to some extent. This typically produces a Requirements Document, a complex technical list of itemized requirement definitions. It is frequently difficult to read and understand. It also may not clearly explain the real functionality that the customer requires. Also, with such a long and detailed technical document, there is the likelihood that the document will not stay current, when items change later in the development cycle. This can become a serious problem for both the customer and the contractor, as the Requirements Document is often looked upon as the rulebook for the project. If this document is used improperly, it introduces design and development flaws later in the development cycle. If we have a Users' Manual that will ultimately end up in the users' hands instead, it makes sense that it will be kept up to date throughout the project. It is also the best reference for the development team, as it clearly states how the program is to operate and behave. While this step is not completely necessary, a set of requirements that are created and signoff is imperative for all stakeholders to define the project a success. Gather the Non-Visual Requirements Non-visual requirements cover the areas that the users would not directly see within the finished product. This includes areas such as the formulae to be used in calculations, data structures and import/export functions, hardware infrastructure considerations and so on. These requirements appear as appendices in the Users' Manual. After the Requirements Document is prepared, we move to the Checkpoint Review. Once the Checkpoint Review has been passed, the Requirements Document is fully reviewed and placed under strict revision control. High-level Project Plan The last step of the requirements phase, is to scope and plan the project. Generally speaking, this is done by experts in each of the required areas. This information is compiled, signed off, and passed for review to the client. Checkpoint Review The Checkpoint Review gives us an invaluable opportunity. A full review of the Software Development Plan is done and the customer is made fully aware of the state of the project. It answers questions such as:
Here is a chance to make the final decision whether or not to proceed. In the initial stages, too little is known to accurately determine how much a project will ultimately cost and how much effort it will require. After the Requirements Definition, there is a much clearer understanding. It gives the customer the opportunity to review why they want the software built and whether it is still feasible to continue. In some situations, companies may even perform their own feasibility studies. If the project is cancelled at this point, the project can actually be considered a success. Making an informed decision and not spending needless time and money, is definitely the right decision, as compared to projects that begin without proper planning and proceed well into the development effort and are then cancelled, perhaps even over budget. The most important thing of a Checkpoint Review is the delivery of the Requirements Document. It means that the customer has had a thorough analysis performed on their software needs and requirements. Whether they decide to proceed or not, or perhaps delay, they are still in possession of a valuable report. It will be invaluable when they are ready to move forward. Once the decision is made to continue, we move on to begin the Architecture phase. Architecture Now the actual system begins to take shape. Only skilled application architects perform this phase. Mighty Oaks uses only its most senior technical staff to build the foundation for a successful project. This is similar to the way a building architect would be used. One can plan to build an office building. Once all the ideas are in place and the materials have been determined (Requirements Definition), an Architect would create the plans to perform the actual construction. The same approach is used for a software construction project. Spending the time to properly architect the project eliminates possible pitfalls or design flaws. The architect does not get involved in the minute details of functionality; rather the focus is on an application framework, and identification of systems and procedures and their interaction. An architect's mandate is to strive for simplicity, minimalism and coverage of all of the requirements. From the Architecture phase, we move into detailed design in the Construction phase. Staged Construction Staged Construction is the approach Mighty Oaks employs when building the actual solution. The term "staged" refers to the software being built in stages. The project's functionality is grouped into logical stages, typically based on the importance level of the functionality. Generally, the most critical functionality is developed first. Each stage is used to maximize the value to the customer and minimize the risks. The customer can even end up with useable software in their hands relatively early in the construction of the solution. Each stage is controlled through a planned cycle, using detailed design, construction, testing and release. Some major benefits to the staged construction approach are the ability to assess the project's status at any time and to reassess estimates as the project progresses. Staged construction minimizes surprises, helps to eliminate scope creep, and in general, keeps the development team focused. Implementation/Release This is the point at which the solution is fully constructed, and released to the customer. This phase covers tasks such as, moving data to a production server, finishing data conversion or entry, completing final inspections of the software, and deploying the software to all sites. This is when the customer goes "live" with the solution. The relationship then moves into an operational phase and the initial project is considered complete. Conclusion Developing a custom solution is not a small feat - in fact it's a journey, and making it to this stage is quite an accomplishment. It is an extremely involved process, but when executed properly, can be very rewarding. In short, it comes down to clear communications and managed expectations. A key factor to any successful project is that the customer and Mighty Oaks fully understand their responsibilities and are proactive in their communications. It is a joint effort, a partnership, and the strength of the relationship will result in a solid result. There are no secrets on a successful project. We will work with you to build, maintain, and support your idea. |
|
|
|||
| Mighty Oaks 2008. All rights reserved. Privacy Policy. | |||