Monday 29 June 2015

Reskilling for Technology - A true labour of love!

If machines can learn, then maybe we should never stop!!...



Can we harness our passion for a new start in our working lives?  I think so! Einstein theorised that we become more dogmatic and settled from our 30’s onwards, so how does this transform us into relics of the past?? In software, younger minds are preferred as they learn quicker, are more dynamic and less dogmatic! I submit that it’s actually a matter of attitude, if we commit to the pursuit of knowledge and engage in continuous learning at any age, then we will succeed like we are 18 years old again!

The good news is that its never too late to switch careers, the bad news is that it takes passion, commitment, aptitude and belief in the ability to do so! If you are passionate about Technology, then my advice is to go for it, do so with a committed heart and welcome everything the industry brings!

So, if you want to learn software to any level, then my starting advice is the following:

Map out your goals – Know why you are making the effort, as the commitment required will challenge your belief in your ability to succeed! If you know what you want from it, it will keep you focused when times get tough especially in the early part of the learning curve!

Plan your learning experience – Research what you want to be, map out what you need to learn and plan the strategy to complete your learning curve in the timetable of your life. A cautionary note, don’t overstretch, try to keep your goals at entry level.  Learning a single OOP language for the first time is a high intensity endeavour and stressful! Work through it in depth and at a slower pace then you would with subsequent languages. It will determine how good you are on following languages you learn. Why not learn computer science 101 first, then a single OOP language where you can branch out like I’m doing currently. I learned C# at college, now I’m learning Java, Python and SQL to take me to the next level.


Computer Science First – You are free do go onto Code Academy and start on Java, etc but getting to know the fundamentals of computer science first is a great idea! It makes learning the languages that are based on it much easier. Knowing about Object Orientated Programming, Scripts, Striping, RAID, Storage, Stack & Heap plus others gives you a solid grounding before your learning experience in coding. Also, learning how to use the version control tool Github is a great idea! Code Academy has a recommended course on Github, which I was made aware of by an acquaintance. It’s not easy to pick up Github on the fly so learning it in a structured manner makes good sense.

Try to Code Daily – Coding skills are a practiced skill; do drill daily in them. Code for as long as you want in 35-minute increments. A 2-minute break will give the mind a rest and allow you to operate at a higher intellectual level when coding. Also, the mind needs time to orientate itself to a ‘coders mind set’ so ensure frequent coding takes place. It’s a difficult ask from experience but worth it in building coding skills iteratively, which is the most effective approach.

Learn to research problems and learn to love it! – There is nothing more frustrating then hitting a brick wall. When you see a brick wall as a juicy challenge, then you have a good approach. Google is your friend and the best hits for coding problems often leads you to stackoverflow.com. Open an account there for free, I guarantee it will often come in handy!

Map your progress – Learning plans are great for ensuring you are progressing as you designed. If you can map your progress, you can make plans to start developing your own portfolio when your skills reach a marketable level.

College Courses Rock – If you are lucky enough like myself to land yourself a college course, then groovy is an understatement! Use all material given and shoot for best possible outcomes through reiterating over it. I was also lucky enough at Dublin Business School (DBS) to be on a specialist software course, where the lecturer was very experienced in the practice and the theory of software. The insights and practical advice will stand by me for the rest of my days in the industry! When you love the material and have a passion for it, you retain knowledge much quicker so apply yourself accordingly.

Twin Track Approach is King! – When looking for a job with no professional coding experience, having industry certifications from the likes of Microsoft (MTA) and Oracle (OCA) is a must! Plan your academics and/or industry certifications so you have coverage of software development (computer science/coding/development) and databases in particular.

When in training, start networking! – I have learnt over the years that those who don’t actively network do not get on in life! People are more comfortable really knowing you, which will give you an edge at an interview. Network on meetup.com, go-to the meets and learn about the coding languages and new technologies out there. Make contacts and professional friends in those you meet with and stay in touch over social media. Also, circulate blogs and videos out over social media keeping your network informed of what you are doing and show off your latest coding project that is non propriety over Github. A portfolio site like mine at http://jmulhall.azurewebsites.net is also a great idea as it allows you to showcase your projects and details in one place. It also makes those future employers more comfortable in their effort to get to know you! 


In order to be sustainable in software, we need to take some life lessons to heart on never stop learning, never stop loving what you do and never give up! We decide our own futures and despite the young feel to the Software Industry, it welcomes all those who belong there regardless of age, so grasp your future today! Maybe we will share a story or two at the next industry Software meet, it would be my great pleasure to watch you succeed from a decision you make in your life today!


Sources/Credits:

Pics;




Credits;


Nicolai Berntsen contributed the feature photo of Union Station via www.unsplash.com


