consulting, mentoring and learning...

22
Consulting, Mentoring and Learning Programs Nitin Bhide ([email protected]) June 2010 Commercial in confidence.

Upload: others

Post on 06-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Consulting, Mentoring and Learning Programs

Nitin Bhide ([email protected])

June 2010

Commercial in confidence.

Page 2: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

About Nitin BhideM. Tech. Material Technology, IIT Powai

15 yrs of hands on coding and development experience

Chief Architect and Project Manager for projects for companies like

◦ Honda R&D

◦ John Deere

Designed and Implemented Integrated ALM (Application Lifecycle Management) infrastructure for Geometric Ltd.

Numerous training programs conducted on topics like Design Principles, Design Patterns, Advanced C++, Effective Code Review, Mindmaping etc

Commercial in confidence.

Page 3: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

EXPERTISE AREAS

Commercial in confidence.

Page 4: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Expertise Areas - I

• Languages : C/C++, Python,

• UI Frameworks : MFC, Qt, X/Motif

• OpenGL, Geometry algorithms

• ALM (Application Lifecycle Management) Infrastructure design and implementation

• Enterprise Application development and integration

Hands on experience in

Multiple Technologies,

Languages, Frameworks

and Domains

Commercial in confidence.

Page 5: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Expertise Areas - II

• Nearly bug free,

• easy to debug

• self documenting

• Defensive coding.

Writing high quality code

• Implementations that are:

• Efficient (memory and performance)

• Flexible

Complex Algorithms design and

implementation.

Commercial in confidence.

Page 6: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Expertise Areas - III

• modular, flexible and extensible design

• Objected Oriented Design

• Algorithm design

• Consider multiple aspects/facets of design

• Design for performance

• Design for testability

Software Design/Architecture

• Large Scale software development projects

• R & D Projects

• Projects in new domains/technologies and languages

• Maintenance projects

Full Life Cycle of Various Types

projects

Commercial in confidence.

Page 7: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Expertise Areas - IV

• in writing high quality code

• In software design

• Especially teams facing quality and delivery problems

Guiding and Mentoring teams

• Project automation to improve team productivity and quality

• Various practical tools and metrics for early warnings of potential problems

Design and implementation

ALM (Application Lifecycle

Management) Infrastructure

Commercial in confidence.

Page 8: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

CONSULTANCY AREAS

Commercial in confidence.

Page 9: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Consultancy - situations

Have you ever faced situations similar to following ?

Situation 1 :

Customer is complaining about quality of delivered software.Project team is working over time (even on weekends).However, bugs not getting fixed. In fact, more bugs are gettingadded while fixing already reported bugs. Its becoming anendless cycle. Customer is unhappy and thinking aboutwithholding payments, team is depressed and dejected,management is desperate to salvage the situation.

Somehow you need to improve the quality and stability of code in a short time and regain

customer confidence.Commercial in confidence.

Page 10: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Consultancy - situations

Situation 2 :

The code is working as expected. Customer is satisfied about theresults but not satisfied with the speed/performance. He wants anear real time performance. It means an order of magnitudeimprovement in performance. Your team is tried variousoptions and got 20% performance improvement. However thatis not enough. Customer is not going to give you acceptancewith current level of speed/performance. Now you are stuck.

Somehow you need to dramatically improve the speed/performance in a very short time

Commercial in confidence.

Page 11: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Consultancy - situations

Situation 3 :

Time required to fix the bugs is slowly increasing.It is becoming difficult to quickly add newfeatures. Time to induct new team members ishigh. The design and code has now become a'tangled mess'. Profitability of project is goingdown.

Somehow you need to improve the productivity of team and thereby

improve the profitability of project

Commercial in confidence.

Page 12: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Consultancy – common needs

Today every Software Company has to

To satisfy customer by Delivering high quality software on time

To improve the profitability by Improving productivity of developers

To Achieve it, you will need work on

