Saturday, November 25, 2017

How will the IOT impact the Mobile experience

How to Create a Realistic Project Schedule by Dmitriy Nizhebetskiy

Source -

Gantt Chart is not the best way to manage Project Schedule. Learn why below. [iStock/NicoElNino]

Creating a realistic project schedule is difficult. It is a complex document with dozens of variables. There is always some amount of uncertainty.
Stakeholders try to squeeze as much as possible into unrealistic deadlines. On top of that, you need to make a commitment – a promise to the stakeholders to deliver the project in time.
There is a way to fulfill the task with a high level of certainty. The solution is to approach the project schedule planning in a systematic, integrated and iterative way.
What does that mean?
Right now I will guide you through the process and explain the basics of a realistic project schedule.
So, here is the deal.
No matter what you do as a project manager, you plan before you act. Therefore, you should start with the Schedule Management Plan

Ensure Your Success with Schedule Management Plan

Project Schedule is often confused with Schedule Management Plan. The schedule is only a part of the plan. Though, it is one of the most important pieces.
Key stakeholders will be interested mostly in a project timeline. Only because it answers their primary question: “When will I get the results?”
However, it is a long way before you can start working on the project schedule.
What is a real story?
Before dragging colored bars on a Gantt Chart there are a lot of questions you need to answer.
1. What are the existing policies and processes? Your project will function in the environment of your organization. You will have to get approvals, negotiate to prove the necessity of resources, and provide reports. Your project schedule should be aligned and integrated with these processes. Otherwise, expect extra work on your side.
2. Define a schedule model. It is a bit complicated concept described in a chart below.
(A scheduling tool is used to describe a Scheduling Method. Combined with project information it generates a Schedule Model. A version of the schedule model with final project information output the project schedule.)
Why does it matter?
In simple words, it boils down to this.
You must take into account available software and general approach to scheduling consistent with your environment. Including other project management processes.
For the sake of this guide, I will assume that you will choose Critical Path Method as a scheduling method.
3. Define Units of Measurement. Should the estimates be in hours or days? What will be depicted on Gantt Chart? Is it calendar days, working hours, or effective hours. Should you track both efforts and duration for a task?
Answering these questions will help you to make information consistent throughout different processes.
4. Identify variance thresholds. You don’t want to micromanage your team and continually update your schedule. You need to define whether a delay of one, two or three days warrants a corrective action.
5. Identify reporting format. What information will go from your scheduling model into the regular reports to the stakeholders? You need to come up with an effortless approach.
6. Think through change management process. How hard is it to make a change to the schedule? How to make it effortless and integrated?
That is not all…
Then comes the major integration part.

Integrate WBS with Project Schedule

The core of project integration is a Work Breakdown Structure.
Do you remember the long path you need to cover before you start creating a project schedule?
First, you create a Project Charter and Stakeholder Register, then Project Scope Statement and Work Breakdown Structure.
If by this moment you have a high-quality WBS, it automatically means that you have a framework for integration with other project management processes.
For example, in the next step, you will decompose the Work Packages into Activities. So, if you do integration properly, each activity already has a lot of related properties and information like:
  1. Links to requirements and project objectives
  2. Related stakeholders
  3. Parent work package
  4. Assumptions
  5. Constraints
That will be helpful in future for monitoring and controlling processes.

Use Activities For Accuracy

In project schedule, we work with activities.
They provide an appropriate level of detail. They can show interdependencies between work packages and deliverables. Activities can be done by one person without interruption.
Also, activity is a data storage that has enough information to be used in different processes. You will update this information several times.
Your ultimate goal is to preserve the connection to the related WBS Elements.
In future, you will use activities to perform, monitor and control project work. The sum of related activities will give you a completed work package. In its turn, related work packages will make you a deliverable. In the long run, you will get back to the WBS to prove that you have created the requested deliverable.
(Integration of WBS elements and activities.)

Whom do You Need to Get Things Done?

So, once you have an activity and you know what should be done, identify what kind of human resource you need.
In case you have a predefined team, you usually just assign activities to existing team members.
However, there is a catch.
If you skip the analysis of required resources, you may end up with a team not fully fit for the task at hand.
With a predefined team, everyone will assume that you have everyone you need. However, how could the assessment be done accurately without knowing the actual scope of work?
Don’t fall into this trap. Always analyze the scope of work with the team and ensure you really have every specialty accounted.