Monday 22 June 2015

Winning the “War on Talent"

Is “Talent Acquisition” a dirty word?




We all know of the aggressive policies and practices of many businesses nowadays who poach candidates, employees and often leaders with an enthusiasm that alarms for its implications as much as for its practice!

Lets take a current buzzword “Talent Acquisition” as this one sends a clear signal into the marketplace in my view. “Acquiring” talent can place it in the same category as office stationary, which is nothing more then a cost consideration in the execution of the sale transaction at a profit. It seems silly right? I would wager that many businesses strategically position people in this category (e.g. market culture companies), when deciding on what to recruit, how to recruit and how recruitment pre and post hire should handle the candidate to employee journey.

I therefore submit that when augmenting one’s recruiting strategy and tactics, one must consider the following to effectively embrace employees as higher functioning assets adding more value then any ‘cost centre’:



Tactical  | Do to others as has being done to you. We all know the smooth talking recruiter who snatched your star employee and is now looking at your other star performers. If you don’t like the practice of poaching, then don’t do it! High functioning employees with a giver rather then taker mentality will not respond well to being poached or to companies that consider it acceptable behaviour! Remember, just because employees don’t respond, that doesn’t mean they don’t have a problem with it. Timing maybe the only exit trigger remaining for them from your organisation to a company they feel more comfortable at, which by definition is a company that shares more of their values in that regard.

Strategic | Back up your brand with words. If you decide that you are company who is committed to people, a people company of high worth, then great!! Ensure your hiring practices reflect this by never feigning or faking aspects of your company to paint a false picture for the candidate and/or newly minted employee! If candidates and/or employees find out they have being deceived, the likely response is to find another job, especially if their core values are offended. Be genuine to who you are as a company making sure you deliver full understanding of the company as much as you fully understand your candidate.

Strategic | It’s not a war, really, it’s not! The industrialist mentality of “command ‘n control” often escalates into “control ‘n conquer” so being mindful of how aggressively competitive you get. The branding statement of your company and how you want your new hires to interact with it should control the level of aggressiveness in your tactical approach. Remember, the right people will respond to the right message so distribution needs to deliver a strategic message and not become augmented by how it is delivered. Be wary of sub cultures in recruitment using a taker mentality when the company needs high functioning ‘giver’ employees.

Strategic | The Digital Age. One of the key hallmarks of the digital era is social media ensuring that your “digital brand” as a company recruiting is in sync with the company’s digital branding policies, its overall brand statement and the cultural idioms of your company. Millennials have shown a propensity to trust companies who share the full story of who they are, not water down the story to best parts only, or feign aspects of their story to appear more attractive.


Its an age old story of trust and betrayal, which in current terms sees the company who is not afraid of exposure gaining a competitive edge in marketing their products AND their company with a full story for the digital platform, which will attract talent! Talent search more these days for where they belong; rather then who pays the most. If you rely on your employees to be profitable in business, find the right way to connect with them, engage with them and build relationships that are grounded in common values, interests and trust. Build with consistency of action and deliver on promises, which define the employer-employee relationship. If this is done right, then talent will come to you, you wont have to “acquire” it.

Tactical | Develop Your Digital Brand. Online user groups (Facebook/LinkedIn) are a good idea along with meetup.com groups where you can share your company’s story. Topic areas like company culture, company practices, company strategies (i.e. where to for the future) along with relevant educational topics will attract top talent that will add value to your company, once you deliver your meetup.com talks and online events in a genuine and full hearted manner; offering a full story and building relationships with participants as you go! Get to know them and they won’t forget you!

One a final note, if Steve Jobs, Arianna Huffington, Bill Gates and Walt Disney could get rejected from jobs, then its reasonable that top talent has applied to your company and didn’t get the time of day due to being outside of the screening markers implemented to identify suitable candidates. Be mindful of your brand, your culture, your business practices and your role description ensuring that you use markers good enough to capture information that tells you what the candidate is like as a person as much as a professional.


You never know where you next ‘rock star’ will come from! He or she may have the same CV as the career administrator who won’t miss a day of work in the next thirty years for you!! People before Process allows you to use Technology to define a sustainable future that brings your work family with you on the journey!! If done right, success will always overshadow failures when joining the dots in retrospect! A comforting thought indeed! 


Sources/Credits:

Pics





Credits:

Monday 15 June 2015

Risk Management, do we really need the “extra work”??

Overrated or Under-appreciated??... Tomorrow’s generation may just let you know!



It’s no secret that most of us are overworked and often under appreciated these days as the hard charge to be best in class from revenue generation to new product generation proceeds with no end in sight, only cycles of escalation that deploy as flag posts of progress along the lifecycle of our company.

