5 Reasons Your Best People Might Quit in 2017

Communication - SeniorDBA

As a manager, you have to be thinking about the people that work for you all year long, but the first of the calendar year can be a time when some of your people decide to make a career move.

Understanding their motives and reasoning for this thinking, you have to look at the most common reasons for moving to a new job.

  1. Lack of Communication – Good communication can mean different things to different people. Some people might need much more face-time than some of your other people. This is a significant risk at the end of the year when the traditional holiday season might distract your team and prevent the same level of communication as they might get during the rest of the year. If you’ve been neglecting your team, apologize to them explain how you plan to be a better communicator this year.
  2. No Transparency – We all say we value transparency and make everyone to be authentic and honest. We need to look at how we communicate with our team and make sure we are keeping them in the loop about what is happening in the company. While everyone understands their must be some information they just can’t know about today, your team must feel you aren’t keeping secrets from them. Verify you use clear and open communication with everyone on your team, and stress that they can come to you about any concerns they have.
  3. Boredom – It can be easy to keep your best people assigned to perform the the same tasks every day. You can’t wait for someone on your team to request new or challenging tasks. You should be constantly nudging your team members to do something new or something that makes them unsure about their skills. Great employees want to be challenged and you want great employees. Look for ways to force individuals to expand their skills or use their skills in a different way.
  4. Flexibility – People are always looking for more flexibility in the way management deals with them and their relationship with the company. This includes the ability to work remotely, the ability to use new tools, or a desire to explore more workplace perks. Talk to your people and make sure you understand what is important to them and them work help make it possible.
  5. Stagnation – While some people are perfectly happy in their current position, many want to grow and learn new skills so they can seek promotion and greater responsibility. You will need to find a way to help them grow by providing constant feedback and, when possible, a mentor to help your people realize their dreams.

Microsoft researchers on what to expect in 2017 and 2027

Future Technology - SeniorDBA

Predicting the future can be difficult. You can see what is possible today, but something unexpected can happen tomorrow that can quickly change the future. When predicting the future of technology, it is critical to get the opinions of those people already working on future technology, like the folks at Microsoft Research.

This article provides the comments from various members of Microsoft Research.

What will be the key advance in algorithms for machine learning in 2017?
Deep learning is transforming many aspects of our technology, however deep learning algorithms today are still largely heuristic, based on the experience and intuition of leaders in the field. In 2017, we will develop a more principled understanding of deep learning and hence more robust algorithms. The insights here will come from many fields, including the intersection of statistical physics and computer science.

What will be the key advance in virtual reality in 2017?
In 2017 we will see the emergence of virtual reality devices that feature better body tracking. A positive outcome of this will be the ability to experience embodiment of virtual avatars from a first-person perspective.

What will be the key advance in artificial intelligence and machine learning in 2017?
In 2017 computer games will take center stage in the development of AI. Experimentation platforms based on games, such as Project Malmo — which my team and I have developed to enable AI experimentation in Minecraft – will allow for rapid testing of new ideas. I am especially excited about the potential for collaborative AI. We are now at the point where we can start to understand how AI can learn from us and collaborate with us to help us achieve our goals.

What will be the key advance in mathematics and cryptography in 2017?
New mathematical solutions allowing for computation on encrypted data will be deployed to protect the privacy of medical and genomic data for patients and hospitals.  The new homomorphic encryption schemes will secure the data while allowing the cloud to compute on it to make useful risk predictions and provide analysis and alerts. Homomorphic encryption will be deployed soon in the financial sector to protect sensitive banking data.

What will be the key advance or topic of discussion in programming languages and software engineering in 2027?
By 2027, the majority of software engineers will be facile in programming systems that reason about estimates and produce models with statistical methods.  This sea change will deliver applications that seamlessly integrate sensors, machine learning and approximation to interact with human beings in entirely new, meaningful and correct ways.

Tips and Tricks for Active Directory Management

Active Directory - SeniorDBA

