Thursday, March 7, 2019

Today 3/6/19

What is Agile?

“Agile is a set of values and principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams.”

Agile is a set of practices to help you be adaptable, and ensure your team is always working on something important.

Agile is the process of breaking down a large project into smaller tasks (usually called stories) and prioritizing them.

Agile Workflow

It is very simple.
* Sprint Planning: At first you start with the ToDo List AKA Product Backlog - a prioritized list of items to deliver a product.
* Once you have the ToDo List, the next step is to have a planning meeting where you pick the most important user stories and place them in a current Sprint. The required efforts are estimated and agreed upon
* The user stories are then developed into one to three weeks of Sprint (development cycles), it includes, planning, testing, bug fixing and everything that goes into delivering that feature in that sprint
* The team goes through a brief daily standup meetings every day to understand what the team did yesterday, what it is doing today, and if their are any roadblocks
* At the end of the sprint, you do a sprint review where you see if the development adds any values to the customer/product, if yes, you ship it. If not, then you will have to repeat the entire process for another sprint
* At the end you will have a Sprint retrospective meeting where you see what went well, what can be changed, what needs to be kept and what can be removed. After this meeting, the team moves on a next sprint planning and the cycle repeats











Tuesday, March 5, 2019

Today 3/5/19

What are algorithms? 

An algorithm is a set of unambiguous instructions to solve any problem. For example, when you make some changes in a word document, the document is auto saved. The autosave feature is an algorithm, it follows an instruction of saving a document the moment when any edit happens on the document.

Another practical and most understandable example would be; consider you have 10 people in a room and you have to count the number of people in that room. All of us follow the simple human process and start counting people in that room by pointing fingers at each person. In this process, unknowingly, we follow the set algorithm of counting people. The same applies to every task we perform in our daily activities.


Agnostic Apps / device agnosticism 

The term agnostic apps is gaining more and more popularity these days. It's a big and scary word but if we actually look at the literal meaning of it, it simply means any application or device that works just fine with various systems without requiring any special device/adaptation. For example, a website that works fine on laptops as well as on mobiles, tv, wearables, refrigerators, IOTs etc. 


Agile Epic and User Story 

An Epic is a a long/big story as the name suggests. There can be multiple small user stories for that epic. For example, an epic for a travel websites can be I want to find holiday destinations and travel around the world. It's big and it is difficult to define, so, to do that we have to break this epic into multiple small user stories such as As a user I want to discover new destinations.

A user story is a short, simple description of a product feature. User stories define product backlog and a product backlog is a collection of user stories that are prioritized based on the user/business needs. A user story has three parts (1) persona (as a user) (2) the feature (I want...) (3) the need satisfied by the feature (so that I can achieve...) for example, As a user I want recommended destinations based on my current location.

Minimum Viable Product (MVP) 

It is a product with just enough features to test the concept and give feedback on the developed product. Most companies start working on the project without knowing if they can provide what is expected, and it is the reason why many of them fail. Imagine a situation that you have to deliver a banking product, you put in years of efforts and eventually you develop something that the customers don't want. That can be a big pain. To avoid it, it's best to give customers the MVP, start with the most important features first, make sure that feature works just as expected and once the customers are happy with what you have build then continue with other features and eventually a complete product.




Focus 

It's the motion of your mind and body (how you feel at the moment) helps you learn things faster. Information combined with Emotions becomes a long term memory.