Use Bottom-Up Estimate for Accurate Duration

Knowing the competency and level of a resource, now you can estimate duration for an activity. To assess the duration of a work package you estimate the activities and sum them up. To evaluate a Delivery – you work with child work packages.
It is a preferred way for estimation. Using a bottom-up approach gives a higher level of accuracy. However, in case of duration, do not forget to take into account dependencies and sequence of activities.
We have discussed how to produce estimates in details already. Refer to the related post: How to Make Project Estimates.
Keep in mind that there are effort-driven activities. Duration of such activities depends on a number of resources you can actually apply. In other words, you can put several resources to do the job. And it will be faster.
For example, digging a trench. For one person in may take ten days. But you can apply ten persons to dig. Most probably they will not finish the task in one day. But it will be close to it. It is an effort-driven activity.
On the other hand, if you build concrete structures. It will take that much time for concrete to dry and fix no matter how many people will be around.

Dependencies in Project Schedule

There are practically four types of dependencies between activities:
Finish-Start. An activity must finish before the successor can start. It is the most common type of relationship.
I say, always use only this one unless a nature of related activities requires something else.
Start-Start. An activity must start before successor can start. For example, you must start delivering bricks before you start to build a wall.
Finish-Finish. An activity must finish before successor can finish. For example, you can’t finish repairs until you fully clean up the area.
Start-Finish. An activity must start before successor can finish. Well, before you start thinking about a good example, forget about it. This type is rarely used. Examples are way too confusing.
FS, SS, FF type of dependencies.
Also, there are several types of dependencies by nature:
  • Mandatory Dependency or Hard Logic. A dependency dictated by the nature of the work or is required by the contract.
  • Discretionary Dependency or Preferred or Soft Logic. A dependency you or your organization chose. There are different ways to do one and the same work. But for some reasons, it is the way you always do similar things. In general, it is dictated by convenience or efficiency of work.
  • External Dependency. Dependency imposed by people or an organization outside of your project.
  • Internal Dependency. The dependency that is based on the needs of a project. In other words, it is something you can control.
All you need to do is to analyze all activities and identify a predecessor for each one.
Even if activities are unrelated, you would want to build a logical sequence of work. So use Discretionary Finish-to-Start dependencies for such activities.

Network diagram

Network diagram shows dependencies between activities. Usually, a Precedence Diagramming Method is used. In this method, boxes are used to represent activities and arrows show dependencies between them.
But do you need to create a diagram separately? If your software does not do this automatically, it will take a lot of efforts. Therefore, I don’t think it is worth it.
Anyway, you will use some tool to visualize your schedule. In most cases, you will be able to perform analysis as if it is a network diagram.
Nevertheless, Network Diagram is a very powerful tool, and we will discuss it in a separate post later.

Use Your Float Wisely

Float or Slack is the amount of time you can delay an activity without delaying an intermediate deliverable or project end date. It is a Total Float.
The float is your management resource. Even if you do not create a Network Diagram and do not calculate forward and backward passes, it is useful to know the float.
How can you actually use this?
For example, you know that a task will take two days. However, it is not on the critical path. It has several days of float. It is a good chance to utilize your inexperienced or ineffective resources. They will do the work. But you will not jeopardize the schedule if it will take more time for them.

Define Critical Path

You can always sequence all your activities one after another. That is not efficient, though. Most probably you can perform several activities simultaneously. Therefore, you will have parallel paths from project start to finish.
Critical Path is the longest duration path through a network diagram. It also means that it is the shortest time it could take to complete a project. Moreover, it’s worth knowing that activities on a Critical Path have zero floats. Therefore, there is no way you can delay them.
Why do you need a Critical Path?
  1. It determines duration of the project
  2. It shows you where to focus your attention. All activities on Critical Path impose risks.
  3. If a problems arise with activity on a critical path – it requires your immediate attention.
  4. Shows you the ways to adjust project schedule.

Apply Resources Calendar