Managing Active Directory is essential for your network security. Here are a few tips to help you better manage your Active Directory:

  1. Disable the default Guest Account – This is a security best practice recommended by Microsoft. Disabling the guest account can protect you from simple and very basic attacks. It is also an item that security auditors look for to verify you are using security best practices.
    1. Log on as a member of the Domain Admins group, and then open Active Directory Users and Computers.
    2. In the console tree (left pane), click Users.
    3. In the details pane (right pane), right-click Guest, and then click Rename.
    4. Type the fictitious first and last name and press Enter.
    5. Right-click the new name, and then click Properties.
    6. On the General tab, delete the Description “Built-in account for guest access to the computer/domain” and type in a description to resemble other user accounts (for many organizations, this will be blank).
    7. In the First name and Last name boxes, type the fictitious names.
    8. On the Account tab, type a new User logon name, using the same format you use for your other user accounts, for example, first initial and last name.
    9. Type this same new logon name in the User logon name (pre-Windows 2000) box, and then click OK.
    10. Verify that the account is disabled. The icon should appear with a red X over it. If it is enabled, right-click the new name, and then click Disable Account.
  2. Rename the default Administrator account – This is an essential security best practice. One of the first things a malicious user or hacker will do is look to compromise the default administrator account. You want to hide the default account by renaming it to something other than the default name. It is also an item that security auditors look for to verify you are using security best practices.
    1. Log on as a member of the Domain Admins group, and then open Active Directory Users and Computers.
    2. In the console tree (left pane), click Users.
    3. In the details pane (right pane), right-click Administrator, and then click Rename.               Actrive Directory Users and Computers
    4. Type the fictitious first and last name and press Enter.
    5. In the Rename User dialog box, change the Full name, First name, Last name, Display name, User logon name, and User logon name (pre-Windows 2000) values to match your fictitious account name, and then click OK.                                                 Rename User
    6. In the details pane (right pane), right-click the new name, and then click Properties.
    7. On the General tab, delete the Description “Built-in account for administering the computer/domain” and type in a description to resemble other user accounts (for many organizations, this will be blank).                                                  Karen Berg Properties
    8. On the Account tab, verify that the logon names are correct.
  3. Maintain Physical Security – People will often focus on system security when thinking about ways to secure your Active Directory, but physical security is also required. Make sure people can’t just walk up to your Domain Controllers and attempt to bypass your security. If there are places where you can’t prevent physical access then consider turning that instance into a Read-Only Domain Controller.
  4. Disaster Planning – Disasters will happen, and I’m not just talking about fires, hurricanes, earthquakes, and tornadoes. What will you do if you find out an entire OU, containing 100 users, was deleted by mistake last night? Do you have a plan on how to resolve that issue, or are you expecting to just know all 100 users names, security settings, etc. as well as making the time to contact each user and help them log into the network with their new password and verify their network security setting are resolved? This could take days to resolve and it would be a PR nightmare.
  5. Prohibit Shared Accounts – Never allow anybody to share accounts, especially if the account has administrator privileges. It is almost impossible to determine who performed what action if multiple people are sharing a network account. It also creates security problems when someone is terminated that might know the password.
  6. Documentation – You can’t allow the Active Directory structure to grow uncontrolled and without a plan. Document the system, and keep the document updated. By creating a structure with basic logic and control, you are less likely to allow random changes that make no sense and people will never understand. Use the description fields in the tool to make this easier, but also an external document that explains the current status and reason for the structure.
  7. Delegate Responsibilities – Don’t allow just one person to perform all the Active Directory work. Even if your backup resource is only available one or two days a week, at least they are familiar with your AD structure and corporate procedures. One day you will find that backup resource a safely net that could save the day.
  8. Single Purpose Servers – You Domain Controller should be used only for user authentication, which is Active Directory and even DNS. Don’t install other applications or utilities, including products that can lead to security vulnerabilities like Adobe Reader, Microsoft Office, and Java.
  9. Beware Storing Extra Data – There are many fields available in Active Directory, including fields like address, telephone numbers, etc. It can serve a business purpose to complete some of these fields, but you must be careful when making a decision about who should have access to this data to prevent privacy or security issues.
  10. Delay Changes – Never allow yourself or others to make changes to your Active Diretcory before the weekend. Unless it is a required change that must be made on a Friday afternoon (a user termination is a good example) then wait until Monday to make the change. It can take days for a mistake to be uncovered, and you would rather deal with those mistakes during the week than on your precious weekend.

5 Tips for Small Business IT Security

Communication

Running a small business can be stressful enough without worrying about technology issues and dealing with system security. It can be difficult to know where to start and what steps you should take with a limited budget and a small team of professionals.

