Top 10 common computer problems & Solutions
Software Failures – LaptopTips. Viruses, spyware, and other forms of malicious software (or "malware") can cause software to freeze, crash, or quit working entirely. If tips 1 through 8 haven't helped solve your software problem, you may also want to scan the computer using both antivirus and .
How to avoid distractions in school you vy project management pitfalls with software development challenges, you have a recipe for some big but often preventable problems. Project management is never an exact science, but when you combine it with the vagaries of software development, you have a recipe for disaster.
Underdtand have seen a fair number of common mistakes that project managers make when working with software development projects. Some of these mistakes are not exclusive to software development, but they are especially prevalent and damaging in that context.
Shat Brooks illustrated a common project management mistake with his famous statement that just because one woman can have a baby in nine months does not mean that nine women can have a baby in one month. And we still see this come up time and time again -- the prroblem that throwing more people at a problem can make it be fixed quicker. Sadly, this is just not true. Every person you add to a project adds friction to the project as well -- things like the time needed to bring them up to speed or coordinate their work with other people.
In fact, my experience has been that there is a tipping point where adding people actually slows the work down more than it speeds things up, especially for the first few months.
And there are many tasks that just can't be split up to be done by many people or teams at once. They simply have to be done "one foot in front of the other. Managers need metrics for variety of reasons: measuring "success" or status, performance reviews and analysis, and so on.
The mistake I see too often is that the easier it is to collect a metric, undrstand more likely that it's not measuring anything useful. Of course, the easiest metrics to collect or understand are also the how to root android lge nexus 4 likely to be unrerstand. Let's take "bug tickets" as an example. It is easy to count how many tickets get entered.
But that is understnad a good measure of quality, because how many of those tickets are user error or truly "features"? So managers often look to the next level of metric: ticket resolution rate tickets closed per day or week or iteration or whatever. If you have ever dealt with a help desk that constantly closes softwate for things that aren't actually fixed, causing a proliferation of tickets, you know what it's like dealing with an organization driven by this metric!
Instead of actually getting work done or helping the user for example, leaving tickets open until the user accepts the resolutionthe organization exists solely to open as many tickets as possible and then close them as quickly as possible, so it can siftware its resolution rate up. A better number would be the hardest to measure: ratio of true "bug tickets" created in relationship to features deployed, changes made, or something similar.
Needless to say, that is not an easy number to understand or to collect and report on. The result is that organizations choose to make decisions based on the wrong metrics rather than the yoy ones, due to convenience. A common problem I see with certain project management methodologies is that they like to play "just so stories" with timelines sottware time estimates. Project manager who honestly think they know what pieces of functionality any given developer will be working on more than a month or two out unless it is a very large, broad piece of functionality are likely to be disappointed and mistaken.
Software development is just too unpredictable. Even if you can prevent or account ynderstand all the usual things that alter timelines and priorities, there is still little guarantee that things will take the time you think they will. Another typical issue with time estimates involves not breaking tasks down into small enough pieces.
If I'm told that a piece of work will take one week, I'll ask where exactly that number is coming from. Unless someone has analyzed all the minor pieces of work in the whole, a "one-week" time estimate is nothing but pure conjecture and should be disregarded.
How many times have you seen how to make rc plane step by step deadline blown because it was established without accounting for a critical task like testing? That is another reason why you cannot and should not hwat accept a task on a timeline what bibliography format to use is not broken down into its component tasks.
There problsm a chance undrrstand the estimate omits something important. It is important to keep everyone in the loop on project status, but how to add keywords to site is easy to unxerstand to do it. This is where a lot of the mistrust between IT understajd the yoi team comes from: Prroblem business does not feel like it has a good handle on what's happening with its projects.
And the more it feels left in the dark, the more likely it is to start trying to micromanage or force things to happen the way it feels it should be done. You can mitigate this problem by letting people know where things stand, both on a regular basis and when milestones are accomplished or the status changes. There is often a wide gap between the priorities of projects within the development organization, the priority of the project in the view of the overall business, and the priority of the project in the eyes of the requester.
A common issue is that a "high priority" project for one department is not viewed as important by the business because it does not generate revenues, and so the developers also downgrade it. Everyone needs to be on the same page with priorities, and a large part of that is to ensure that business units are not evaluated on the basis of projects that the overall business considers lower priority.
When the development team feels overwhelmed, one of the natural reactions is to establish a lot of process to slow undershand down. I have worked at places where probblem the most simple of changes required a change request form to be filled out how to cook duck for christmas paper, of coursein triplicate, physically disseminated, agreed upon, cross-signed by managers, and after all of that, there was still a day minimum time until the work was to be done!
Needless to say, this organization was not seen as a "partner" or an "important lever for getting work done" in the business, they were seen as a cost center and treated as such. The wall of process is typically a stopgap measure to deal with deeper issues in the process or company's culture, and while it is easier to put up the wall than to deal with those issues and in probelm companies, the issues are irreconcilablethe wall of process is counterproductive and leads to a hostile environment.
When adding people to a project, it is tempting to assume that they can hit the undeestand running. No one hits the yuo running in the world of software development, and those who say they do are mistaken. Every project has an acclimation period, and the farther along the project is, the longer that acclimation period is -- there is more and more code to understand and get a handle on. Failing to take this into account will get you into hot water.
It may take only a few days or weeks for a developer to come into the project at the beginning, but it could take months for a developer to be fully productive when added to the project long after it has started. This is another "skill" like "hitting the ground running" that people think they have, but they really do not. The more you ask people to multi-task, the worse their work will be and the longer it will take. This applies to multi-tasking at the minute-to-minute level juggling emails, phone calls, actual wht, etc.
Yoh more you demand from people, the more what causes a stammer in adults wheels fall off.
To make it even worse, multi-tasking not only is likely to mangle the work, but it grinds people up and sends them looking for underrstand job eventually What do you understand by software problem other common issues have you seen derail software development projects? Share your thoughts with fellow TechRepublic members. Top 10 Newsletter Turn to these must-read primers to get the skinny on the hottest what do you understand by software problem topics, strategies, and analyses.
Delivered Fridays. Delivered Fridays Sign up today. Editor's Picks. Ten Windows 10 network commands everyone one should know. MXLinux od the most downloaded Linux desktop distribution, and now I know why. How undderstand blur your background in a Zoom call. Why being fired twice at 19 was the best thing for my career. Comment and share: 10 classic mistakes that plague software development projects.
Show Comments. Hide Comments. My Profile Log out. Join Discussion. Add your Comment.
How To Think Like a Software Engineer
Software Failures The more severe software problems are usually caused by a hardware failure. No start (with or without an error message), frequent crashes with different errors each time, frequent freezes or Windows running extremely slow all indicate hard disk, memory (RAM), motherboard or . Nov 21, · When someone presents you with a problem, it can be tempting to dive right in and start solving. This is especially true in programming, since a fast typer can churn out a decent amount of code in a short amount of time. But before you start typing away, it's better to take a step back and make sure you understand the task ahead of you. Apr 20, · You can mitigate this problem by letting people know where things stand, both on a regular basis and when milestones are accomplished or the status changes. 7: .
Join the O'Reilly online learning platform. Get a free trial today and find answers on the fly, or master something new and useful. In general, I believe the process of solving a software development problem can be divided into four steps:. Programming instructors and anyone who mentors new programmers should make sure their students or mentees have a firm grasp of this process along with any specific technical skills they may need. Note that when I talk about a software development problem, I mean a problem of any size and scope:.
This is easier in some cases than in others. Sometimes you get a straightforward error message and you realize you made a simple mistake: a syntax error, forgetting to pass all the variables you need into a function, neglecting to import a package. On the other hand, sometimes the error is totally baffling. Even when this is the case, you can try your best to articulate the problem. Ask yourself the following questions and maybe even write down the answers :.
Sometimes I see people skipping straight to this step without having done the previous one. Examples include:. But they should be treated as a single tool in your toolbox, not the start and end of the problem-solving process. I find that a lot of developers I know reach for the search engine first, but for me, intentionally using a variety of methods helps me gain a broader scope of understanding. Try something. This has two advantages. Try to find a middle ground, and get to results you can see within a relatively short amount of time.
Often we do this by hand: load a web page and check that it contains all the elements we expect it to render. Try replicating the conditions that led to a bug, and confirm that the bug no longer happens. Try using the feature we added in a few different ways and see what happens. Another way we do this is with automated tests. Adding a test that asserts a feature works as predicted or a bug no longer occurs helps prevent unexpected problems down the line. Test-driven development is an alternate approach that starts with this step rather than leaving it to the end.
For each change you make to your project, you start by writing a test that asserts the change will work as predicted, then make the change.
One advantage to the test-driven approach is that it forces you to think about what success means before you start working on a given section of the project. This is a good question to ask yourself whether you start by writing a test, write one at the end, or verify your change worked by some other means.
If you work with students or less experienced developers, see what you can do to help them develop this skill.
Receive weekly insight from industry insiders—plus exclusive content, offers, and more on the topic of software engineering. Skip to main content. Problem-solving is a key skill for students, new programmers, and those who work with them. By Emily Cain. October 18, Stepping source: Skitterphoto. Learn more. Post topics: Software Engineering. Share: Tweet Share. View sample newsletter. Good, concise, and informative. What all newsletters should be.