For now, we operated with absolute values of duration. It never coincides with calendar duration. There are holidays, vacations, sick leaves, and unexpected delays.
Resources Calendar, in essence, is just a calendar that shows when resources are available.
And there is a whole set of problems here. It is really hard to produce an accurate Resources Calendar.
What’s the real story?
If you have a predefined team – it lessens the troubles. You just need to manage vacations and plan for them. Also, you need to consider risks of sick leaves.
If you do not have a team and you, need to acquire it. Well, it is more complicated. You need to plan the dates when you will get a resource. You may need to find and hire a person first. You may need to wait when a person is released from another project. You may need to train him before he can add value to your project.
On the other hand, there may be constraints on the resources availability. It may be available part-time. Or his contract ends soon.
You need to take all of this into consideration. And we are talking not only about human resources. You may need access to equipment and materials. It is a separate plan on its own.
To use it efficiently, I suggest thinking of it this way. Each resource has time slots that you can fill in with your activities. Not vice versa.
In any case, keep in mind that you may need to make a lot of assumptions on resources availability. You need to be proactive to secure the resources you were promised. And of course, you need to take resources calendar into consideration during risk management.

Do a Reality Check

Now you have an end date for your project. Is it before the deadline? If it is – that’s good. If not, you need to develop options how to finish a project with minimal trade-offs.
Analyse the gap between the deadline and the estimated end date of the project. You need to identify what is the best way to fit the project within constraints.
Keep in mind that project plan should be flexible. If your end date and the deadline are too close, that is also bad. It is risky. Be sure to consider Essential Project Planning Concepts.

Adjust Project Schedule

If you need to compress the project schedule to meet the deadline, there are not many options.
  • You can either reduce the scope.
  • You can increase the costs to apply more resources.
  • You can move the deadline.
Of course, the combination of these options is also valid. But it is always about scope, time, and costs.
Crashing is a project schedule compression technique. You simply add more resources to finish the project on schedule.
You trade time for money. It is a less risky approach. It increases the costs and communication overhead. However, it is not always applicable.
And keep in mind that buying a better tool or machinery may also be an example of crashing.
On the other hand, you can try to perform activities on the Critical Path in parallel. If it is possible at all. This technique is called Fast Tracking.
In reality, it means that you will try to start an activity while it predecessor is not yet finished.
But here is the deal:
Usually, it causes rework and introduces a lot of risks. You would need to communicate a lot even if you planned these activities thoroughly. Be ready that there will be a lot of conflicts and defects. You will have to manage them closely to keep the work running.
Also, Fast Tracking introduces long-term drawbacks. Quite often it includes violation of processes and making shortcuts. This way or another you will end up with technical, quality or documentation debt. After extended periods of fast-tracking be sure to find time and efforts to catch up.

Iterate After Risk Management

There was one thing that confused me a lot. Project Schedule is the input to the Risk Management processes. However, you address risks and develop risk response plans much later, closer to the end of the planning.
So, at this moment, you develop a draft of a schedule. There may be many drafts of the project schedule. Planning is an iterative process. Once you find out more details about the project, you need to get back and validate all previous results.
You can finalize the schedule only when you performed risk management activities, adjusted the project management plan, finalized the budget and scope.

Know What You Need to Produce?

Project Schedule shows start date, the end date, duration, and dependencies of each activity.
Gantt charts, milestone charts, network diagrams are just visualizations.
Each of them has its own use.
Gantt Chart is useful for tracking progress and reporting it to the team.
Milestone Chart is for reporting to senior management.
Network Diagrams show interdependencies between activities.
Choose appropriate representation of the project schedule to your purpose.

Put Stakeholders on Your Team

As a part of a project management plan, project schedule should also be approved and baselined.
To reduce the stress and risks at the end, collaborating with key stakeholders early on. It is a good practice to get feedback on first drafts of the schedule. They might help you to find weak spots and identify more risks.

Five reasons why your home will be the office of the future by Keith McNulty

Source -

Employees may be happier and more productive when they can work from home

We may well end up in a place where it's more unusual to work in corporate offices, and working at home will be the most common model. For example, not too long ago I received outreach from a recruiter in a small but very well reputed firm enquiring of my interest in a role there. When I asked about working location I was surprised by the response - the firm was entirely virtual.
Here's five reasons why I think tomorrow the office will become yesterday's news.

