Useful Resources for Effective Set-up of Advanced Analytics, Data Science, Artificial Intelligence and Machine Learning Projects

Last updated 22-July-2020.

Just started consolidating curated, useful resources for this topic on this page, from my huge knowledge base. I am happy to share here list of resources I have compiled so far. Hope you will find some of these resources useful for your projects. I shall be adding more resources to this list in the coming days. Stay tuned for further updates.

Project Setup

  • Setting up Virtual Environment for development activities
  • Container Platforms: Containers are a standardized unit of software that allows developers to isolate their app from its environment, solving the “it works on my machine” headache.
    • Docker: Docker simplifies and accelerates development workflow, while giving developers the freedom to innovate with their choice of tools, application stacks, and deployment environments for each project.
  • Version Control
    • Git: Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear workflows.
  • Platform-as-a-service (PaaS) – Frees the application developer from the mundane tasks of installing and maintaining the hardware and software platforms on which the application runs. In the PaaS model, a service provider offers a fully managed platform on which applications can run.
  • Skills, Project Roles and Responsibilities
  • Managing Stake-holder expectations
  • Planning and Tracking

TBD…

Operating Models – Digital vs Traditional

Coming soon…

  • Power of Digital Operating Models – digital (AI and Analytics) at core, data-driven, agility, scale, continuous growth, innovations, network effect, ability to both generalize and specialize, …
  • Traditional Operating Models – siloed, inflexible, complex, growth only up to a point then diminishing, specialization, …

12 ways you can achieve efficient and predictable service delivery

  1. Take care of your team – address their concerns, recognise, motivate, mentor, groom, empower, encourage team working
  2. Define & agree clear KPIs, RACI matrix with clear responsibilities and accountability for all the stakeholders
  3. Practice Lean – Increase value added services, minimise non value added tasks, eliminate wastes
  4. Use optimum span of control for managers & team leaders and optimum resource pyramid
  5. Follow knowledge management best practices
  6. Use standard tools and processes
  7. Reuse -frameworks, approach, solution, components, etc.
  8. Ensure team mix with right competencies are deployed
  9. Ensure right level of governance
  10. Define and implement quality gates
  11. Automate, semi automate repetitive tasks, reports where feasible
  12. Ensure tight control over startup activities for new project/phase or service until steady state reached

Why both productivity and efficiency measures are required for Application Management (AM) & Application Development (AD) bench-marking and tracking output?

Productivity is defined as the ratio of total output produced vs total input supplied.
Efficiency is defined as the ratio of total output produced vs actual efforts spent to produce this output.

In the software application management world output can be measured as number of incidents/queries/bugs resolved, number of standard changes delivered, number of batch jobs scheduled or monitored, number of small/medium/large enhancements delivered etc. Application development work output can be measured as number of Function Points delivered, number of objects (screens, reports, batch scripts, etc.) delivered, total LOCs delivered, total LOCs migrated, etc. Input is typically person efforts (hrs, mandays, etc.).

Efficiency of an individual or a team to resolve say an incident would typically involve actual efforts spent to resolve an incident. Whereas productivity of an individual may also involve waiting time for clarification resolution and other overheads which are not directly adding any value to incident resolution.

So efficiency is required to track real efforts required to produce a unit of output and productivity is required to track what additional efforts are required for other non value added activities or inefficiencies due to waiting for work, infrastructure, no clean order, etc. Highly efficient is the one who produces best output by consuming minimum possible resources.

Organisations need to measure both productivity and efficiency to create a baseline, to monitor performance against baseline and have plan in place for continuous improvement of these important KPIs. They need to focus on getting productivity of individuals/groups in their organisation closer to the efficiency by doing right things to work towards the purpose.