Where a critical need for process remediation exists, senior managers are often ready to set aside their suspicions about the new fangled science of process management to engage in reactive risk management (crises management) calling upon one’s process expertise to restructure (Define, Measure, Analyse, Improve, Control) and deploy re-engineered processes that solve the problem(s) to an acceptable level. For many managers, this is as far as it goes, the job is done and time is wasting so lets move on!



What many are not willing to really entertain is the concept of proactive risk management where issues are spotted or predicted with a level of accuracy into the future. The main reasons in my experience are as follows:

Priorities – Company priorities require the resources needed to develop the concepts, test and deploy same are required elsewhere or not available at all. No time is available for such experimentation.

Inter Group Politics – Setting up a successful risk management initiative modernising and/or introducing new services into the organisation maybe outside of scope for the department as mandated by the company. It also may be perceptually confrontational to other legitimate and/or social leaders in the company who’s perceived self interests are perceptually threatened by such an initiative. The latter point is very important in companies that have a “Taker Culture” under the *Giver-Taker Culture. 

Cost – No budget, no further thought required on the topic.

Budget – Proactive risk management may be conceptually acceptable but budgetary support is not forthcoming with the mantra of “if you do it for free and your other work doesn’t suffer, then I don’t mind!”

Process/Cultural Impact - The concept is too radical as it impacts business practice and defies cultural norms.



As you can see, the reasons ‘why not’ are valid and creditable, but isn’t it all about perspective? Isn’t the cost of proactive risk management very small compared to the opportunity cost in business loss, remediation costs and detritus staffing performance when all things are considered? The answer is yes as long as you consider your company’s situation, its needs, its industry and its vision for the future. Like many things, proactive risk management is a tailored tool, not a vanilla tool dropped equally into all organisations.

To a use case… maybe you are a small company that builds engines and industrial metal work rivets for the auto trade. You have no risk management structures but your operations manager knows the industry “inside out”. Chances are that regression analysis on two product SKUs plotting their sales /returns and production/production scrap variables to see what “direct wastage” from production to sales occurs and will occur may not be necessary right now. Is it useful? Sure, but ONLY if your company is set up to handle the information from accurate collection to accurate receiving, analysing and effective dissemination of information results within the company. 

For a proactive risk management structure, your company’s time, resources, and efforts would be better spent on entry level operational risk structures like setting up user groups to define and populate a risk register to measure operational risk of static elements (employees/management/buildings/regulatory/legal/facilities/fx-treasury/etc) to non static elements (projects/project risk elements/customers/vendors/raw material sourcing/marketing/pr/etc). In the risk register, you would then define your static and non-static classifications by line/element into headings like:
  1. Element Reference/Title
  2. Element Description
  3. Risk Classification
  4. Risk Type (Positive/Negative)
  5. Risk Grouping (Internal Groups Affected – remember 1st normal form applies here on multiple internal groups)
  6. Risk Weighting (1% low to 100% high - see calculator comments below)
  7. Risk Impact (1% low to 100% high - see calculator comments below)
  8. Risk Rank (Low, Medium, High)
  9. Risk Response (Solutioning - share risk, accept risk as its not likely to happen or accept risk based on it may happen but no real damage will being done, reject risk as its crazy likely to happen and heavily impacting, along with mitigate risk where you take action to reduce the impact and/or the likelihood of it happening).


You can make your calculation of risk from 1% to 100% as simple or as complicated as you like. I would say keep it simple as a start and to get you started on this route, think of 5 equal attributes in your calculation that you can rank your risk element on. For example:

e.g. Risk Weighting Element == Timely Payment Process

Element likely to result in material gain or loss for the company  = 28%
Element likely to happen resulting in loss or gain in the company’s internal productivity = 15%
Element likely to happen resulting in loss or gain in the company’s external reputation = 26%
Element likely to happen resulting in breaches in legal and/or regulatory rules for the company = 44%
Element likely to happen resulting in a direct gain or loss in confidence of customers and/or investors = 23%

Simple average of 5 scores  = 25.2% risk weighting for timely payments process




This simple risk tool allows you to basically define, identify, analyse and remediate risk in a structured manner. If done in tandem with things like internal process flow analysis (mapping out all processes and understanding the interactions form a risk perspective), where you can understand your risk register elements in deeper detail, which will give the team a greater insight into what to look out for into the future.

It’s hard to say what is right for every company but to quote Albert Einstein “The day we stop learning is the day we start dying.” I therefore submit, our qualitative understanding of our company’s future lies in our study of our present day circumstance. The quantitative link of today is a hook to a qualitative picture of tomorrow that can reasonably prepare us to realise the best possible out come through our unending quest for knowledge and understanding for a better tomorrow.


