Wednesday, May 4, 2016

Procrastination to the Extreme :: Will it be endless wailing in Death Bed ...??

After a long long time, I'm here again ...

Now trying to study Math, Algorithms, Functional Programming,  Simple Design, etc ...

Following is a nice post from a renowned Math Professor on these Math terms:

What are the differences between theorems, definitions, axioms, lemmas, corollaries, propositions, and statements?

https://www.quora.com/What-are-the-differences-between-theorems-definitions-axioms-lemmas-corollaries-propositions-and-statements


Saturday, November 2, 2013

BOK-BOKs :: PMBOK, BABOK, SWEBOK & ...

Followng are few more points on the PMBOK (Project Management Body Of Knowledge, http://en.wikipedia.org/wiki/A_Guide_to_the_Project_Management_Body_of_Knowledge), BABOK (Business Analysis Body Of Knowledge, http://en.wikipedia.org/wiki/BABOK ), SWEBOK (Software Engineering Body of Knowledge, http://en.wikipedia.org/wiki/SWEBOK) ..


PMBOK:
A Guide to the Project Management Body of Knowledge — Fifth Edition provides guidelines for managing individual projects and defines project management related concepts. It also describes the project management life cycle and its related processes, as well as the project life cycle.
The Guide recognizes 47 processes that fall into five basic process groups and ten knowledge areas that are typical of almost all projects.
  • The five process groups are:
  1. Initiating
  2. Planning
  3. Executing
  4. Monitoring and Controlling
  5. Closing
  • The ten knowledge areas are:
  1. Project Integration Management
  2. Project Scope Management
  3. Project Time Management
  4. Project Cost Management
  5. Project Quality Management
  6. Project Human Resource Management
  7. Project Communications Management
  8. Project Risk Management
  9. Project Procurement Management
  10. Project Stakeholders Management (added in 5th edition)


BABOK's 6 KAs (Knowledge Areas):
1. Business Analysis Planning and Monitoring,
2. Elicitation,
3. Requirements Management and Communication, 
4. Enterprise Analysis,
5. Requirements Analysis,
6. Solution Assessment and Validation

For the Software Requirements, You will need 6 TEAM Skills: (I'm copying the contnts I blogged here before ... :P ...)
----------------------------------------------------------------------------------------
1. Analyzing the Problem (AP)
2. Understanding User Needs (UUN)
3. Defining the System (DS)
4. Managing Scope (MS)
5. Refining the System Definition (RSD)
6. Building the Right System (BRS)

5 Generic Steps in Problem Analysis:
----------------------------------------------------
1. Gain understanding on the Problem Definition
2. Understand the Root Causes - the Problems behind the Problem
3. Identify the Stakeholders and Users
4. Define the Solution System Boundary
5. Identify the Constraints to be imposed on the Solution!

Few tips / advice for the aspiring Young Software Professionals:
--------------------------------------------------------------------------------------------
1. Be Passionate about the Software Development (genuinely...;-)...
2. Have an Agile Mindset in coping with the constant change in IT 
3. Invest in your early career rather than "running after money" (stop hopping...;-)
4. Find your own Mentors ... (or Be your own Mentor with Google & the Net...)
5. Have a Great "AIM" in Life ... (AIM => Assess / Accept your weaknesses / mistakes, Improve on those, and then Move on positively ...)

Few URLs for you to look at:
------------------------------------------

... And many more that you can find by "Googling" which might be more suited to your needs and interests ... :-) ...

Let's ALL enjoy the LEARNING ...:)

Thursday, October 31, 2013

The Tipping Point :: The Growth of our IT Industry Middle Management

Bangladesh IT Services, i.e. mostly Software Development, Testing & Systems Integration Companies often can not grow due to the shortage of good quality mid level experienced Human Resources (i.e. the so-called middle-layer-management people including Project Managers, Product Managers, UX Design Leads, Tech Leads / Lead Architects, QA Leads / Managers, Lead Business Analysts / Lead Use Case Engineers, Lead Systems Analyst / Systems Analysis Managers, Lead Data Scientists, Technical Documentation Leads, Lead Test Engineers, etc), who hold the backbone for planned growth!

Although there is no universally accepted roles, titles, and career paths in the "highly creative ever changing" IT Services / Software Engineering Discipline, but globally the IT Industry agrees with most of the above middle level positions.

And I can also verify the roles / titles from my "hands-on-deep-dive" 24 years of local and global Software / IT Industry experience. Let me try to explain the roles / titles (often overlapping roles) in the following:

1. Project Manager (PM):
-----------------------------------
PM is the most visible middle manager. Manages Software / IT Services Projects defined by deliverables, milestones, time and budget usually set at the beginning of the project.
S/he is responsible for customer management in terms of project deliveries, priority setting, needed HR & related logistics management.
Typically, in the IT Services / Software companies, the software engineers gradually move up to the seniority ladders and become Project Managers. 
But Project Managers do not necessarily need to be technical if s/he has good support from his/her Teach Lead!

2. Product Manager:
-----------------------------
This role is mainly found in the Software Product development companies. A product manager is solely responsible for the product features, releases / versions, etc... Any substantial software product can have multiple development projects in parallel. In that case, a product manager can have multiple project managers to handle different parts of a software product.

Even in a single project, the role "Product Owner" may be synonymous with the "Product Manager" role who solely remains focused on the product features.


3. UX (User Experience) Design Lead:
-------------------------------------------------------
User Experience is any aspect of a person's interaction with a given IT system, including the interface, graphics, industrial design, physical interaction, and the manual. In most cases, User Experience Design (UXD or UED) fully encompasses traditional Human-Computer Interaction (HCI) design, and extends it by addressing all aspects of a product or service as perceived by users. 

UX is becoming very very significant now-a-days given the millions of web sites, mobile apps popping up every now and then. And attracting and retaining Users giving them the best possible experience is the desire of all software / product companies. Since this UX discipline is getting recent importance, so we don't have many good UX Designers let alone having the UX Design Leads.
But having a role of "UX Design Lead" is very important for any aspiring local software / product company to go global! 


4. Tech Lead / Lead Architect:
------------------------------------------
The Lead Software System Architect or the Tech Lead is a very crucial role in any Software Development or Information Technology Services Company. The Lead Software Architect makes the high level system designs of the software products.
Typically software engineers having technology skills and demonstrating proven superior ability in real life projects become Tech Lead or Lead Architect. Then they become CTO (Chief Technology Officer) of that company.



5. QA Lead / Manager:
-------------------------------
QA Manager or QA Lead is the critical role that a software / product company must have to ensure an end-to-end best possible Quality Management System...

People often mix up the "QA Manager" role with the "Lead Test Engineer" role... :-( ... But a QA Lead or Manager (along with the Top Management) is the most responsible for ensuring a Quality Management System (QMS) in an organization. Many companies having CMMI or ISO 9000 usually have a dedicated QA Manager role for their internal QMS.

Even in the companies who completely adopt the lean Agile Process models, they also have the role like QA Manager or Process Owner or Scrum Master, etc...


6. Lead Business Analyst / Lead Use Case Engineer
------------------------------------------------------------------------------
7. Lead Systems Analyst / Systems Analysis Manager
-------------------------------------------------------------------------------
Strictly speaking, all these above 4 roles are actually different in their own rights and specialties. But I'm intentionally grouping / lumping them to describe their large overlaps as currently perceived / practiced by most of our local Software / IT Services companies.

Frankly speaking, many companies do not have a role like "Systems Analysis Manager" or any sort of "Lead" in their "Systems Analysis Unit" ...;-) ... Often the company CEO or CTO fill up that Lead Role!

In fact, in our country since our Software Industry is still in its infancy filled with small start-up companies, many of the middle-layer-management roles are often filled up by our ever-enthusiastic-technocrat-entrepreneurs and thus no stable career path yet for the professionals ... :-( ...

So the Lead Business Analyst or the Lead Use Case Engineer or the Lead Systems Analyst or the Systems Analysis Manager is largely responsible for the Business Analysis / Systems Analysis of any particular software product having a single or multiple domains. Usually a pool of Domain Experts (may not be full time on board) having deep Industry Vertical experience other than IT assist this Systems Analysis Manager to handle the preparing of BRDs (Business Requirements Documents) or BPDs (Business Process Documents) of any software product.



8. Lead Data Scientist:
--------------------------------
This role is also a latest emerging role in the Software / Business Intelligence / Data Science companies ...:) ... We will be very lucky to find dedicated & designated role like "Lead Data Scientist" in our local Software / IT Solution providing companies ... :)  