◦ Improving design (flexible, extensible, testable)

◦ Improving code quality (bug free, easy to debug and test)

◦ Project Automation

◦ Ways to detect and warn about problems as early as possible.

◦ Project Team which is conscious and knowledgeable about all the above.

◦ Last but not least ‘performance optimizations’

You can benefit from my expertise in these areas.

Commercial in confidence.

Page 13: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Consultancy - Scope I

C/C++ software development projects

Design and Implementation of large scale projects

Design review, audit and design improvements◦ Flexible and modular design ◦ Framework design ◦ Module and Class Interface design ◦ Design for Testability◦ Algorithm design◦ Design for performance

Commercial in confidence.

Page 14: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Consultancy - Scope II

Refactoring and code cleanup◦ To reduce ‘technical debt’

◦ Improve the developer productivity and quality

Performance Optimizations

Developer Productivity Improvements◦ Project Automation(e.g. automated builds, unit tests)

◦ Integrations of bug tracker and version control

◦ ALM (Application Lifecycle Management) Software Implementation/deployment

◦ Defensive coding and coding best practices

◦ Design improvements and refactoring

◦ Teaching & mentoring for technical competency improvements

Commercial in confidence.

Page 15: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Consultancy - Scope III

Project Team Mentoring in aspects like◦ Writing bug free/easy to debug code

◦ Coding and code review best practices

◦ Multiple facets of design (design for change, design by contract, design for testability, design for performance, framework design, etc)

◦ Project Automation (e.g. automated builds/continuous integration, automated unit tests)

◦ Tools Best practices (version control, bug trackers, automated builds, automated tests etc)

Commercial in confidence.

Page 16: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

LEARNING PROGRAMS

Commercial in confidence.

Page 17: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Learning Programs

I discuss and understand the needs of the company/participants

and then tune the programs to suit those needs.

These programs cover the theory as well as practical aspects (aspects learned from 15 yrs of hands on coding/design experience)

The learning programs are divided into

Specialized programs,

Short programs Comprehensive

programs.

Commercial in confidence.

Page 18: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Specialized Programs/Workshops

Effective Code Review

• This program is designed to dramatically improve effective of Code Reviews. It teaches the participants How to systematically analyze code to find the defects.

Performance Optimization

• This program teaches participants principles of achieving an ‘order of magnitude’ improvement in performance?

Design Workshop

• 2 day intensive hands-on design workshop

• Participants have to create design for given problem.

• Basic Design Principles and multiple facets/aspects of design will be discussed.

• Participants will then present their designs. The designs will be critically reviewed based on principles discussed.

• Now Participants have to then improve the design based on the review feedback and present it again.

Commercial in confidence.

Page 19: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Short Programs

Commercial in confidence.

For Junior Developers

Programming Under the Hood

C++ : Defensive coding and best practice

Memory Management

Sr. Developers and Group Leaders

OO Design Principles

Design Patterns

Effective Code Review

Page 20: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Comprehensive Learning Programs

These programs are designed for ‘working developers’

Multiple sessions with different topics at each session

The programs allow for time to think and digest what is learned.

Participants are encouraged to question everything that is being taught.

Typically each session is of 2 hrs duration.

Commercial in confidence.

Page 21: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Comprehensive Learning Programs

Developing

Better Developer

Topics covered :

Effective code reviews

Design Principles

Design Patterns

Project Automation

Advanced C++

Topics covered:

Advanced macros

Error and exception handling

Advanced templates

Effective STL

Implementing Design Patterns

Advanced memory Management

Commercial in confidence.

Page 22: Consulting, Mentoring and Learning Programsthinkingcraftsman.in/pdfs/NitinBhideTrainingConsultancy.pdf · Numerous training programs conducted on topics like Design Principles, Design

Contact Information

Nitin Bhide

http://thinkingcraftsman.in

[email protected]

Ph : +91 – 98 220 34694

Commercial in confidence.