These basic guidelines should help you understand where to start and what steps need to be taken.

  1. Manage risk – Start by asking what information is most important to your business and what steps need to be taken to protect that information. Think what would damage your business if it was available to the public, like business logic or customer lists. What can you do today to protect that information?
  2. Training – Determine the strengths and weaknesses of your team. If you don’t have an internal resource, hire someone to educate your team on the correct way to protect your critical data and how to identify common attacks, like email phishing and malware attacks. Create policies about social media and make sure your team understands how to use it in a secure way to protect the company.
  3. System Updates – It takes considerable effort to keep yourself educated about new cybersecurity threats. It also takes effort to keep your computer systems updated to address the latest threats. Spend some time making sure updates are applied to user systems.
  4. Routine Backups -System backups are the cheapest safety net you can ever have. Create an environment that encourages frequent system backups of critical systems. Once you identify those systems that are essential, verify the backup method works and test that the backups can be restored. Ransomeware can encrypt your entire network, blocking your access to critical data and systems, but an effective backup system can allow you to completely replace a compromised system without losing any data.
  5. Hire a Professional – While it can be attractive to solve all your technology problems yourself, you should investigate if hiring a professional is a better option. Even a part-time employee, or a consultant solution, can add significant value to a technology project. Finding someone you can call to solve immediate problems, like a crashed system, can allow non-technical employees to focus on the business outside of learning about technology. One data breach could cost you your business much more than you will spend on a qualified professional.

Kanban vs. Scrum

If you are wondering if you should move from a traditional Waterfall development methodology to something new, but can’t pick between Kanban and Scrum, here is some information that might help.

Kanban

Kanban is a simple methodology that focuses on the tasks your team is currently performing. The tasks are displayed to all participants so you and your team can track the progress and easily see what tasks are currently active. A good practice is to organize your development process using a Kanban board to show the status of each task, from “to-do”, “in progress”, “testing”, “ready for release”, and finally “released”. This simple methodology gives the team more flexible planning options, a clear focus on specific tasks,  transparency on what is coming next, and a faster output by helping them focus on just a few tasks at any one time.

The team should concentrate only on the tasks which are currently emphasized by being marked as “in progress” . Once a task is done, the team moves on to the next item at the top of the backlog, marked as “to-do”. The product owner (traditionally a manager) is free to change, re-prioritize, and even re-organize the tasks in the backlog as any changes outside the current “in progress” list won’t seriously affect the project.

Team members are given the responsibility to focus on the active “in progress” tasks and are expected to work only on those tasks. The methodology works well for unexperienced personnel and even teams that have just started working together. It is flexible enough to allow teams to reassign tasks between team members or reshuffle tasks based on what each person feels like working on today.

It seems to work best when:

  • Focused on continuous delivery
  • Helps improve productivity
  • Personnel need help adapting to change
  • Shorter time between task assignment and expected results
  • New or inexperienced personnel need to be productive

Scrum

If you need a lightweight development framework to manage complex development efforts, you are probably looking for Scrum. This method is iterative and flexible strategy involves the whole team, working as a unit to significantly increase productivity. Scrum is a simple set of roles, responsibilities, and meetings. that helps helps the entire company cope with changes, provide better project estimates, and increase the quality of the solutions delivered. The work done by the development teams is performed in a series of fixed-length iterations called “sprints”.

A sprint is a period of time during which a specific work should be done and ready for preview. The duration of each sprint is fixed and agreed in advance, usually between one and four weeks. Each sprint starts with a planning meeting, and during the sprint the team must attend a short daily scrum meeting, usually at the same place and time every day.

Scrum has just three specific roles: Product Owner, Scrum Master and the Development Team. Since your scrum team is cross-functional, your development team will include include, developers, designers, testers, technical writers, and anyone else that will be involved in the sprint.

The Product Owner represents the process owner and will set the priority of the assigned tasks, sprint duration, and determine the tasks assigned to each sprint.

The Scrum Master keeps the development team working on the proper tasks and helps identify items that are slowing the team down or blocking expected results. If the Scrum Master sees something that needs attention, the Scrum Master and Product Owner meet to decide how they should resolve the problem to get the tasks done correctly and finish the sprint as planned. The development team is mostly self-organized and responsible for the completion of their assigned tasks.

It seems to work best when:

  • Experienced development team needs little or no supervision
  • Project is long and complex
  • Focused on continuous delivery
  • Business requirements are constantly changing
  • Continuous feedback to corporate management is required

 

5 Tips for Dealing with Project Manager Stress

Project Management Stress - SeniorDBA

Most people know that the role of Project Manager is one of the most stressful jobs, because they are directly responsible for the success of a project and accountable for any delays. Some Project Manager actively cope with their high level of stress, but there are still someProject Managers who are ignoring the problem. Stress can impact you ability to perform at your best, and it can have a negative impact on your personal health and family life.

