Sunday, 16 January 2022

Diving deeper with personal analytics

In my first post of 2022, I shared some analytics of my life tracking data for the last 6 years. I couldn't help myself going down the rabbit hole with additional questions that could be used to trigger additional self reflection, which would then spark me to make deliberate changes in my life. It was quite fun going down the rabbit hole playing with AWS Quicksight and manipulating data fields to get to the answers I sought. 

When I have more time to play around, I think an AI/ML personal assistant should use my data to help me with insights. I believe there will be a market in personal analytics or metrics, or personal telemetry that I've coined the termed personametry back in 2015. At that time I wanted to build a product based on my RAGE model called personametry. Alas, that project is still on the backburner, and I've made a ton of excuses (to be honest) not getting it off the ground. Yes, my work got in the way, reality of family and financial obligations, then complacency and comforts-of-life (aka laziness). If I was serious about it, I would've made a plan. I resigned to keep tracking my data, keeping abreast of the progress of personal assistants, productivity apps and personal tracking devices, looking for the timing when things begin to fall into place!!

If you have additional questions you think might inspire changes & personal improvements, let me know in the comments section!

How do I breakdown my 24-hour days?

This is an interesting question. I decided to splice my 24-hours into "periods" and so I ended up with 8 (eight) partitions of the day. Since I track the start and end of my activities (tasks) captured in Harvest, I should be able to see how I utilize my time in a typical day. There is a missing element of productivity/impact as a result of that activity, which is a topic for another day.

Here is the code for splitting up a day, using a datetime field, in Quicksight:

I don't start my day at midnight and count 24 hours. Rather I account for the 24 hours from the point of going to bed or starting my day at 4am. I used to consistently begin my days at 4am for 2016-2020, but since relocating to Cape Town, it's been a struggle. I'm going to have to renew this habit in 2022. The partitioning of 24 hours days is not impacted though.

In addition to splicing the parts of day, I could look at how my routines differ between weekdays and weekends. For weekdays, I haven't yet filtered out real workdays, that is, not a public holiday or a leave day. 

With this new partitioning I can then answer these questions like:

Monday, 3 January 2022

2021 Life/Work streams review with 6 years data points

It's that time of the year when I review my personal time keeping metrics showing how I've spent my time over the previous year. I've been doing this exercise diligently since 2015, when I created a framework for myself called "RAGE" Reality, Aspirations, Goals, Expectations. Using ideas from software engineering and product management, I decided to map out my personal (life) and professional (work) streams across the many dimensions I was involved in (Muslim | Individual | Professional | Husband | Father | Friend | etc.). I focused on Time as the key metric to track, since time is one of the most important resource that should never be squandered. 

The idea is simple: if something is important to me, then I should be spending time in that area - but if I end up spending little or zero time on that thing, then that thing must have not been as important to me as I thought it was. 

Tracking time allows me to answer questions like: 

  • Am I spending time in the areas that are important to me? 
  • Which areas am I over indexing on that negatively impacts my other steams, robbing me of value?
  • Am I giving each stream the necessary amount of attention?
  • What decisions do I need to make when the data and anecdotes (feelings / instincts) don't match up?
Click here to check out my writings from previous years and here for an introduction to my RAGE framework for personal development tracking.
To read my 2020 review and reference my personal value system, click here.

2021 Re-starting Life & Work (again)

