Changing software

Requirements change. Designs that cannot tolerate changing requirements are bad designs.

There are four primary reasons to change software:

  • Adding a feature
  • Fixing a bug
  • Improving the design
  • Optimizing resource usage

There is a very big difference between adding a new feature and changing old behaviour. When adding behaviour we must NOT change or remove behaviour the users already depend on.

Improving the design without changing its behaviour is called refactoring.

Optimization is like refactoring but it has a different goal. Some resource used by the program, time or memory, is changed.

When working on a system we can change three different things:

  • structure
  • functionality
  • resource usage

The Legacy Code Change Algorithm

  1. Identify change points – the places where you need to make the changes
  2. Find test points
  3. Break dependencies – Depenencies are the bigges impediment to testing. Break them to get tests in place.
  4. Write tests
  5. Make changes and refactor

What is legacy code?

Legacy code can have multiple definitions:

  • code we have gotten from someone else
  • a slang-term for difficult-to-change code that we don’t understand
  • code without tests. Without tests we can’t be sure if our code base is getting worse or better. With tests we can change the behaviour of our code quickly and verifiably.

Working Effectively with Legacy Code (Robert C. Martin Series)

Project closure

Closure is the final phase of the project life cycle.

Closure requires the consolidation of communications with team and stakeholders.

Closure requires feedback and to capture the learning experiences gained.

Some key questions in this phase:

  • Were the original objectives of the project delivered?
  • What do I have to measure?
  • How do I get and offer feedback?

Wrap-up:

  • obtaining project acceptance
  • finalising and terminating resources
  • de-establishing the team
  • capturing remaining costs and closing project related accounts
  • compiling a final project reports

Evaluating project success:

  • assessing, verifying and documenting project results
  • measure the performance of the project team

Capture lessons learned

Reward the effort, the team and the contributors

 

Project management – Initiation

Consider the following questions:

  1. What is a project? What the project requires ?
  2. What is the problem i’m looking to solve?
  3. What do I need? Consider the resources.
  4. What are my options? Multiple way to approach a project. Consider different options.

Good initiation is extremely important for project planning.

Set SpecificMeasurableAlignedRealisticTime bound tags.

Scope is clear and elements of time, costs and quality are understood.

Assure you are given the necessary authority within your organisation.

Assumptions: need to consider them in planning. With no proof of certainty, thus they may or may not eventuate.They affect every day phase of the project management cycle.

Dependencies are relationship between specific tasks.

Constraints: Restrictions or limitations that will affect the performance of a project.

Use creative thinking techniques to generate multiple solutions.

Basics on negotiation

Successful Negotiation: Essential Strategies and Skills – Professor George Siedel.

  1. Prepare: Plan Your Negotiation Strategy
    1. Should i negotiate? Think of the costs and benefits before a negotiation. Avoid the costs which are pulling you in away from other opportunities. Consider your feeling about negotiation and as well as the potentials risks and rewards.
    2. Is a position based or interest based negotiation?
      • Ask firs why do you want what you are requesting? What’s the reason for your position?
      • Always search for underlying interests but also be ready for positional bargaining even after finding mutual interests.
    3. A dispute resolution or deal making negotiation?
      • deal making – forward looking, interest-based, problem solving
      • dispute resolution – backward looking, position-based, adversarial
      • 6 processes to resolve a dispute:
        • Avoidance
        • Negotiation – (also used for deal-making)
        • Mediation – bringing in a third party to mediate the dispute, is a negotiation assisted by a third party
        • Arbitration – bringing in a third party who has the right to decide the dispute
        • Litigation – similar to arbitration,
        • Power
      • ADR – Alternative Dispute Resolution – Negotiation, Mediation, Arbitration
      • Third Party Process – Litigation, Arbitration, Mediation
      • Power Right Interests – Power, Litigation, Arbitration, Mediation, Negotiation
      • If you are involved in a dispute:
        • Power to force the other side to do what you want
        • Rights – let a third party to decide who is right
        • Avoidance – withdraw from a dispute.
        • Interests – try to negotiate an agreement based on your needs
      • Traditionally, in deal-making the focus is on Negotiation. However, lately arbitration and mediation are used for deal making as well.
  2. Negotiate: Use Key Tactics for Success
  3. Close: Create a Contract
  4. Perform and Evaluate: The End Game

Basics on phone talk

Phone talk still play a vital role in today world work.

Very important to say your name, who you are and the purpose of the call.

Clear introduction and exchange info, no misunderstandings and friendly closings.

Expressions for having a request and to respond to a request:

Q: Could you…?
A: Yes, i’d be happy to.

Q: Do you…?
A: Certainly..

Q: Would you…?
A: Of course..
A: Not at all..

Expressions for clarifying info:

Q: I’am sorry, i missed that. What did you just say?

A: Oh, let me explain.

Q: Excuse me, i didn’t catch what you said. Could you say it again please?

A: I’d be happy to.

Q: Sorry, i am not sure i understand. What does that mean?

A: Certainly, what i mean is…

I’am sorry, i am unable to confirm at this time. I’ll get back to you as soon as i can.

Unfortunately, i’m not able to at this time. Could i call you back?

Sorry, i’m busy right now but will be happy to call you back.

Expressions when closing the call:

When closing the call use a friendly expression.

Thanks so much. I look forward speaking with you again. Goodbye!

It’s been great talking to you. Thank you! Good bye!

I’ve enjoyed that conversation and we’ll talk again soon. Good bye!

 

Elevator speech

Elevator speech

  • it should tell a story about you
  • it gives to your listeners some facts about who you are and it shows how you are important to them. The person should want to know more about you
  • it must end with an opportunity to meet again: I will contact you again soon

How you sound and how you look

  • speak slowly so your listeners can understand you
  • use pauses
  • highlight information
  • body language
    confident, friendly, organised
    smile and make eye contact
    stand tall and add hand gestures to emphasise important points
    look natural

Microsoft bot

Microsoft bot strategy

Bots are conversational agents are they are meant to help users to complete a particular task. There are not new and they are not specific to Microsoft. The user doesn’t need to have an application or to go to a specific Web site and he can provide information directly to the bots.

 

Why Microsoft just made a big bet on bots

Satya Nadella thinks that bots are a simple concept with a profound impact. Microsoft hopes that boots become the next major computing platform even if for now the consumer interest is not overwhelming. Bots are cataloged as the website builder of the future. Some startups are already creating bots, Google tried to buy Chatfuel and Facebook is expected to open Facebook Messenger to third-party bots. Microsoft will make easier for developers to write bots  in Windows and run them on the Azure.

https://dev.botframework.com/

To get started you will need a Microsoft account.

Microsoft Bot Framework contains Bot Connector,  Bot Builder SDK and Bot Directory.

Bot Connector allows you to register, connect and publish the bots to services like text/sms, Office 365 mail, Skype, Slack and others.

Bot Builder SDK will provide anything you need to build great dialogs within your bot. For C# you can get started from docs.botframework.com/sdkreference/csharp/.

The Bot Directory is a public directory of all approved bots registered through the Bot Connector.

 

Notes #4 – Reading books

A simple plan to start reading more – Of course there is no simple plan. Just start reading 25 pages per day. I will start with 10. No excuses.

The art of reading, remembering and retaining more books

Start by finding out how fast do you read. My reading speed is average. You can improve your speed by following all kind of guides, choose another way of reading, like Spritz, or make more time by cutting out time from other activities. Keep in mind that not always reading faster is the right solution.

Remember what you read by trying to be impressed by the text or associating it to something you already know or use repetition by literally re-reading a passage.

Scribble, bookmark what you like, write a review.