People might not able to alter the amount of stress a daily basis, but they can change how they deal with it.

  1. Prioritize – Determine what is truly important by creating a priority matrix and assigning every task an urgency and importance. Focus on the tasks that are urgent and important, and learn to let the little stuff go until your attention is required.
  2. Measured Reactions – Don’t react to events and allow your emotions to control your personality. If something bad happens, force your mental reaction to truly match the severity of the event. Not everything is a disaster, some events are just annoyances, and you should deal with them that way.
  3. Exercise – There are numerous studies that show exercise can help reduce your level of stress, and it has positive health benefits. Don’t look at exercise as as an option when you have time. You should schedule time to exercise just like any other project task.
  4. Stop Endless Debates – Discussing the pros and cons of an issue can be helpful it determining the best course of action or your project team. If you find yourself in an endless debate on what is best, surrender the battle and move on to the next problem. This will help lower your stress and conserve your energy to fight a different battle on another day. Know when to say when and stop fighting.
  5. Don’t “Over Think” Events – Don’t allow your mind to churn through all the “what ifs” or possible options, because that will just keep you stressing over events and worrying if you choose the best option. Focus on right now and them move on to the next issue so your mind doesn’t get stuck wondering about possible actions and building useless stress.

10 Ways Project Manager can Earn the Respect of Their Team

Project Manager - @SeniorDBA

As a project manager, you may not care if you are liked but you do care if you are respected. How do you earn the respect and trust of your team?

  1. Acknowledge Ignorance – If you don’t know the answer to a question asked by your team, don’t make up an answer.  Your team will respect you much more if you tell the truth and offer to find an answer than if you are caught lying about knowing something that later turns out to be untrue.
  2. Treat People as Adults – You team members my act childish at times, but you are not their parent. You are the project manager assigned to get business done. If you feel like someone needs some constructive feedback, treat them as you would want to be treated and show them respect.
  3. Don’t Stereotype – Don’t assume you know about someone based on prior experience or by grouping all people together as the same because of they have the same job, same skills, or same background. Nothing kills respect faster than you assuming everyone is the same and acting like you have someone figured out without getting to know the individual.
  4. Make Yourself Useful – People respect someone who adds value to the project. If all you are to the project team is someone who shows up asking for a status report, you don’t have any perceived value to the team. When meeting with the team, start by asking them about the work they are doing, what tasks they need more information about, or what you can do that will help them get their work done on time. Be someone they know they can call if they need help, someone who cares about their problems, and the person who can offer possible solutions.
  5. Allow Wasted Time – No person can work at 100% all day everyday and not burn out. If you expect your team to do that you should also expect to never hit your deadlines and have a high turnover rate. Don’t expect your team to work at 100%, except when it is absolutely required. Allow people time to think, research ideas, talk to the team about non-project items to build morale, and time to work on non-project related tasks.
  6. Solve Problems before the team is impacted – This is related to item #4, but don’t go to the team and tell them requirements have changed and we need to find a way to get the new work done on the old timeline. You, the project manager, need to have formulated a plan to get the new work done on an acceptable timeline and present the new plan to the team in a way they understand this is the best possible plan with the least impact to their tasks. They will respect you as a problem solver looking out for their best interests.
  7. Facilitate Communication – A a representative for the company and the customer’s problems, you need to bring ideas and facts to the conversation about how to handle problems or resolve team conflicts. Amplify the best solutions, bring everyone to the discussions, and embrace good alternate ideas. You shouldn’t care if you had an idea first, just who has the best idea. Give credit to the team member with the idea that solves a problem, even if you had to do most of the work to turn the idea into an actual solution.
  8. Embrace Success – If you only focus on the tasks that are late or the budget overages, the team will always have the sense that they can never be successful or will ever meet your tough expectations. Make sure you know what is going well and you communicate that success to your team and to your management. There will always be those times when things don’t go well and the team needs to do better, but don’t always focus on the bad news.
  9. Stick to Your Guns – You know what is right and what is wrong, and don’t do something wrong for the wrong reasons. Work with your team and always be looking for ways to help your team do more, but don’t allow someone to talk you into taking a shortcut that will eventually make you or the team look foolish. This includes illegal or unethical actions. The Project Manager is supposed to stand between the team and corporate management to protect the team from stupid ideas, just make sure you are fighting for the right reasons.
  10. Have Fun – Don’t forget that you need to have the ability to enjoy your job and have fun. If you are stressed and hating your job, the team will detect that unhappiness and start emulating your bad attitude. That can destroy the team and even make them not respect you.

Did I forget to put anything on the list? Let me know in the comments.