I was once challenge to create a proposal for a mid-size application that can have millions of potential users. The experience is not easy as I need to meet up with the same client over and over again to discuss the high level solution, innovations made, justify estimates, explain the overall process, expectation on both parties and what the solution will be the final solution be like after.
I will try to give out as much detail as I can, but I need to protect the integrity of my documents as well as my client.
Client Use Case: I want to create e-Learning System that will allow enthusiastic knowledge sharer to have a venue for them to teach and possibly earn.
With this client use case, I come up with a Conceptual System design. The Functional Aspects include (note that what I’m going to show here is just a specific phase of the project):
- User Dashboards
- Learn – Venue for users that wants to learn
- Teach – Venue for users that wants to teach
- Community forum – discussions on topics, courses and other related activities
- Account Management – users will be able to manage their accounts using a specific sub-system
- Shopping Cart – Payment process
- Settlements – Settle accounts and payments, report generation for receipts and stubs
- Actual up front website of the system
What I did is separate these systems requirements and break them down to smaller manageable (yet still high level solutions) modules. I will not further elaborate how I did them but here is the screenshot of the documentation I made (with the break down). Basically, these are all intuition based, if you are knowledgable how Software Apps work – you’ll eventually end up having an idea on how to solve each specific case.
So to list all details that I did for the proposal:
- Details that as much as you can, can be explain or elaborated to the most non-technical person on the client side
- Complete Systems requirements versus technical solution
- list of solution and innovations (why does your solution stands out of the rest – what is special about it)
- Process / methodology – We need to give them a bit of how we do things and this is how effective we are – give them the benefits that they will acquire with your preferred methodology – not just your own benefit.
- Give them the comfortable detail they need for them to trust the solution
I tried preparing all of this items as it will give the client a better perspective and understanding on what and how are the projects will be executed:
I put up a list as of features with respect to its technical conceptual design. These features look a lot like functional ones but a closer look at each will give you the idea that they are also separated by technical implementation (how to implement each).
Created Pre-requisites – to identify if there are features that needs to be done first before the feature is considering fully working. Description – is just the purpose of the module. Solution, Effort and Cost Driver – table that consist of the solution, explanation of effort and its cost driver.
Sample Feature breakdown – that includes, description and step by step sub-features:
Next is the cost breakdown – the cost break down is based on the average hourly rate of the developer – I wanted to make this project as formal as possible as I’m looking at it back then to be the initial pilot project and that the process established will be re-used for succeeding ones.
The cost gives an overall breakdown of cost with respect to: technology stack, platform, effort resourcing and external service needed.
Technology Stack Diagram and implementation scheme – Its important that you align the methodology or at the very least, the strategy of implementation. I used Agile – and aligned its benefits and the high probably of quality result by using actual user stories.
Since this is a Website: Systems Architecture (Hosting)
Agile: Systems Integration Architecture / Process View
Traceability Matrix – Map System requirements to High Level Solution module (note that this is from a different project)
The bottom line here is that: Give them the correct details they need for them to be comfortable with how you will do the solution and of course your depth knowledge to finish them off with the highest quality possible.