This role is relevant with the obvious and constant proliferation of Big Data in almost every sphere of Business and Life! The Lead Data Scientist should be responsible for selecting the appropriate Social Media channels / Big Data sources with appropriate Data Mining Strategies for the relevant reporting or Business Analytics needs. As the name implies, the Lead Data Scientist should obviously assisted by other relatively junior Data Scientists or Data Miners to help him accomplishing the Data Analytics Goals... :)...


9. Technical Documentation Lead:
------------------------------------------------
This is also a very important role now visible in some companies as the title: "Technical Documentation Writer"! Most companies often keep this role(at times temporary) mainly due to customer pressure demanding technical documents, which the development teams did not prepare while developing the software solutions / products. And then the companies post-produce those documents with Tech Doc Writers getting help from developers and also by going through the developed software systems...

But the Technical Documentation Lead should create this super-reactive-role into a super-proactive-one! S/he or his/her team should NOT be the "steno-typists" of the "super-proud-programmers-techies", rather they should hold them (the techies) responsible (with the help of the PM and the QM) for the constant ongoing minimal documentation needed for any IT Project or Product! Then the Doc Team can help them to "finish" the documents with needed style and lingo as appropriate for different audiences...!

So this very important middle management role is responsible for ensuring durable and sustainable Intellectual Property (IP) creation including all relevant documents in time with high quality in any IT company.