1. Work is becoming more virtual

Wayne Cascio, writing for SIOP, states that 'for many employers the virtual workplace, in which employees operate remotely from each other and from managers, is a reality now, and all indications are that it will become even more prevalent in the future'. In situations where work is location agnostic, the only incentive to base staff in a specified location is their access to the technology they need to do their jobs productively.

2. Work technology is becoming more democratized

When I started working at my current employer, email was only available on your computer. The office was the only place you could get true broadband internet speeds. Voicemail and telephone was the only way to communicate urgently because there were no handhelds. Videoconferencing was a rare and exotic medium of communication, and VOIP was still 10 years away.
Now I get speeds at home that are up to 20 times the speed of the office, which allows me to operate my virtual office phone and join video conferences seamlessly. Email and messages are transferred on the move. I'm not saying it's like this for everyone, but for a growing number of people the technological incentive of the office is gone - you can get everything you need at home!

3. Real estate costs demand greater efficiency of space (Well, kind of!)

Knight Frank reports that office rental costs have soared in many major cities like Beijing, San Francisco, Melbourne and Sydney. No doubt this forces some serious thinking about space allocation and how to minimize total square meters. When it comes to home working, why should policy get in the way of substantial cost savings?
Despite the challenging economics, however, the same report notes that 'the trend is towards a workplace that increases staff satisfaction, with features that make the whole work experience more pleasurable, from games rooms to free food and yoga areas. Fit-out is changing to match how people work, with informal meeting areas displacing desks.' For many, in environments such as these, privacy to discuss confidential business or to have time for thought becomes hard to find. Some will find the peace they need at home. 

4. Home working can positively influence diversity, satisfaction and retention

Employees who have the option of working from home are likely to be happier in their work. As a benefit, home working flexibility is a source of competitive advantage for employers, making it less likely that employees will leave for fear that they will not have the same flexibility elsewhere.
This benefit can be of particular value to high risk diversity groups such as women with young families, giving them a more viable way to continue to achieve a work-life balance during an often challenging and demanding time in their home life. It might make for more attractive economics also (e.g., lower childcare costs).

5. More time, better used at home

Not only does home working cut out commuting time, often more than 2 hours a day for people living outside major cities, but there is increasing evidence that time is spent more productively at home.
study by Canada Life in 2014 showed that employees believed themselves to be more productive at home, with a productivity rating of 7.7 out of 10 versus 6.5 out of 10 for office workers. There were also fewer sick days taken by those working at home (1.8 in the previous year versus 3.1 for office workers).

I'm not saying that working at home is always the best thing - there are clearly challenges in doing so. If you have others at home with you such as young children, it can be hard to manage boundaries (remember this?). It can also be isolating from your colleagues and work community if you do not have regular in person connection. But that aside, there is still a lot of untapped value for both employers and employees in home working arrangements. Have you tapped into it yet?

Data Analytics Basics (introduction) by Tomi Mester

Source -

You might have heard, that Data Scientist ranked as the best job of 2017 in the USA (based on Glassdoor’s research). Recently many IT professionals started considering to move their career path towards Data Science or Data Analytics. University students are looking for data related internships – even if their major is not related to it. And even project/product managers want to learn the data analytics basics to bring better data-informed decisions. Are you interested to learn more about the basics of data analytics too? Then this article is for you! I’ll just summarize here the most fundamental topics for first timers.
Note: If you have questions/suggestions to expand this article, feel free to ask in the comment section below, and I’ll answer!

Why is Data Science/Analytics important?

data analytics basics - you know nothing
We know nothing either. Without data at least.
Have you ever had this experience: sitting on a meeting, arguing about an important decision, but each and every argument is based only on personal opinions and gut feeling? And if you asked “why”, the only answers you’d get:
  • “because we have done this at my previous company”
  • “because our competitor is doing this”
  • “because this is the best practice in our industry”
You could answer:
  • “Your previous company had a different customer base and solved a different problem. Why would we use the same strategy here?”
  • “If we don’t know, why we are doing things, why would we suppose, that our competitor does?”
  • “Our world changes faster than ever. There are no industry standards anymore – just trends, and if you are the one who can react the best and the fastest to these trends, then – and only then – you’ll win.”