Driven by my personal planning through my RAGE model, 2021 was the year I hit reset. I uprooted my family and relocated from Johannesburg to Cape Town in December 2020. Earlier in 2020, I'd resigned from my C-level position of a very stable and secure job - at first - to take a year long sabbatical to work out my next move. This sabbatical was short-lived due to the uncertainty of Covid-19, I felt it too risky not to secure another job in 2021. I knew one thing for sure: I was no longer interested in building video entertainment technology applications "make people watch TV" and wanted to branch out into something else either in Cloud or e-Commerce. Thankfully I landed the first job I decided to interview for in cloud computing with AWS, Cape Town. A big departure for me because I was going back to core engineering building software, something which I've not done to that level of technical detail since 2010! I was also going to start as a senior manager and not a GM/CTO. So essentially I'd walked away from a high influence, high referent and hierarchical power, entrenched credibility and track record - to starting professionally all over again, from a "big fish, small pond" to being a "tiny fish, large ocean" fella, with zero credibility. I value learning new knowledge, building new relationships and gaining new experiences as more important than positional titles. My wife and kids also left their lives behind which we'd nurtured for a decade since relocating to Johannesburg (from UK), relocating and disrupting their lives to Cape Town with me - they too, hitting reset leaving much loved friendships, community and family-support behind. 

So 2021 would bring a massive disruption to my personal, professional and family streams. Time will tell if this grand reset is working or not. So my personal time tracking data is now more important than before.

This post shares my time tracking data for 2021 compared to the previous 6-years for comparison. Resetting one's life personally and professionally is not an easy thing to do. I've learnt much about this experience that I hope to share in future posts. In terms of the key KPIs of time tracking, 2021 went as well as can be expected considering the unusual context & challenges of Covid-19. In this post I share only the data and limited insights. There's some soul-searching I've yet to do on making drastic changes to my personas, which at the time of this writing doesn't seem to be major...

With year one done, so far, so good...no major regrets although the data has shown I need to recalibrate some streams if I want to get back to previous levels of balance.

Saturday, 11 December 2021

On "World-Class People", what a load of bollocks!