10. Lead Test Engineer:
----------------------------------
This is another often-neglected / often-confused role in our Software / IT companies...! People often confuse them with the QA Manager. Even software engineers are at times not very encouraged to pursue the Testing career path.

Although the Lead Test Engineer role is recently gaining popularity mostly due to some Big-Testing-Focused-Companies in our country, but this role still has many mists! 

The Lead Test Engineer is an integral part of the Software Engineering Process. For the companies who develop projects / products from the initiation of the SDLC (Software / System Development Lifecycle), the Lead Test Engineer is very much involved in preparing the User Acceptance Test Cases (UATCs), Systems Test Cases (STCs), Integration Test Cases (ITCs), etc... For companies operating in the mid- or late SDLC, the Lead Test Engineer works with the customer supplied Test Cases / Test Documents, but s/he can also suggest changes to the customers based on his / her expertise and experience.. 

One very common misconception among Testers is: Testing profession does not need programming skills...! That's why I often see some girls prefer this, who fear programming ...;-)... Although Testers do not program as heavily as programmers, but programming skills take a tester to higher levels quickly and it is needed for test automation starting from the Integration Test Cases... And better yet, that skill helps a lot in communicating easily and with confidence with the programmers... :)

===================================================================

In fact, in our country since our Software Industry is still in its infancy filled with small start-up companies, many of the middle-layer-management roles are often filled up by our ever-enthusiastic-technocrat-entrepreneurs, often overlapped with each other having one person carrying many roles and thus no stable career path yet for the professionals ... :-( ...

So in summing up, all these above mid-level-positions will need many "specialized-track" trainings, such as: 

A. Project Management, 
B. User Experience (UX) Design, 
C. Software Design / Architecture (SOA, TDD, Arch Patterns, etc),
D. Software Quality Assurance,  
E. Business Analysis
F. Systems Analysis
G. Data Science / Big Data
H. Technical Writing
I. Software Testing

There are many standard good-quality training modules / packages for all these above topics / areas... So I'm not going into those details here ...

BUT I will emphasize on the following "hybrid foundation skills / topics" for training ALL the above mid-level IT Industry Human Resources:

1. Basic Strategic Management skills with Business Model Generation:
----------------------------------------------------------------------------------------------------
 Understanding the fundamental building blocks of business models. Very important  for middle managers to align with the Top Management in the driving seats. For details, pls see this URL: http://www.businessmodelgeneration.com/

2. Clear & Ethical Communication Skills:
----------------------------------------------------------
Mid level managers / resources must be the clear-most  and always ethical communicators, since they sit in the middle. Any lapse in this skill can create confusions and frustrations in the company. Great Ethical, Verbal, Written and Presentation Skills needed for all middle-managers.

3. Ethical Leader with Great Team Building Skills:
----------------------------------------------------------------------
Ethics is of paramount importance in an intangible and almost trust-based industry like IT & IT Enabled Services! So our middle managers must be ethical and apply all good management practices for the well being of the people and the companies.
An ethical leader can build ethical team members / operation-level employees. Team Building Exercise / Games, Team Hangouts, ethical and compassionate informal personal relationship skills, etc...

4. Productivity Tools Basic Hands-on Expertise:
--------------------------------------------------------------------
Project Management, Software Build Tools, Testing Tools, Source Code Version Control Systems like Git / GitHub, Continuous Integration Tools, Time Management, Groupware, Thinking Skills Management (Edward De Bono's Lateral Thinking, Six Thinking Hats, etc...)  

5. Basic Financial Management & Analytical Expertise:
------------------------------------------------------------------------------
Middle managers must be data and result driven, which ultimately affects any company's bottom line!  They should acquire skills on Basic Cash Flow Management, Intellectual Property (IP) Valuation Techniques, Basics on Web Intelligence and Big Data, etc... 

---------------------------------------------------------------------------------------------------------------

PLS also see some of the typical IT positions as practised globally.. 

Information Technology Engineering
===================================

Manager of Hardware Design Engineering:
-------------------------------------------------------------
Directs and coordinates activities related to the design, development and implementation of hardware operating systems for products. Oversees the development of test strategies and systems.

Manager of Software Design Engineering:
------------------------------------------------------------
Directs and coordinates activities related to the design, development and implementation of software operating systems for products. Oversees the development of test strategies and systems.

Hardware Engineering Supervisor:
-------------------------------------------------
Supervises employees engaged in functional and empirical analysis related to the design, development, and implementation of hardware for products including, but not limited to, the circuit design of components, development of structure specifications of a personal computer, and the design of a computer display unit. 
Develops test strategies, devices, and systems. 

Hardware Engineer:
-----------------------------
Provides functional and empirical analysis related to the design, development, and implementation of hardware for products including, but not limited to, the circuit design of components, development of structure specifications of a personal computer, and the design of a computer display unit. 
Participates in the development of test strategies, devices, and systems.


Software Engineering Supervisor:
------------------------------------------------
Supervises employees engaged in the functional and empirical analysis related to the design, development, and implementation of software operating systems, including, but not limited to, utility software, development software, and diagnostic software. 
Develops test strategies, devices and systems. 

Software Engineer:
---------------------------
Provides functional and empirical analysis related to the design, development, and implementation of software operating systems, including, but not limited to, utility software, development software, and diagnostic software. 
Participates in the development of test strategies, devices and systems. 

Network Engineer:
--------------------------
Provides functional and empirical analysis related to the planning, design, installation, and implementation of the network infrastructure. Performs remedial maintenance of file servers and network devices including the restoration of hardware and software. 
Anticipates and mitigates potential attacks through network or other connections to ensure the security of the system. 
Works with end users and vendors to resolve network hardware/software issues. 
May develop and administer end user training to achieve efficient utilization of LAN/WAN. 

Thursday, April 30, 2009

The Art of Empowerment

Attitudinal Change – The Art of Empowerment

(Discovering and living what is personally meaningful)

Transformation = Having new eyes; a shift in perspective; a breakthrough insight that generates new possibilities and actions; the manifesting of new reality

Two ways to change behavior: Which option is easier? Which option is more sustainable?

  1. Change one’s belief for a change in behavior
  2. Change one’s behavior and a change in belief follows

Attitudinal Change Principles and Enablers

In supporting ourselves and in facilitating others ….

  • Assume people have inherent wisdom and creative intelligence.
  • A certain degree of self-awareness capacity is necessary.
  • Self-responsibility is a pre-requisite to empowerment.
  • Choice needs to be available. Ensure this is a voluntary process – by invitation (vs force).
  • Expanding our consciousness is a commitment to growth.
  • Cultivating a neutral, observer self is helpful to explore who we are.
  • Mindfulness helps to create the space for curiosity.
  • Start from a place of compassion vs judgment. Emotional safety is a pre-requisite to opening up.
  • Risk-taking is about being radically honest with self. Courage is needed to let go of the known.
  • Check out our assumptions. What self-talk or messages do we give ourselves?
  • Know that our beliefs are NOT who we really are.
  • Develop a need or a sense of urgency. A personal vision of what you want is more compelling.
  • A problem-centered approach is not the most motivating place to start (what’s wrong with me?)
  • ….. and more … to follow ..;-)…

Sunday, April 26, 2009

EQ::Relationship-Building Skills

Empathy in Understanding Others; Service Orientation; Communication; Team-Building; Conflict Management

Non-Violent Communication (NVC): A Language of Compassion

Developed by Dr. Marshall Rosenburg

NVC is a way of speaking and listening that facilitates the flow of communication needed to exchange information and resolve differences peacefully. It helps us identify our shared values and needs, encourages us to use language that increases goodwill and avoid language that contributes to low self-esteem and resentment.

NVC is based on the premise that:

  • Our motivation is honesty and compassion rather than fear, guilt, blame or shame.
  • The key is personal responsibility for our choices and relationship-building.
  • People are all simply trying to get our needs met. Know how to do so without aggression.
  • People naturally enjoy contributing to the well-being of others when they can do so willingly.

This powerful, simple, yet not so easy process is about:

  • Observing free of evaluating
  • Expressing feelings free of judgment
  • Sharing needs free of strategy
  • Making requests free of demands

Observing Free of Evaluating

“The highest form of human intelligence is to observe without evaluating”. --- J. Krishnamurti

  • When we observe with evaluating, we decrease the likelihood that others will hear our intended message. Instead, they are apt to hear criticism and thus resist.
  • That does not mean we refrain from evaluating, but rather that we maintain a separation between our observations and evaluations.
  • Develop a “third eye” (neutral observer) in being aware of what labels we place on behaviors. This allows us the space to separate from our conditioning to a new way of thinking.
  • Replace the limiting words “never”, “always”, “whenever” etc. since human beings evolve and contexts change. Language is a process, not about static generalizations.

Expressing Feelings Free of Judgment

“Sharing our vulnerability can help resolve conflict.”

  • People are transport. Expressing our feelings allows for authenticity.
  • There is a heavy cost to repressed feelings. Research shows that depression is often repressed anger.
  • Many people express feelings by saying; “good, bad, mad” – 2 out of 3 are not feelings!
  • Some feelings, when needs are being met: (affectionate, confident, engaged, inspired, excited, exhilarated, grateful, hopeful, joyful, peaceful, refreshed)
  • Some feelings, when needs are not being met: (afraid, annoyed, angry, aversion, confused, disconnected, disquiet, embarrassed, fatigue, pain, sad, tense, vulnerable, yearning)
  • Distinguish between what we feel and what we think.
  • What others do may be the stimulus of our feelings, but not the cause. We are responsible for our feelings. Because we have choice, no one can “make” us feel a certain way.
  • There are four options to receiving negative messages: (1) blaming ourselves, (2) blaming others, (3) sensing our own feelings and needs, (4) sensing others’ feelings and needs.
  • Mindfulness – being present in the moment – is an effective way of tuning into the body, identifying our emotions, gaining perspective and harnessing our wisdom.

Sharing Needs Free of Strategy

“When we hear other people’s feelings and needs, we recognize our common humanity.”

  • Judgments of others are alienated expressions ofour own unmet needs.
  • If we don’t value our needs, others may not either.
  • Common Needs include:
    • Play (joy, humor)
    • Connection (acceptance, affection, appreciation, belonging, cooperation, closeness, community, empathy, love, respect, safety, security, to know and be known, to understand and be understood, support, trust, warmth, consideration, nurturing, inclusion, intimacy, companionship, to see and be seen)
    • Physical Well-Being (air, food, movement, rest, touch, water, sexual expression, shelter)
    • Honesty (authenticity, integrity, presence)
    • Peace (beauty, equality, ease, harmony, inspiration, order, communion)
    • Meaning (awareness, celebration, clarity, contribution, creativity, discovery, effectiveness, growth, purpose, mourning, stimulation, participation, hope, to matter, understanding, consciousness, challenge)
    • Autonomy (choice, freedom, independence, space, spontaneity)

Making Requests Free of Demands

“The clearer we are about what we want, the more likely it is that we’ll get it.”

  • Make requests in clear, positive, concrete action language. Vague languages contribue to confusion.
  • If requests are unaccompanied by our feelings and needs, it may come across like a demand.
  • People tend to be either rebel or submit to demands. Neither is effective relationship-building.
  • To make sure the message we sent is the message that’s received, ask the listener to reflect it back.

“Conflict is natural; neither positive or negative. It just is. It is a change in energy flow. The question is not if you have conflicts in your life but what you do with it makes a difference. Dealing with conflict effectively is rarely about who is right or looking good. It is about acknowledging and appreciating differences.

Perhaps all so-called bad behavior is in essence a cry for love.

In the end, all people want the same thing: to be seen, heard and loved.”

Friday, April 24, 2009

EQ::Adaptability (Very Important for SW Developers)

"Many people believe that having a successful relationship (work or otherwise) mostly depends on finding the right person and doing the right things.

We often don't see how we relate to another inevitably follows from how we relate to ourselves.
Our outer relationships are but an extension of our inner life.
We can only be as open and present with another as we are with ourselves."
---- John Welwood


....From Elizabeth Soltis .. again ...

Emotions and Thoughts are interconnected ... Understanding this relationship supports our EQ development. Using a combination approach of consciously exploring our emotional and cognitive habits enables us to to "rewire" for enhanced performance .

How People Tend to Think
As people grow, we develop general rules about the world and ourselves. In our attempts to understand the world and our place within it, we tend to use the process of induction -- the building of general rules from an accumulation of specific examples. Yet, humans can be poor logicians. We do not have all the information we need. From our personal experiences, we have to piece together the general rules of how it operates.

We have also been conditioned to interpret and respond to the world in fairly predictable ways by our primary caregivers. Through their influences, we have developed certain filters and lenses through which we view the world. We tend to forget these lenses exist and sometimes cause us to have some distorted ways of thinking and understanding the world.

The other challenge lies in the fact sometimes we get too much information to deal with. Humans are not passive recipients of sensory data from the world around them. We actively process and interpret information. Yet our five senses are capable of taking in much more information than our brains are able to process at one time. Thus we need to simplify the information streaming in through our senses before we can use it. We therefore cut corners and take shortcuts in our thinking to better handle the sensory load.

The biggest challenge is that people do not realize that we are doing this and assume that we are responding to a direct readout of that world, one that is comprehensive and accurate. Many people do not realize that they are engaging in an "interpretation" process. Our perceptions may indeed be faulty.

Understanding How We Can Think in Unbalanced Ways
As humans, we make fairly predictable mistakes in our thinking processes. There are basically two ways that we seek to interpret the world: causal inferences, answering the "why" questions; and implication inferences, answering the "what next" questions. We need to learn how to answer these questions internally in a balanced way. Unfortunately, many of us tend to limit ourselves by thinking in terms of:

  • "Everything" versus "Nothing"
  • "Always" versus "Never"
  • "Me" versus "Not Me"

Some people have a dominant style of this extreme thinking; while others shift back and forth between extremes. It is possible, however, to develop a balanced way of thinking and behaving by being self-aware.

Recognizing and Avoiding Thinking Traps
Humans experience common "thinking traps" as they try to make sense of the world. These limiting ways of thinking make it challenging for us to act in adaptive ways.

  1. Jumping to Conclusions - making assumptions without relevant data...
    1. Practice slowing down.
    2. Ask yourself: What evidence do I have to support my conclusion on. Am I certain or am I guessing?
    3. Use the Factual “White Hat” thinking from Dr. Edward Debono’s “Six Thinking Hat” framework to look for “concrete data”!

  1. Tunnel Vision – sampling and registering only select scenes and details from the environment...
    1. Practice refocusing yourself and broadening your perspective.
    2. Ask yourself: What is a fair assessment of the entire situation? What is the big picture? How important is this one aspect to the big picture?
    3. Use the Factual “White Hat” thinking from Dr. Edward Debono’s “Six Thinking Hat” framework to look for “all relevant facts”; and also use the “Green Hat” brainstorming technique to explore innovative options for the big picture!
    4. Use the “Systems Thinking” for a balanced view with big picture perspective.

  1. Magnifying and Minimizing – overvaluing and undervaluing events in your life...
    1. Practice striving for balance.
    2. Ask yourself: Were there any good things that happened? Did I do anything well?
    3. Alternatively, if you tend to dismiss the negative, ask yourself: Am I overlooking any problems? Were there any negative elements that I am dismissing the importance of?
    4. Use the Factual “White Hat” thinking from Dr. Edward Debono’s “Six Thinking Hat” framework to look for “all relevant facts”; and also use both the “Yellow Hat” and “Black Hat” thinking for positive values and negative concerns respectively!

  1. Personalizing – the tendency to attribute problems to one’s own doing; only seeing the internal causes of a problem and systematically ignoring the external causes...
    1. Practice looking outward.
    2. Ask yourself: Did anyone or anything else contribute to this situation? How much of the problem is really due to me and how much is due to others?
    3. Use the Factual “White Hat” thinking from Dr. Edward Debono’s “Six Thinking Hat” framework to look for external causes with “concrete facts”; and also use both the “Red Hat” and “Green Hat” thinking for emotions without logic and creative ideas respectively!

  1. Externalizing – the tendency to blame all problems on external causes...
    1. Practice holding yourself accountable. (This introspection habit to internalize causes is useful for continuous self-development.)
    2. Ask yourself: What did I do to contribute to this problem? How much of the problem is due to others and how much is due to me?
    3. Use the Factual “White Hat” thinking from Dr. Edward Debono’s “Six Thinking Hat” framework to look for internal causes with “concrete facts”; and also use both the “Red Hat” and “Green Hat” thinking for emotions without logic and creative ideas respectively!

  1. Over-Generalizing – when you make “always” and “everything” explanations about things...
    1. Practice looking more closely at the behavior involved.
    2. Ask yourself: Is there a narrower explanation than the one I’ve assumed to be true? Is there a specific behavior that explains the situation? Is it logical to indict my or anyone’s character (worth as human) based on this specific event?
    3. Use the Factual “White Hat” thinking from Dr. Edward Debono’s “Six Thinking Hat” framework to look for specific facts with “concrete focus”; and also use the “Green Hat” thinking for creative ideas!

  1. Mind Reading – when you believe you know what others are thinking and act accordingly. Or you expect others to know what you are thinking...
    1. Practice speaking up and asking questions of others.
    2. First ask yourself: Did I make my beliefs or feelings known directly and clearly? Did I convey all of the pertinent information? Am I expecting the other person to work hard at figuring out my needs or goals?
    3. Use the Factual “White Hat” thinking from Dr. Edward Debono’s “Six Thinking Hat” framework to share the facts with your TEAM; and also use the “Red Hat” thinking for expressing TEAM members’ emotions!

  1. Emotional Reasoning – when you draw conclusions about the world based on your emotional state...
    1. Practice separating your feelings from the facts.
    2. Ask yourself: Have there been times when my feelings didn’t accurately reflect the facts of a situation? What questions must I ask to know the facts?
    3. Use the Factual “White Hat” thinking from Dr. Edward Debono’s “Six Thinking Hat” framework to learn the “neutral facts” with “journalistic objectivity”; and also use the “Red Hat” thinking for articulating your emotions! Then separate the facts from emotions.

Wednesday, April 8, 2009

Soft Skills for successful SW Engineering

Software engineering is a multi-disciplinary profession which requires a wide range of technical and non-technical skills. Most software engineers – programmers, systems analysts, computer scientists – have mastered the former, but often not the latter. Learn the development of “soft skills,” non-technical skills such as project management; interpersonal communication – oral and written; organizational development and leadership; understanding business, marketing, and sales requirements/expectations; building effective, productive relationships with internal and external stakeholders; developing effective negotiation skills; and promoting and maintaining a “healthy,” productive work environment.

Just took the above from the following URL: :-)
http://extension.ucsd.edu/studyarea/index.cfm?vAction=singleCourse&vCourse=CSE-40980