Afterall, the only real answer for the “Why do you think this is the best strategy?” question is, that: “Because this is what the data suggests.” And an important way to learn what the data exactly suggests is to do data analyses.

What is Data Science?

Data Science is the combination of these three skills:
  1. Statistics / Mathematics skills
  2. Coding skills
  3. Domain Knowledge / Business Knowledge
data analytics basics - statitics coding business
Data Analytics Basics: Statstics + Coding + Business Thinking
To be a fully featured data professional, you have to be good at all three!
I think I don’t have to explain why Statistics is important. Data is about numbers – and when you are working with numbers, you have to be confident with statistical and mathematical concepts.
Coding skills are required, because the data you will work with is often hard-to-access, broken, messy, has missing values and so on. Fix these things in an Excel spreadsheet… well, not so easy. Coding will give you full flexibility, thus it’s a must-have skill if you are seriously thinking about getting familiar with the data analytics basics.
Domain knowledge and business thinking is a soft factor, but just as essential as statistics and coding. If you don’t have the business sense, you won’t be able to evaluate, whether your data project makes a difference or not!

Data Coding – What languages to learn?

Note: it’s possible that as a data analyst you are not coding at all, but using smart tools like Google Analytics, Heatmapping tools, A/B testing tools, etc. instead. Still, I strongly recommend to learn coding. In this article I’ve summarized the pros and cons:Data Coding vs. Smart Tools.
If you start to learn coding and the data analytics basics, I recommend to begin with any of these four languages:
  1. SQL
  2. Python
  3. Bash
  4. R
In fact this is the particular order, that I personally would advise everyone, who’s new to this field. Why? Let’s take a look at the languages one by one first:

SQL for data analytics basics

SQL is a super-simple query language. Well structured and easy-to-interpret. I think, that learning the basics of SQL for Data Analysis could happen in net ~15-20 hours (that contains a fair amount of practicing too). If you are interested, here’s a free 6-article tutorial series: SQL for Data Analysis ep#1.
Syntax example for SQL:
SELECT * FROM my_datatable WHERE something = 'my_value';

Python for data science

Python is easy-to-interpret and easy-to-learn as well, but much more complex, than SQL. Of course, that’s not the only difference between the two languages. I won’t go in details here, but let’s just say, that Python is better for certain data tasks, and SQL is better for others. When it comes to Python, it’s really good with scientific things, like predictive analytics and machine learning. Not an accident, that it’s one of the most widely used languages by data scientist. Learning the basics of Python can take a bit more time (~100 hours for reaching a solid, but not yet advanced level.) If you want to get started, here’s my Python for Data Science series: Python for Data Science ep#1.
Syntax example for Python:
new_variable = my_table[my_table.something == 'my_value']

Bash for data server operations

To be honest, if you build up a solid SQL and Python knowledge, that will be already good enough to kick off your data career. But if you are really into this, I can recommend to learn bash, because that will be the language that you will use to move data files, give user permissions, automate scripts, and other cool things – on your data server. Here’s my Data Analytics in Bash article series: Learn Bash for Data Analysis ep #1
Syntax example for Bash:
cat file.csv |grep 'my_value' > new_file.csv

R for data science

R is really similar to Python – just a little bit more challenging to learn. It’s originally developed by Statisticians to Statisticians, and as a consequence you can feel the twisted (but pragmatic) logic. R’s learning curve is steeper, but once you have learned it, you will see that it’s the most advanced language to do complex statistical tasks.
Note: to be honest I barely use R, because Python serves all of my needs in my data projects.
Syntax example for R:
new_variable = subset(my_table, something == 'my_value')

Data Analytics Basics Video Course

Maybe you have more questions about the details… Like:
  • Why do we have more than one data coding language?
  • What’s the difference between R, SQL and Python?
  • What’s the difference between a Data Analyst and a Data Scientist?
  • What do they do on their day to day job?
  • How can you learn about Business thinking?
data analytics basics - oreilly courseIf you want to get answers to all these questions (and more), check my short (but sweet), 1-hour O’Reilly video course: Data Science Fundamentals for Marketing and Business Professionals.