Showing posts with label notes. Show all posts
Showing posts with label notes. Show all posts

26 September 2016

Agile/Scrum notes


WARNING!
This is personal notes for personal and my friends only:
http://dominiksymonowicz.blogspot.co.uk/2014/01/itnotes-information.html
You can read them,but I suggest look to link,resources only

AGILE/SCRUM NOTES

Agile is a Adaptive software development. Think "Agile " as synonym for flexibility

SCRUM:
"Scrum is a framework for developing and sustaining complex products. (...)  Scrum
employs an iterative, incremental approach to optimize predictability and control risk." (The Scrum Guide"™ -  https://www.scrum.org/Scrum-Guide)


BUSINESS VALUE DESCRIPTION:
  • It is hard to write  bways to better measure and communicate the value of your code and related work. One way to solve  Think in percentages


DEFINITION OF DONE

One of the most painful thing to define. I think dod should answer these question

  • Is it ready to be released?
  • Definition of done, is about the quality of the code.
  •  Has all of the documentation that the organization requires been updated?
  • Does the code have a reasonable level of unit tests?
  • the code covered by system level tests?
  • Has the code been reviewed by one other programmer?
  • For business people: “If we ship this today, can we make,save money ( by reduce waste)?”

DEVELOPMENT TEAM (part of the Scrum Team)
  • Group of people who do the work of delivering releasable Increment of “Done” product by the end of each Sprint.
  • They are self-organizing.
  • Size of team starts from 3 up to 9 (on average 'best practice opinions)..



ESTIMATES:


There are many way to do estimates but I learnt one thing.
Estimates are forecast not commitment!
If business treat them as commitment then there wil

Time based vs point based.

Although ,I liked time-based  estimate tor a bit of time , because they give nice imagination and projection of what's will happen but this create a minefield ..one mistake and KABOOM
However, I discover time-based estimation suffer
It is a very danger tool for company where

It tools
Estimation of bug fixing is a mistake. I never seen this work.In fact , I prefer kanban aproach to bug fix
Problem is how

Truth is that great agile people, if you use this tool

Points are more accurate but less precised
One thing which is missing for me is defition of units we using..
For example when you using points  system like 1 2 3 5 8 ...
What's defition of 1 and How many points are more less description of 1 day of work

To remember:

  • Estimates are forecast not commitment!
  • Don't estimate bugs .From what I see it causes more problems and disorganize sprint.




There should be one gold rule ,that estimate and achieve goals "on time" as part of
  • Sprint Planning:
    • Define the sprint goal
      • For example "Add Bluetooth Test"
    • Decide how much to chew off
    • Decide which stories to do this sprint
    • Create tasks for stories
    • Check how much availability do you have during spring
      • It can be Bank Holiday
      • Holidays
      • Company Events
    • All information required for story must bed completed and  groomed 
    • Decide which stories to do in this sprint
      • [TIP] It sometimes makes sense to prioritise a risky story higher to just learn, 
      • [TIP] leave some space for unexpected events (bug fixes ,thing can take longer due complexity
    • Sprint forecast sounds better than spring commitment

PAIR PROGRAMMING:

Link to article: Pair Programming is Best in Discovery Mode

Today, I found an article about Pair programming.
I can only add ,that I agree with opinion that

Tips:


  • Product manager tend to jump to the first acceptable solution without trying to consider other, (radically) different and perhaps better alternatives. 
    PRODUCT OWNER:

    • PO is like an entrepreneur , an innovator , system thinker and mini CEO .  
    • PO is not a Business Analyst!
    • It is responsible for maximizing the value of the product and the work of the Development Team. 
    •  Manage Product Backlog items (CRUD operation and prioritize list
    • It must be a one person. (entire organization must respect product owner decisions)
    • No one except Product Owner is allowed to tell the Development Tram what to do and when.

    SCRUM MASTER


    • Person is like process owner who is responsible for ensuring Scrum is implemented correctly and works smoothly.
    • Update the team's definition of done (or write one if they don't have one)
    • Instead of maintaining an impediment list, remove each impediment the day you hear about it


    STORIES:
    • Should be described using  this formula
      • Given ( context ), 
      • When ( action ) ,
      • Then (expected result) 
    Scrum Team

    • Product Owner
    • the Development Team
    • Scrum Master



    TIPS AND TRICKS
    1. Don't planning for more than 3 months.Don't bother.  from my experience, planning for longer
    2. Product must share a common definition of “Done”.
    3. Fix crap code immediately because bad code accumulates . If fix is more than "one liner" or  not sure about  it, consult your  technical/practical leads
    4. Email is great for communication, but not collaboration. All collaboration should be done by accessible by team tools like Jira, Wiki
    5. Meetings must be meaningful. “Is this meeting important to getting your job done?”
    6. Don’t Estimate Software Defects
    7. Pair programming  (link: http://itsadeliverything.com/pair-programming-is-best-in-discovery-mode
    8. A major factor in your choice of Agile framework/methodology depends on the ‘Reaction Time’ your team needs in order to change their currently agreed scope of work.
    9. For Scrum, the agreed scope is the Sprint Backlog (1, 2, 3 or 4 weeks long)
    10. For Kanban, the agreed scope is staying within your WIP limit threshold(s)
    11. Scrum is more about spirit rather than practices. I



    INTERESTING READS:


    QUOTES:
    • "A late change in requirements is a competitive advantage" 
      • by Mary Poppendieck

    • "As humans, we have a hard time acknowledging we don’t have control over everything. Hitting the estimates serves as compensation for not knowing everything. Drilling through the known unknowns, compensates for the unknown ones. "
      • http://www.javacodegeeks.com/2015/08/estimates-jumping-to-wrong-conclusions.html

    Resources:
    1. https://www.linkedin.com/pulse/how-run-sprint-planning-meeting-way-i-like-sandy-mamoli
    2. https://www.mitchlacey.com/intro-to-agile/scrum/definition-of-done
    3. http://www.mountaingoatsoftware.com/blog/clarifying-the-relationship-between-definition-of-done-and-conditions-of-sa
    4. https://www.scrumalliance.org/community/articles/2008/september/what-is-definition-of-done-(dod)
    5. http://blogs.atlassian.com/2013/10/8-steps-to-a-definition-of-done-in-jira/
    6. http://less.works/events/meet-up-less-of-a-story-an-introduction-to-large-scale-scrum-less-56
    7. http://less.works/less/rules/index.html
    8. http://scrummethodology.com/scrum-backlog-grooming/.
    9. https://www.scrumalliance.org/community/articles/2014/july/dos-and-don-ts-of-agile-retrospectives
    10. http://www.okapya.com/jira-agile-definition-of-done-acceptance-criteria
    11. http://java.dzone.com/articles/continuous-improvement-scrum
    12. http://www.romanpichler.com/blog/product-owner-sprint-retrospective/
    13. http://guide.agilealliance.org/guide/gwt.html

    20 March 2014

    Git notes

    WARNING!
    This is personal notes for personal and my friends only:
    http://dominiksymonowicz.blogspot.co.uk/2014/01/itnotes-information.html
    You can read them,but I suggest look to link,resources only


    Git is a distributed revision control and source code management tool.

    Book:


    1. Pro Git (book is free,but if you use ,please buy it)

    Articles:
    Useful command and command combos:
    • Change name of the current branch:
      • git branch -m newname 
      • where newname is the name of the branch
    • Undo modified file
      • git checkout -- pathToFile
      • where pathToFile is a file (path to file, that should be deleted (git status display all modified file  or actually the path to them, just copy it and use as  pathToFile  )
    • How change message from the last commit to Git?
    • -force-with-lease
      • use -force-with-lease instead -force-force-with-lease effectively only allows you to force-push if no-one else has pushed changes up to the remote in the interim.
    • How to remove all untracked files
      • git clean -df
    • A nice shortcut for quick commit, where you add all files and commit them to the message.
      • git commit -a - m "Describe your job or title from Jira "
    • How to cancel and undo merge, if you have conflict problems  
      • git merge --abort
    • Delete all uncommitted changes  
      • git checkout -- .
    • How to recover from shit happens like lost commit? Use Reflog which is a shortcut for Reference logs.
      • git reflog
    • How to clean in optimise repository. (-- aggressive should be used once per few hundreds commit) 
      • git gc --aggressive
    • How Using command line but prefer to have a more readable output of commits? Use this:
      • git log --graph --pretty=format:'%C(bold blue)%an%Creset %C(green)%cr %C(red)[%H]%Creset -%C(dim yellow)%d%Creset%n   %C(ul magenta)%s%Creset ' --abbrev-commit --date=relative
    • How to clean in optimise repository. (-- aggressive should be used once per few hundreds commit) 
      • git gc --aggressive
    • To avoid messy merge commits and help keep a relatively clean git commit history use the following workflow when fetching upstream changes:
      • git fetch origin and then git rebase -p origin/develop
    • Fancy change author name of commit?
      • git change-commits GIT_AUTHOR_NAME "old name" "new name"
    • Get fed up with merge the same conflicted changes over and over again? Enable this feature make you life less painful.
      • git config --global rerere.enabled true
    • Stop tracking a tracked file
      • git rm --cached file.json


    Sources:






    13 January 2014

    web development notes

    WARNING!
    This is personal notes for personal and my friends only:
    http://dominiksymonowicz.blogspot.co.uk/2014/01/itnotes-information.html
    You can read them,but I suggest look to link,resources only


    It contains  all information about HTML,CSS and JavaScript (and their framework).



    HTML

    HTML notes:





    CSS
    CSS notes:
    JavaScript
    JavaScript notes:

    • Javascript scope
      • "The second important feature is that functions provide scope. In JavaScript there’s no  curly braces local scope; in other words, blocks don’t create scope. There’s only function scope. Any variable defined with var inside of a function is a local variable, invisible outside the function. Saying that curly braces don’t provide local scope means that if you define a variable with var inside of an if condition or inside of a for or a while loop, that doesn’t mean the variable is local to that if or for. It’s only local to the wrapping function, and if there’s no wrapping function, it becomes a global variable. minimizing the number of globals is a good habit, so functions are indispensable when it comes to keeping the variable scope under control." (find resource!)

    JavaScript resources:
    • http://reference.sitepoint.com/javascript/domcore
    XPath

    Definition:
    XPath is a language for finding information in an XML document.
    XPath is used to navigate through elements and attributes in an XML document.


    Basics:

    • XPath, there are seven kinds of nodes:
    1. attribute,
    2. comment,
    3. document nodes
    4. element,
    5. namespace,
    6. processing-instruction, 
    7. text 
    • XML documents are trees of nodes.
    • Items are atomic values or nodes.
    • Atomic values are nodes with no children or parent.
    • Each element and attribute has one parent. Element nodes may have zero, one or more children.
    • Nodes that have the same parent.
    • Ancestors A node's parent, parent's parent, Descendants A node's children, children's children,
    • XPath uses path expressions to select nodes or node-sets in an XML document.
    • Predicates are used to find a specific node or a node that contains a specific value.
    • XPath wildcards can be used to select unknown XML elements.
    • By using the | operator in an XPath expression you can select several paths.
    • An axis defines a node-set relative to the current node.
    • A location path can be absolute or relative.An absolute location path starts with a slash ( / ) and a relative location path does not.
    • An XPath expression returns either a node-set, a string, a Boolean, or a number.
    • XQuery is used to querying XML data.
    • XSLT is the style sheet language for XML files.

    SOLUTIONS FOR COMMON PROBLEMS:

    • Note: In IE 5,6,7,8,9 first node is[0], but according to W3C, it is [1]. To solve this problem in IE, set the SelectionLanguage to XPath.
    •  How to prevent uneven linespacing  when subscripts or superscripts are used  on web pages.
    Resources:


    Misc. informations:
    • w3schools is quite famous website that provide web development learning content ,but there are many professionals who hats this page and they are even pages about it like http://www.w3fools.com .I am unable to jurge this,but it is worth to mention as it r

    Android development notes

    WARNING!
    This is personal notes for personal and my friends only:
    http://dominiksymonowicz.blogspot.co.uk/2014/01/itnotes-information.html
    You can read them,but I suggest look to link,resources only

    Android OS (http://www.android.com) - is an operating system based on the Linux kernel developing by Google(as Android Open Source Project) and designed for portable devices like smartphones ,tablets and etc.


    USEFUL ARTICLES

    Database:





    Design:


    • It is a very interesting and useful podcast  about colour palettes. I must admit, that all my apps ignore "holo guidance" ,but If I will write a professional application,then this is a mandatory link as It teaches you right design .

    Permissions:
    • If you add/modify feature  that requires adding a new permission ,then explain to user reasons.It is very important  for scary permission.

    Saving data in Android:



    • http://frogermcs.blogspot.co.uk/2010/09/zapisywanie-danych-aplikacji-obiekt.html
    • http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
    • http://stackoverflow.com/questions/3170691/how-to-get-current-memory-usage-in-android


    Scrolling


    • http://stackoverflow.com/questions/2033296/android-scrollview-problem
    • http://www.helloandroid.com/tutorials/using-threads-and-progressdialog
    Scheduling

    Other:

    User Experience ( UI , UX ) notes:

    UX is an acronym for "user experience"


    DEFINITION:
    Best definition can be found here: http://www.helloerik.com/ux-is-not-ui


    USEFUL ARTICLES:






    All useful material that I found can are here:
    http://dominiksymonowicz.blogspot.co.uk/search/label/ux