(11-Dec-21 clearing out old drafts cache 2012-2016, articles I didn't get round to finishing) 


Lately I've been thinking about our tendency to compare ourselves, our work, skills & knowledge using the term "world-class" as the benchmark, the bar (at least for us in Africa, this comparison is pretty much comes up frequently in boardroom conversations).

I myself have used this term on a few occasions, heck, the goal for my current job was to transform the engineering team & products we build, from being "ordinary" to "world-class", to build a "world-class" engineering team. Three years later, I now see what a whole load of bullshit that really was!! And instead of being used as a powerful motivator for change, it "world-class" carries far more negative connotations that positive...incidentally, I had stopped using the term less than a year into the role, I don't use it with my team anymore, although I have to deal with non-technical executives as well as key stakeholders across the business, who regularly challenge: Do you have world-class engineers? Are they A players or B players? We need champions league players...and so on.

For people coming from the western world into Africa, you will indeed be in for a surprise. Even myself, a returning African after working for decade in Europe, was initially flabbagastered ...

Why & How I did enter consulting?

(11-Dec-21 clearing out old drafts cache 2012-2016, articles I didn't get round to finishing) 
Another one penned but not published. 
I did experiment with my own consultancy for 4.5 years, created Africa Systems and Software Services and subcontracted with TPI Africa Computer Services.... So I did take the leap and go out on my own 🤷🏽‍♂️

I provide specialist Software and Systems Engineering Management Consulting in the following areas:
The sector I offer immediate and expert use is in the Digital TV sector, covering Set-Top-Box software & hardware, Headend systems - for TV services such as EPG (Electronic Program Guide), VOD (Video-on-Demand) and other OTT (Over-the-Top Internet) services. I have a detailed track record of successful engagements in this sector.

These skills, experiences and best practices are easily transferrable to other sectors that touch on Software/Systems Engineering, including Telco, Healthcare & Banking systems.

I operate at Mid-Senior management level to craft strategy, process & operational improvements across departments, including providing high level strategic plans, implementation & delivery plans for delivery projects if required. I am also able to slot into interim management positions, as well as program management rescue...


Click here for my Detailed CV / Resume

Click here to read what people have to say about my work!

Digging a little deeper

Companies in Africa are really struggling with sourcing the right Software Engineering talent, with proven experience, the right mindset, etc!
I have been involved in the Software Industry for close to fifteen (15) years now - with real world software experience. I have worked on & delivered on both real products as well as cutting edge, advance blue-sky research projects. Of the real world projects that I've personally written code for or managed, the real home user base of customers span over 40 million people. Of the research projects I've worked on, almost all of them were a few years ahead of its time and are only just coming to fruition (e.g. Speech Synthesis, TV Recommendations, In-Home Networking, etc). I have written great code and managed great projects. I have worked with the best and brightest of people from all over the world, who are leaders and pioneers of really interesting technology, specifically in the domain of Software Systems in Digital TV products. The expertise thus gained in Software Engineering, Product & Program Management can be applied to almost any kind of software development enterprise.

From humble beginnings coming from South Africa where the Software industry was fairly young and product development was in its infancy, and the education not really that world-class at the time (1990s), I went on to studying further at a world-class university in Ireland, and spent just under a decade working for one of the best software companies in the world (NDS/Cisco Systems), starting as an engineer and working my way upwards into management, on a product that is by far, best-in-breed and an absolute fore-runner in its class.

I have grown into Software & Systems Engineering Management from the ground up, I have first hand experience of what it takes to be an engineer, architect, integrator to a manager of development projects; dealing with customers; showcasing R&D projects and running innovation projects. I now work directly with top-level management to help save and rescue failing programs; deliver both project & organisational transformation through a careful process of people and change management interventions. I steer & facilitate high-level discussions with EXCO & MANCO on future strategy, technology partnerships and collaborations, as well as high level strategic planning, including shaping department & project structures, setting up Development/Integration teams as well as providing the starting point for planning large-scale systems projects.

I provide the map & starting points for the program & organisation, which people follow, lead teams by example, often coaching & mentoring engineers and mid-level managers alike, until the team is ready to let go and run on its own. I value self-organisation, autonomous teams, a firm supporter of Open Source culture and fully embrace an Agile Mindset to Project Delivery as long as it's done the right way. I stay clear of reinventing the wheel, working hard to push & challenge every status quo possible when I know first-hand there are better ways of working. I offer a good balance of academic credentials backed by real world experiences. My passion for doing things the right way & passion for Software Engineering Best Practices sometimes is misunderstood for being a "Politician". I believe that Certifcations does not make a good Leader or Program Manager, it is through working with people that ultimately brings out successes; wisdom is the result of hard-won life/work experiences, not being on 5-day certification course...

My track record is undeniable and fully traceable.  Check out my LinkedIn profile if you would like to dig deeper. Read all the recommendations professional colleagues have left for me. Technical skills, specifically around Digital TV, is very hard to come by in Africa. Software professionals in general are also very hard to find in Africa. Scarcity creates value. I have worked with multi-million dollar projects, accumulating a wealth of experience and knowledge of industry best practices to help any company leap frog into the 21st century to deliver first-class, quality products! The projects I've worked with have a user base of more than 40 million people, worldwide....I've worked with both small and large teams alike, ranging from 12-350 people, across borders, geographically dispersed teams. I can handle the cultural challenges of globalization with relative calm and ease...

I am in a position to offer consulting in almost any area relating to Software Product Development, Management, Programme Management & Delivery. My skills and competencies cover a diverse range of areas, you can think of me as a Generalist with Specialist skills in certain areas, a Jack-of-all-Trades, but Master of Some - A Versatilist!

I recently decided I had enough of the corporate pigeon-holing; I felt stifled in the current organization structure, that the company was not utilizing me to the best of my abilities; and thus branched out on my own as Consultant. My main pitch around consultancy is really covered by this slide:

My Value Proposition
I'm exposing myself to the rest of the world through this blog, but specifically for South African companies & headhunters located in Johannesburg.
  • If you're in the area of Digital TV, Set-top-Boxes or Back-end systems, I can help you solve many, if not most of your challenges. I can run your Product Development Team, or consult on improving your Development/Integration & Business Processes.
    • This has been my primary area of focus - but the knowledge is easily transferable to almost any software-related products
    • I have worked with the best companies in the world, managed world-class products and can truly say the South Africa is lagging far behind industry big players...
  • If you're interested in Agile Software Development - I can help. No, I don't have formal Agile/Scrum certifications. I am well read, and have real world practical experience. I won't give you textbook stuff that consultants (who went on a course and never really ran a really big project) sell you.
  • If you're looking for a way of running projects more Agile, and tired of PRINCE2 or PMBOK methodologies - I can help here too. Again, I'm not one for formal certifications - I've worked with the best VPs who ran highly successful projects, and have no qualifications to show for it, apart from sound intuition & wisdom gained from experience.
  • ....there's more - get in touch, tell me what problems & challenges you're facing...Feel free to engage with me through LinkedIn.


Other Stuff:
Highlights:
As a Technical Development Project/Programme Manager, from delivering small (~12 people) projects for mature HeadEnd subsystems; to managing large scale STB Middleware/EPG/Headend projects (300+people, £10million+ cost, £millions ROI) working with world-class companies, world-wide.


As a software/integration/architect engineer, 6+ years of real-world (not just R&D blue-sky, but real products deployed in 30+ million homes): from embedded STB drivers, STB Middleware, complex EPGs, accessible Talking EPGs speech synthesis; to large-scale, highly available Server systems in C++. With System Integration & on-site customer-support experience. Personally written over 100k+ lines of code (LOC), intimate with codebases spanning 700k+ LOC. Comfortable in context switching between coding & management, adapting easily to change (new technologies & process).


Specialties: 
Software & Systems Management. Digital TV: Headends & STB software -EPG Applications & STB Middleware. Reliable Server Systems (Headend) IPTV. Software Project/Product/Development/Architecture Management. Accessibility & Speech Synthesis.

Disclaimer: 
Please do not assume from this writing that I am an arrogant or an egotistical person, actually it's quite the opposite! I am however quite confident in my skills and abilities, and have a fully traceable track record to prove it.  I have complete trust and belief in myself to conquer any task given to me - I am of sound mind and reason in writing this...

We are now living in a new age, an age where Linchpins are needed, Generalists are valued, and society in need of people who put themselves out-there.  I am putting myself out-there. I am taking a chance. And this is the platform I'm starting with. 

If you're looking for someone who has not only grit & perseverance, but also exceptional ability to deliver whilst at the same time deal with complex people-dynamics, then look no further...

Telling my story...why I think I'm a Digital TV Expert...

(11-Dec-21 clearing out old drafts cache 2012-2016, articles I didn't get round to finishing) 

this one I penned I 2013 but didn't publish...
So much has changed in 7 years!!

At a recent training session with a life coach, I shared my current challenge of me/my ideas not being taken too seriously and an apparent misconception in the organisation that I'm largely theoretical & academic in nature - that there's this innate resistance from people to consider new approaches. I had spent a decade overseas, gained some solid experience and knowledge (working with the best companies in the Digital TV Software field), and have come back to my home country, South Africa - where I'm interacting with most of the same people that I'd left behind over 10 years ago, having grown and matured and reached accolades that most people (in SA) will have only dreamt about...I left as an Engineer-in-Training, returned as a Senior Manager, dealing with people who were originally (10 years ago) either my team leaders or managers...Although no one says it out aloud, I'm pretty certain that people think "This guy thinks he's a big shot, coming from overseas and trying to change our ways. There's nothing wrong with our way of working, it's worked for us all this time...This best practices spiel is all theory, he's not a person of action, he's a politician - more talk, very little action!". Alas, I am anything but academic, and this post will try to clarify this misconception!

As lame as this might sound, it is well-known fact that working with human beings is really difficult! The coach hit the nail on the head that a possible reason I was facing resistance is most likely due to a mistake by senior leadership of not communicating to the rest of the organisation what my role entailed, especially in the area of introducing changes or best practices. I was probably not introduced to the company as someone who has a lot of value to offer, my positioning and expectations were not clear from the senior leadership, hence people are not sure what to make of me. Indeed this is true since I was initially interviewed for Scrum Master role, but was instead offered a Project Manager role due to my experience; and then later on in a short time, having influenced many areas, especially after resetting the project back on track, the company realised I'm more than just a Project Manager - and so moved to a Senior Program Manager Role, positioned as a Strategic Planner. But there still wasn't a clear mandate from the upper echelons of leadership to say to listen to me...nor was there outright acceptance that most of the existing processes to date were somewhat flawed; and miles away from following best practices.

My experience covers a variety of areas: Software Development, Architecture, Technical Management, Technical Leadership, Systems Integration, Engineering Management, Software Product Management, Software Project Management, Delivery & Integration Management, Agile, Scrum, Software Engineering...

I am equally passionate in all these areas, so wearing the hat of "Strategic Planner" that creates direction for Programs and sets a high level project plan into motion, is somewhat limiting the value I bring to the organisation. I can contribute to many areas in the company, but run the risk of sticking my nose in where it doesn't belong, the corporate structures preventing cross-collaboration; and the tendency of people building empires makes it really difficult to influence change; unless direction comes from the top. Being the person I am, I can't sit still and see things being run inefficiently and somewhat mismanaged - surrendering doesn't sit well with me!

So this coach strongly recommended I must tell my story every chance I get (if I'm meeting new people, etc)...that I need to tell my story so people can understand where I'm coming from, what my insights are, and get people to acknowledge the value I can bring to the team or organisation...

...so this is my attempt at telling my story...How did I get here? What makes me think I have expert knowledge worth sharing with the professional world? Why do I feel I have a sound grasp of best practices? Why am I passionate about Software Engineering? Why do I think I'm Software Management Consultant material??

  • Embedded Engineer: Set-Top-Box Developer
  • Systems Software Engineer: Fault-tolerant Server-Side Computing
  • Entrepreneurial: Ideas to Products
  • Software Architecture: Architectural Insights
  • Software Testing Experiences
  • Software Manager: Project, Programme & Delivery Manager
  • Software Consulting: Development Processes, System Integration & General Management

What I expect from a STB Architect Role...

(11-Dec-21 clearing out old drafts cache 2012-2016, articles I didn't get round to finishing) 

One of my most well read and often-sited posts, and the post that steered much of the changes I got introduced into my project was my Overview of Architecture Roles in Digital TV Projects. I have yet to change my view on the demand and need of real architects on software projects, and since my focus is on software development in Digital TV Systems, I remain unconvinced that the role is either not required, or the expectation from the role remains purely a high-level technical co-ordination or problem-solving role. I also remain totally unconvinced that Agile/Scrum calls for less focus on up-front architecture activities either.

I have worked with Digital TV Software Projects throughout my professional career, some might call this expert knowledge (although I am thinking of branching out into Cloud-Services as an attempt to remain up-to-date & current) - I have seen traditional Waterfall projects, classic Agile/Scrum small-scale projects and also managed Large-Scale Distributed Projects implementing a mix of Structured & Agile. I have been on training courses on Agile/Scrum, read most of the popular books on the subject, and haven't found much evidence that speaks against following at least some rigour when it comes to Software/Systems Architecture. 

This post is about sharing some of the activities that I've come to expect from a STB Architect Role, by building on the high level requirements that I introduced in the original post on Architect Roles:

[RECAP typical STB Architecture Stack]

[HAL / CDI Layer - broad profile / review / etc]
[Basic STB Architecture building blocks:
- device memory map
- device hard disk partitioning
- device hard disk management
- component interfaces
- component communications
- interface patterns / protocols
- software classes / framework - base classes
- use cases: Product Use Case - System Use Case - Feature Use Case - Functional Component Use Case, etc
- tracking memory management
- tracking stability
- assisting in defect triage / classification
- security aspects - kernel hardening, etc
- open source knowledge
- co-ordinating technical discussions, not doing the technical debugging - but advising/co-ordinating
- managing vendor expectations
- future looking roadmap features
- works on multiple projects & activities at once
- excellent time management & documentation skills
- high level design - UML
- interface control definitions