High Level Solutions Proposal – Adhoc experience


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):

  1. User Dashboards
  2. Learn – Venue for users that wants to learn
  3. Teach – Venue for users that wants to teach
  4. Community forum – discussions on topics, courses and other related activities
  5. Account Management – users will be able to manage their accounts using a specific sub-system
  6. Shopping Cart – Payment process
  7. Settlements – Settle accounts and payments, report generation for receipts and stubs
  8. 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:

  1. Details that as much as you can, can be explain or elaborated to the most non-technical person on the client side
  2. Complete Systems requirements versus technical solution
  3. list of solution and innovations (why does your solution stands out of the rest – what is special about it)
  4. 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.
  5. 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).

1_feat

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:

feature_breakdown

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.

cost_1

effort_excel

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.

Application Stack:

break_down

Since this is a Website: Systems Architecture (Hosting)

hosting_arch

Agile: Systems Integration Architecture / Process View

arch_sys

Traceability Matrix – Map System requirements to High Level Solution module (note that this is from a different project)

sys_vs_tech

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.

Jsch – Build from Source


As I’m trying to create a way to remotely execute commands, I found a very nice API that can help me so.

JsCh API

The API is basically a wrapped of low-level platform dependent library can connect to a remote PC – via its own port, and execute commands for it.

I’ve manage to build the actual API code from source and make an Eclipse Project for it. There are also examples (source_examples package) for a head start.

Eclipse Project – Source

How about this. What if you can remotely call this API from your task (ant build task), to restart an Application Server (freeing up some resources) before automatically deploying it? All in one build task? :)

How about, transfer files remotely via FTP or SFTP? You can automate your transfer task using this API and develop a simple UI for it. :)

Free Accounting Software – Manage your financials better


Long gone are the days of creating your balance sheets, income statement and trial balance in a columnar pad, but hey it still cool to do something like that right? Its like doing the hardcore stuff of accountants. Well me, I’m not an accountant, nor have any background doing accounting work (except for the a brief educational training I had when I was in Junior year), all I have is a business, and a goal on how to make the business work, improve and profit more.

With that, I found a very interesting tool for your Accounting needs: http://www.gnucash.org/

The tool is basically a Accounting System software capable of storing account details (expense, income, assets etc).

I’ve been using the tool for almost a week now and I find it very useful and effective in managing small to medium size business.

  1. Basic of All Basic – Its basically an accounting system, you don’t need to be an accountant to learn the features and use the tools. With a basic understanding on how you want your money rotate and increase profit, your good to go using it.
  2. All Entities and Roles represented by Account – Each entity will be represented by an account, either it is income, expense, equities or assets, it will be treated as an account. These accounts can then be related to each other to make the money rotation more understandable. These concept makes it a very easy to learn tool, especially for beginners in business like me.
  3. Reporting – Income statement, balance sheet, trial balance, charts etc. These are just a few of the reporting features that the tool have.
  4. Budgets, Employees and Customer connection – Users can put theses data on the tool to provide more flexibility of their business data.
  5. Tax and Loan - You can define your own tax table and use that to your accounts taxation process. Loan transactions for each account.
  6. Scheduled Transactions - You can schedule transaction on daily, monthly or yearly basis.
  7. and many more - Loan Repayment, Reconcile, Stock Split, Budget and many more

Considering having a business of your own? Work efficiently and effectively with this tool. I would certainly recommend checking it out first.

and heres an idea: How about you let your managing employees, put all their data on a cloud storage (drobox account – its free) and you consolidate their data using this tool? – This would allow you to take charge of fees that you don’t want your branch to see (salary and expenses) and put reporting process so that you can completely take charge of your income.

 

Timeline of Ideas?


Here’s an idea: Create an interactive site with time lines (much like http://www.plurk.com).  You can actually create something like, maybe a Interactive idea sharing? Imagine putting a plurk like interaction site on your business. Will it actually boost results?

Anyways, I tried tinkering with a Javascript Timeline API and here’s an example:

You can actually tweak it and use JSON for the data.

I was actually looking for an interactive way of sharing ideas and thought of using a timeline approach (much like plurk) where-in a user can enter his/her ideas and everybody can chat on it. :)

Will this actually work? Can I actually sell something like this? :)

A Cool Feature – Live and Remote


After tinkering much on one of my client’s website I found myself trying to start the implementation of Liferay in my mother’s office.

I’m not bias to using the Liferay portal, but I cannot ignore the capabilities it offers. While checking out some stuff on its setting, I saw a very useful tool that I know, will perfectly fit into the structure I’d like to have if ever I’ll be implementing a site of liferay’s kind. :)

As indicated, it allows a specific Liferay instance to be persistent from a staging server to a remote one.  Its more of a feature that can help you transfer business data from one liferay instance to another. :)

Plus, it has staging approval process from community administrator (content approvers).

This feature will surely help generate ideas on deployment processes if there would be clients that wants to implement Liferay for their business. :)