Don’t just fix – do impact analysis!


One of the most overlooked task for developers is doing the impact analysis. Yes, most of them might be hearing this the first time, but it’s actually a responsibility that needs to be taken seriously. Even I, when I was starting, I never intended to put it in my list to do such as I just love coding so much.

Yet, as you move closer to the heart of the project, it will soon surfaced.  I find the illustration below as an eye opener for every developers.

You might  know how to quickly fix a bug and be the hero that saves the day, but always be mindful of the possible impact. Be keen to what could happen and look at every angle possible!

Whattup Greet!


Playing around android again. I tried creating an Android App that will basically send out a message “Whattup” from a chosen contact.

Screenshot_2014-12-19-05-55-45

Pretty much basic – but the key here is that I learned how to do it.

I’m excited as much as your are, hopefully this is something that I can use in the future. 🙂

Long term for this?: I’m planning to create my own messaging service. Basic stuff, just like Yo, but instead of sending “Yo” – I’ll be sending “Whatup Chief!”

Ridiculous… yet..

The Automation


It was rainy Monday evening, sitting down the chair doing the usual surfing the net. All of a sudden, a colleague of mine pinged me via MOC, asking me to check the issue they are having. I quickly check what is going on via the log file. It was;t pretty since I need a stable connection just to tail the entire log file – I can’t even open much less grep through the exceptions. Yet as luck would strike, the ctrl + g then ? then keyword “Exception” return an line.

Exception: Column <> is missing

I quickly realise that this was an error due to the inconsistency of data and configuration of our UAT environment across the board. It’s something inevitable and cannot be seen if you don’t look over the scheme of things. I knew how to fix it, I advised that what needs to be done – and problem is solved.

Now I didn’t stop thinking about it, I know that it was solved, but it seems that this kind of issue will keep on creeping us as long as we don’t put a rotational sync of UAT environments – which is not an option since we don’t want to refresh the database every week as it may entail replication issues or UAT data loss. It’s basically a hard sell if it needs to.

Now if you look at it from a different perspective, there will be questions. Questions of, “if this is not possible, why can’t this be done?” Can’t we just work around it? What if the developer has the right tools before this issue happens? What if we can prevent it?”. As I think through all this, 1 solution came to mind.

#automation

I clearly see what lacked and know what happened, there is something that can be done and that is to automate the data control management entry on all environments – automate to promote it, not to execute it.

What if: I create a script that by the end of a release, this tool can be used by the developer to promote the DCMs to different test environments? The dev would need to align to different owners of those test environments that the promoted entries is mandatory as it will create the production objects that was recently released?

A python script, gets all DCM > run the DCM links > promote DCM > use a different user (dev?) > generate emails that will be send out to the leads?

That way, we prevent the sync, we aligned to the leads what needs to be done and we prepared whats needed.

Thoughts?

Menu App Ads Idea


What if you have a large screen, full of HD animations and pictures of your food menus where users can just use their own gesture to go back and fort on your menu? What if instead of having that large tarpaulin to display your menu, you have an interactive display to showcase them?

interactive_menu_using_leap_motion_-_Google_SearchI present, RemuAds – Restaurant Menu Ads. Still in the works but I’d like to share where Im at with it so far.

Features:

  • The application will have a customisable user interface where the administrator can configure their menu and put an HD quality or a 360 image (360 magic app) to showcase their menu.
  • 360 images and animation can be controlled by the user by using their hand gestures.
  • A QR code and a downloadable menu – with the same quality menu so that users can download the menu and put it on their mobile phones. They will be able to rate them accordingly tying up a more sophisticated rating system of food products.
  • Controls will be defaulted to 6 gestures of leap motions, this will allow the user use not just a single finger gesture, but can be any swipes available.
  • Optional – Device will be solar powered

Divulging to much information might not be a good idea, but you get the point.

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.