-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.json
1 lines (1 loc) · 17.7 KB
/
index.json
1
[{"authors":null,"categories":null,"content":"Mai Le has 14+ years of experience in the software industry, with more than 10 years in project/program management and 4 years in an executive role of a 1000-employee organization. She is capable of running programs at a large scale with distributed teams, working with multiple stakeholders to deliver successful products. She has got experience working in different stages of software products from product ideation, development and testing to operation and support.\nSince the completion of her Master\u0026rsquo;s Degree in Data Science from the prestigious University of Bristish Columbia, Canada in 2021, Mai Le has been working as a Senior Technical Product Manager for Katalon, an AI-powered all-in-one test automation solution.\n Download my resumé.\n","date":-62135596800,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":-62135596800,"objectID":"2525497d367e79493fd32b198b28f040","permalink":"","publishdate":"0001-01-01T00:00:00Z","relpermalink":"","section":"authors","summary":"Mai Le has 14+ years of experience in the software industry, with more than 10 years in project/program management and 4 years in an executive role of a 1000-employee organization. She is capable of running programs at a large scale with distributed teams, working with multiple stakeholders to deliver successful products.","tags":null,"title":"Mai Le","type":"authors"},{"authors":["Mai Le","Charles Suresh","Rahul Kuriyedath","Aditya B."],"categories":["Data Science"],"content":"","date":1623647063,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1623647063,"objectID":"fa1264dbfedff2a278675290cba92b0f","permalink":"https://lephanthuymai.github.io/project/datascience-eda/","publishdate":"2021-06-13T22:04:23-07:00","relpermalink":"/project/datascience-eda/","section":"project","summary":"This Python package includes functions assisting data scientists with various common tasks during the exploratory data analysis stage of a data science project. Its functions will help the data scientist to do preliminary analysis on common column types like numeric columns, categorical columns and text columns; it will also conduct several experimental clusterings on the dataset.","tags":["Data Science"],"title":"Data Science EDA Package","type":"project"},{"authors":["Mai Le"],"categories":["Data Science"],"content":"When I was working for a software outsourcing firm, we had performance appraisal every six months. A lengthy process was applied to ensure fair recognition but there were always rumors on how employees reporting under certain departments or even under certain managers tend to have higher chances of promotion. The HR department made some simple calculations like averaging ratings of members under each manager/each department then compared the results, but is it enough to use that as an indicator that one department\u0026rsquo;s managers are easier on their employees than another? Similar problems in management when you need to validate a theory or a bias, can be addressed using hypothesis testing.\nWhat is hypothesis testing then? Source: https://xkcd.com/882/\nA hypothesis test is a statistical test designed to verify if there is enough evidence in the data sample to reject or not reject an assumption. This assumption is called the null hypothesis, it is the status quo, meaning there is no difference among test groups, nothing interesting happens, any observed differences are by sampling or by errors. When examining the data and finding enough \u0026ldquo;evidence\u0026rdquo;, we can reject the null hypothesis and accept an alternative hypothesis. In the example of performance appraisal rating above, the null hypothesis states that there is no difference in the way different departments rate their employees, whereas the alternative hypothesis states that there is indeed difference in ratings among departments.\nHow can we find \u0026ldquo;evidence\u0026rdquo; to reject the null hypothesis? This is where things get more complicated: we need to define and compute a test statistic and a p-value, then compare the p-value with a predefined threshold called alpha, commonly assigned with 0.05, to decide whether to reject or not reject the null hypothesis.\nSource: https://knowyourmeme.com/memes/confused-nick-young/photos\nHow does it actually work? Let\u0026rsquo;s take a closer look at our performance rating example. Our null hypothesis states that there is no difference in ratings between departments, in order to test this hypothesis, we define the test statistic as the difference in the average ratings among different departments.\nTo demonstrate the analysis, I generated 400 random ratings (continuous random values between 3 and 5) for 2 departments A and B with 200 records each in a way that ratings from department B are generally 0.2 higher than those of department A, then randomly drawn 100 records from each department and saved the dataset in a csv file.\nI am using R to help with the test given its simplicity, more detailed instructions can be found below if you would like to re-produce the analysis.\nLet\u0026rsquo;s load the dataset and use R\u0026rsquo;s lm function to conduct the test.\nlibrary(tidyverse) library(broom) # load the dataset rating_df \u0026lt;- read_csv(\u0026quot;rating_samples.csv\u0026quot;) # conduct the test lm(rating ~ dept, rating_df) %\u0026gt;% tidy() %\u0026gt;% filter(term != '(Intercept)') lm function will use dept A\u0026rsquo;s values as the baseline, each row is the result of the test whether there is a difference between a department\u0026rsquo;s ratings and the baseline department\u0026rsquo;s: if p.value is less than the significance threshold, we can reject the null hypothesis and accept the alternative hypothesis that there is difference between the two groups of data.\nGiven our p.value for deptB row is 0.000376, which is much lower than the significance threshold alpha=0.05, we have enough evidence to reject the null hypothesis and accept the alternative hypothesis that there is indeed a difference between ratings of department A and B.\nColumn statistic is our test statistic: the mean of deptB\u0026rsquo;s ratings is at approximately 3.618, whilst column term is the coefficient of department in a linear regression to predict that department\u0026rsquo;s rating, simply put: when a person moves from department A to department B, their rating will likely increase by 0.281.\nSounds like magic? I know!\nIn case you want to re-create the analysis above, please follow the steps below:\n Install RStudio Set the working directory to where your analysis files to be: Session \u0026gt; Set Working Directory \u0026gt; Choose Directory \u0026hellip; Copy or create new rating_samples.csv in the working directory, it should contain department name (dept) and their employee ratings (rating) Copy and execute the script above in the Console panel If your p.value for each department (deptX) is less than 0.05, you can reject the null hypothesis and accept the alternative hypothesis: that department\u0026rsquo;s ratings are different from the baseline department\u0026rsquo;s Conclusion The application of hypothesis testing in management is endless: we can use it to justify the investment in various marketing strategies or use it to validate the effectiveness of different product designs (A/B Testing) or use it to validate if there is a gender bias in recruitment, etc.\nThere are actually different types of hypothesis testing, each with different sets of assumptions, please do proper research before applying this test as using a wrong test will yield a misleading result.\n","date":1614693342,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1614693342,"objectID":"8d2f9436b950c2d35026817bd06250db","permalink":"https://lephanthuymai.github.io/post/hypothesis-testing-simply-explained/","publishdate":"2021-03-02T20:55:42+07:00","relpermalink":"/post/hypothesis-testing-simply-explained/","section":"post","summary":"Basic concepts about hypothesis testing and its application in management","tags":["Data-science","Management"],"title":"Hypothesis Testing Simply Explained","type":"post"},{"authors":["Mai Le","Sang Yoon Lee","Rui Wang"],"categories":["Data Science"],"content":"","date":1613888856,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1613888856,"objectID":"269658575fa1a2357254740f45816028","permalink":"https://lephanthuymai.github.io/project/covid-19-data-portal/","publishdate":"2021-02-21T13:27:36+07:00","relpermalink":"/project/covid-19-data-portal/","section":"project","summary":"A dashboard visualizing COVID-19 statistics at both global and country scales using JHU CSSE COVID-19 Data, implemented using Python and Plotly Dash","tags":["Data Visualization","Data Science"],"title":"COVID-19 Data Portal","type":"project"},{"authors":["Mai Le"],"categories":["Project Management"],"content":"I was a Director of Delivery at an outsourcing firm when we got an opportunity to work with this client, let\u0026rsquo;s call them Company H. They would like to build a new generation restaurant management system as a software-as-a-service platform. My role was both Account Manager and Program Manager for this client, I gave the team\u0026rsquo;s overall direction, resolved cross-team impediments, reported the overall status and risks to the PMO and Steering Committee.\nThe project started with 2 Scrum Teams then eventually grew to 7 Scrum Teams working on a single product backlog.\nJust like other programs with multiple Scrum teams working on the same product backlog, we experienced the great challenge of dependency and integration hell, on top of that, we had 14-hour timezone difference between the team\u0026rsquo;s and their PO\u0026rsquo;s location, not to mention the challenges of outsourcing nature (tightly bound by contractual terms and sometimes lack of trust). In order to make our life easier, I chose to apply Nexus framework with adaptations to ensure multiple team\u0026rsquo;s works resulted in an integrated product. The model was not perfect but it was the best we could do at the time considering our constraints.\nEach of our Scrum Team was composed of 1 Product Owner, 1 Scrum Master, 6 developers and 4 testers. Our Nexus Integration Team included an Onsite Coordinator (proxy of the PO), Nexus Scrum Master (rotating role), 3 Scrum Masters (each serving 2 Scrum Teams), 2 members from each Development Team, 1 Technical Architect, 1 Test Architect. At the program level, we had Steering Committee including both companies' executives, Technical Governance and PMO to maintain transparency in communication and decision making.\nEach sprint was 2-week duration, we applied Sprint Planning, Daily Scrum for each Scrum team and Nexus Sprint Planning, Nexus Backlog Refinement, Nexus Daily Scrum, Nexus Sprint Review, Nexus Sprint Review at Nexus level.\nWe conducted Nexus Backlog Refinement meeting once every week, in which we had representatives from all Development teams and the PO to review the priority product backlog items and dependencies among them. The PO made initial team assignment for the reviewed product backlog items based on the teams' discussion and dependencies. We utilized Google Spreadsheet retrieving data directly from JIRA API to make the planning easier, we could have used JIRA Portfolio, but it was more costly.\nIn the Nexus Sprint Planning meeting, the Development teams sized the backlog items assigned to them, reviewed the plan in comparison to their availability for the new sprint, discuss with other teams and the PO on their plan before finalizing. There was one important outcome missing: we did not define the Nexus Sprint Goal as we did not see how important it was back then.\nWe had Nexus Daily Scrum with representatives from all Development teams to discuss on integration issues, the meetings were very helpful to early identify and address integration challenges, but they were also a pain given a lot of people involved, we tried different approaches to simplify and make these meetings more efficient, eventually we reached to a point when it took less than 1 hour but were not able to reduce it further .\nThe team applied Gitflow with feature branch workflow, when a feature was completed (developed and tested), it would be merged into the dev branch and built automatically to a test environment for the PO to early review and feedback. We had some automated end-end regression test suites to validate integrated workflows and 60-80% unit test (branch) coverage for all code, which helped to save some testing time, but given the early stage of the product with ever-changing features and tight deadline, the majority of the testing was done manually including scripted tests and exploratory tests.\nWe had weekly PMO meetings to report the progress which was visualized using Sprint burn-down chart and Release burn-down chart. Risks were also raised and monitored in those meetings.\nThe Nexus Sprint Review was hosted by the PO, the teams demonstrated what was done, received feedback from the stakeholders, which would be added to the backlog for next sprints. The meeting was recorded and shared across the organization so that everyone was aware of the progress.\nThe Teams conducted Nexus Sprint Retrospective together, then Sprint Retro for each team, feedback/action items were shared among the teams and PO. We applied various practices as Lean Coffee or simple brainstorming technique on Start/Stop/Continue, sometimes the SMs got creative and asked the teams to do sentimental drawings or arranged team outing to create a comfortable environment to share their ideas.\nOverall, the processes we applied were helpful, we demonstrated well our capability in a fast-pace project and won much more business with the client, our team size grew from 20-ish engineers to more than 100 engineers at some point, but that was not without challenges, I will write more about our lesson learn, especially in release management in the upcoming posts.\n","date":1610091375,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1610091375,"objectID":"da94e1f069358dfa9f5c350f8c469b9c","permalink":"https://lephanthuymai.github.io/post/surving-a-7-Scrum-team-project/","publishdate":"2021-01-08T14:36:15+07:00","relpermalink":"/post/surving-a-7-Scrum-team-project/","section":"post","summary":"How I successfully led 7 Scrum Teams work on a single product backlog","tags":["Project Management","Nexus","Scrum","Agile"],"title":"Surviving a 7-Scrum-Team Project","type":"post"},{"authors":["Mai Le","Yazan Saleh","Tran Doan Khanh Vu","Jingjing Zhi"],"categories":["Data Science"],"content":"","date":1608526315,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1608526315,"objectID":"edf9f28c7ce675c0d4c067d7336a55af","permalink":"https://lephanthuymai.github.io/project/online-purchase-intention-prediction/","publishdate":"2020-12-21T11:51:55+07:00","relpermalink":"/project/online-purchase-intention-prediction/","section":"project","summary":"Evaluate various machine learning models (LogisticRegression, SVC and RandomForestClassifier) for the best one to predict purchase intention on an e-commerce website","tags":["Data Science"],"title":"Online Purchase Intention Prediction","type":"project"},{"authors":[],"categories":[],"content":"Create slides in Markdown with Wowchemy Wowchemy | Documentation\n Features Efficiently write slides in Markdown 3-in-1: Create, Present, and Publish your slides Supports speaker notes Mobile friendly slides Controls Next: Right Arrow or Space Previous: Left Arrow Start: Home Finish: End Overview: Esc Speaker notes: S Fullscreen: F Zoom: Alt + Click PDF Export: E Code Highlighting Inline code: variable\nCode block:\nporridge = \u0026quot;blueberry\u0026quot; if porridge == \u0026quot;blueberry\u0026quot;: print(\u0026quot;Eating...\u0026quot;) Math In-line math: $x + y = z$\nBlock math:\n$$ f\\left( x \\right) = ;\\frac{{2\\left( {x + 4} \\right)\\left( {x - 4} \\right)}}{{\\left( {x + 4} \\right)\\left( {x + 1} \\right)}} $$\n Fragments Make content appear incrementally\n{{% fragment %}} One {{% /fragment %}} {{% fragment %}} **Two** {{% /fragment %}} {{% fragment %}} Three {{% /fragment %}} Press Space to play!\nOne Two Three \n A fragment can accept two optional parameters:\n class: use a custom style (requires definition in custom CSS) weight: sets the order in which a fragment appears Speaker Notes Add speaker notes to your presentation\n{{% speaker_note %}} - Only the speaker can read these notes - Press `S` key to view {{% /speaker_note %}} Press the S key to view the speaker notes!\n Only the speaker can read these notes Press S key to view Themes black: Black background, white text, blue links (default) white: White background, black text, blue links league: Gray background, white text, blue links beige: Beige background, dark text, brown links sky: Blue background, thin dark text, blue links night: Black background, thick white text, orange links serif: Cappuccino background, gray text, brown links simple: White background, black text, blue links solarized: Cream-colored background, dark green text, blue links Custom Slide Customize the slide style and background\n{{\u0026lt; slide background-image=\u0026quot;/media/boards.jpg\u0026quot; \u0026gt;}} {{\u0026lt; slide background-color=\u0026quot;#0000FF\u0026quot; \u0026gt;}} {{\u0026lt; slide class=\u0026quot;my-style\u0026quot; \u0026gt;}} Custom CSS Example Let\u0026rsquo;s make headers navy colored.\nCreate assets/css/reveal_custom.css with:\n.reveal section h1, .reveal section h2, .reveal section h3 { color: navy; } Questions? Ask\nDocumentation\n","date":1549324800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1549324800,"objectID":"0e6de1a61aa83269ff13324f3167c1a9","permalink":"https://lephanthuymai.github.io/slides/example/","publishdate":"2019-02-05T00:00:00Z","relpermalink":"/slides/example/","section":"slides","summary":"An introduction to using Wowchemy's Slides feature.","tags":[],"title":"Slides","type":"slides"}]