Sources/Credits:

Pics;




Credits;

*Giver Taker Culture https://hbr.org/2013/04/in-the-company-of-givers-and-takers [accessed 13th June, 2015] explored by Prof Adam Grant of Wharton . 

*Joshua Earle for his pic posted on unsplash.com.

Monday 8 June 2015

NoSQL Matters??… Yes it does!!....

Reflecting on the 2015 Conference in Dublin….



Last week, after winning a free ticket in a competition from the *Hadoop User Group on meetup.com, I attended a NoSQL conference in Dublin and was fascinated by the progress in NoSQL technology, which was show cased on the day!

There were very strong presentations from VoltDB and ArangoDB.com showcasing their offerings in integration and multi-model NoSQL databases that set my mind alight with ideas and thoughts. Also of note was a presentation from Bit Expert’s “Stephan” on PostgresSQL and what it can do. It was an enlightening exploration of how JSON and NoSQL can play so well together!!

The concepts that were floated at the conference were all great but from what I have seen, the first prize goes to ArangoDB.com and their Multi-Model NoSQL database. The concept of having a database that is secure, can handle Key Value stores, documents stores and Blob storage on one database is most impressive indeed. The amount of coding in small to medium level project teams would be reduced along with design concepts like “micro-services” which augments functionality through the use of “Foxx” (JavaScript Framework, they use Node.js) to widen inbound data sources and thus the effectiveness of the application. To critically complete the evaluation, I would like to know more about the security aspects of the multi-model offering and also note that for large data modelling jobs, Hadoop would probably be a better solution. That said, ArangoDB.com have created a pioneering product that brings NoSQL technology to smaller projects that would traditionally have relied on relational databases. More information on my No. 1 presentation at: https://www.arangodb.com/foxx/.


 VoltDB had a strong presentation on database design and how VoltDB effectively streamlines important areas of network and database management under one roof where a solution currently could see numerous venders fulfilling different aspects of your relational and non relational database needs. I also had the pleasure of working briefly with the speaker Akmal Chaudhri in early 2000 whilst we both were at Informix Software and am glad to see the quality of his work is still exactingly high, which reflects in the very logical solution behind VoltDB’s offering. They say if you surround yourself with like-minded people, you can do great things. It certainly looks that way at VoltDB! They earned my No. 2 vote!

One other notable presentation is from Nathan Ford on monitoring and defect management, which is something Developers generally are not that fussed about. However, wearing my risk management hat, I think we Developers could be thinking more deeply about defect management and I love Nathan’s graph based defect management system for clusters that if developed further could be a real competitor for more developed systems like Prometheus. It’s efficient and with development continuing, a real winner for standard systems monitoring, unobtrusive defect capture and system behaviour analysis could surface in the not too distant future. Developers can gain a real insight into how their code behaves in a system (v design intent) and thus streamline their code for better efficacy and outcomes. Nathan’s talk and ideas earns him my No. 3 vote!


There was a diverse and interesting group of folks there from the NoSQL world to software nerds like myself to the Data Science world whom all agree that NoSQL does matter and despite what some folks say… it is here to stay! With the onset of new technologies that widen the scope of NoSQL, the technologies which streamline relational and non-relational databases into a single user friendly cluster application are here and will gain more and more acceptance in business when business fully realises their needs in diverse dataset management and/or big data analysis. A key indicator of this position is the adoption of NoSQL by key industry players like Microsoft and also Oracle who initially lobbied against NoSQL. The acceptance of NoSQL by key industry players like these is an important milestone in the lifecycle of NoSQL and with time, business will become more and more comfortable with it, when they see it does more then simply replicate the initial success of Google’s Big table.



For business in times to come, NoSQL could be the differentiating factor for their success against a competition that is tightly coupled with only SQL/relational database technology. Personally, I think this is not a question of “if”; it’s a question of “when”. Finding the fit for your network and database needs is not an easy task especially when the landscape is changing as hyper-connectivity increases and more and more competitive edge is driven by data science for business. Early adaptors in business given the technology’s stage in development should certainly be aware of NoSQL and plan for it’s incorporation into their digital footprint.  In my view, not evaluating NoSQL today in your business’s journey may cost you dearly tomorrow… the only way is to evaluate it and find out if there is a present or future need for NoSQL!!... The results just may surprise you! 

For more on the conference, visit NoSQL Matters website at https://2015.nosql-matters.org/dub/#home


Sources/Credits:

Pics;





Credits;


*Many thanks to Silviu and Uli from the Hadoop User Group for hosting the competition where I won the ticket to NoSQL Matters conference 2015. More on this key industry group at http://www.meetup.com/hadoop-user-group-ireland/