About me


WELCOME!

You just stepped in Ravi Bhaskaruni’s  personal blog . I am “Embedded Systems, Telecom experience person (from Hyderabad, India).  

The idea behind this blog is to share back my experience, ideas & personal thoughts on technologies (embedded, cloud, program management areas).  I hope you will enjoy the read!

These are exclusively my ideas, or sometimes they have taken from some idea (from web site), Some contents/images may be from respective people, I have used them in this site.


Few Articles 
1. My Contribution to Products
2. Microsoft Windows CE Article
3. Agile Embedded
4. Product line from Microsoft
5. Embedded Diagnostics
6. Agile + Lean Start-up
7. Top blogs of mine
8. Google Architecture

If you are visiting, please feel free to comment, will gladly correct and change the contents.

Advertisements

Nice blogs (embedded, programming)


Embedded Systems


his is place-holder for embedded system articles.

My embedded web sites:
1. Also you can find some of my collection made in 2001[ http://vxipnp.tripod.co%5D . While was working as a “software engineer” in “Embedded Systems” . There are some broken links either due to firm’s vanished in 2001 time frame [Read as 9/11 effect and US economy disaster] . I am re-creating in http://blog-bhaskaruni-2001.blogspot.com

2. real time embedded system best site is as follows:
http://realtime-info.be/

3. “Windows CE Display Driver web site”. The following site has covered better than any other site or book. This web site was very useful, while doing “display driver framework” in “Windows CE” http://www.intelligraphics.com/articles/wincedrivers_article.html

4. “Windows Driver web site”. The following site has covered better than any other site or book. This web site was very useful, while doing “driver framework” in “Windows CE” http://www.intelligraphics.com

Why Agile is too fragile?


I wrote my earlier articles about agile benefits and working, various roles and responsibility topics. Now I am writing about pitfalls and issues of agile.

1. Agile is attractive [like any democracy, people will take advantage of rules and mis-utilize them] as it provides flexibility to postpone things, and resolving or deciding/completing in 11th hour.
-> Agile says limited or just in case planning. Some time’s you may have to go over-board and plan few ground rules as and when we are working
-> If we are working on architecture (for entire project), please decide now. As this will be base-line for your next step.
-> Decide on few release notes, MPP plans, Risk register and other essential documents.
-> Also decide on the deadlines, budget, and quality and adhere to all the software process ground rules

2. some times agile project, goes on infinite mode, as it is always work in progress. Teams feel it is no time bound project.
-> Attach boundaries
-> Attach quality, process conformance
-> Attach and follow regular process guidelines

3. Using traditional water fall acquainted manager will be too dangerous. My friend in different organization was running SCRUM call [max limit 30 minutes] with all team members.

4. In multi vendor and country project and organization it is too challenging. So many rules and process, so little time to fix all the problems by a in charge.

5. Get the strong delivery person to resolve the problems and manage or micro-manage. And also use agile process guidelines to get the maximum output. Use burned-down charts for progress monitoring and reporting.

6. If you are working Agile based method, please use the experienced person to guide the team.

Wrote in Bangalore, India’s Silicon Valley [Oct 31st 2008]

New product development


1. New product development Initiative:

The management has decided to launch a new product
1. With multiple features
2. To cater the various clients expectations
3. Usage of new technology
4. Re-use existing in-house technologies

2. New team creation :

The product is creating new device “X” and take to the market. With out going into much detail the team is formed by picking the experts from different verticals (project departments).Different departments were created to under a product manager /Program Manager

1. Project Managers
2. Architect
3. Embedded Development team (Operating systems, Boot loader, Application development
Testing Team, Quality team)
4. Mechanical & Plastics
5. Special Technology
6. Process consultants
7. Training
8. Project Management office
9. Product Launch & documentation teams

As this project will have a team of PMs to each of the areas. All this PM’s will be reporting to Program Manager.

The main challenge is to decide the technology and software process to create the product. Also greater challenge in deciding the mechanical/housing/plastics required.

3. Key areas to concentrate :
Create a right process, methods, reporting mechanism and test process.

4. Architecture & Developmental area :

Most of the decision factor of the product timelines of the product release is based on this.

In this phase you must decide whether it is in house-build/outsourcing/Buy, utilize existing product lines.

At no point of do-reinvent the wheel, if the off-the-shelf software/hardware is available utilize it.

(When we are building the Microsoft windows CE based device, our V.P mentioned us this is better way, as we have to pay one vendor royalty unlike “DOS based devices”. In DOS based we have to integrate from “n” vendors)

Also stay away from “free OS”, where no support is available, unless you have team who are experts.

Embedded Systems/OS: Based on the product we are building we need to come up with best OS (Operating Systems) (Linux, Unix, Windriver, Microsoft”
-> This is more like your selection of the house/Apartment you are going to buy.
-> Identify what are features will be supported by the OS
-> OS selection will be different for the “vending machine”, “Nuclear Rector”, “Hospital equipment”
-> If this product as “10 features”, select the OS, which meets the 90% features.
-> Select the OS which can support the internationalization, local requirements.
-> Select OS which the team/firm has experience.

5. Incremental development and QA/QC& area :
Selection of the models/development, developmental boards and methodology to support the staged development.
-> This is just like; you construct ground floor, second floor, and third floor with proper suitable basement.
-> Build lot of debug/test fixtures to test the system
-> Migration of software/hardware must be incremental

6. Agile, Lean development, TDD (Test During design) :
This is must to get the product out the door faster

7. Planned daily builds and release cycles
Development and testing must continue daily, and bugs are fixed, reported. Also need to come up with release plans.

8. Project, Program , PMO, Delivery
Proper management team to track, co-ordinate and report the status.

9. Training
Just after kick-starting to project, and after knowing the requirements, after proper “requirement tracking”, training to be organized. The whole team must be involved in training this include senior management, who can help to change and understand time lines.

10. Pre-validation testing
This is stage where the basic sequence is created with dummy functionalities and hooks. Here you must decide if we need to change the architecture and design

11. Proper Team section
Every team members must be evaluated and placed in the suitable slots. Never have “researchers” in quality and development. Always have different PMs for the development, quality and test teams. Strong “delivery/release Manager” must be in the team. Keep the teams rotated, and also have proper backup/documentation

12.Development and test ratio
Always have proper ratio, team must be rotated to keep the tempo

13.Outsourcing model
If you are “outsourcing”, have proper tracking and choose one/two managers/ partners at the development site.

14. Collate the teams
Make sure all the teams are at one location