1. Not understanding the user’s needs. Lack of user input, or not even asking. 2. Underestimating the size of the project. 3. Rushing through the planning stage, or avoiding the planning all together. Code first, plan later! BAD! 4. Not testing early enough, often, or at all! Make it a habit! 5. Choosing the “Cool” methodology at the time, vs. one that has worked in the past. Which leads into my next point… 6. Not using a methodology. 7. Letting a software developer run the software development project. 8. Bored, unmotivated team! You have to motivate your developers! If you can’t motivate, don’t bother trying to lead. Your team will fall asleep, literally. 9. Planning on catching up later. You won’t… don’t even think it! 10. Non Source Control! Ouch.. not good people… and no, just installing a software package is not it… 11. Deciding to switch your development tools when you’re already into the project. 12. Allowing feature creep. Just say NO! Everyone will be happier in the end. 13. Omitting necessary tasks to shorten the project plan. Really, what’s the point of doing this? 14. Insufficient management controls in the development project. 15. Lack of high level business sponsorship. 16. Adding people at the end of the project to “speed things up”. You will only slow things down… 17. No unit testing. Heck if you can do it, use Visual Studio Team Foundation Server and set up some automated testing nightly. 18. Stressed out software developers. If you have managed to perform even one or two of these software development mistakes, you will have a stressed out bunch of programmers to deal with! 19. Lack of error handling. 20. “Off by one” errors. These happen a lot during the software development process.. *sigh*. 21. Typos… Just use option strict and explicit please.. during one software development project, which I was on as a consultant, they were getting ridiculous amounts of errors everywhere… turned out the developer couldn’t spell and would declare variables with incorrect spelling.. no big deal, until you use the correct spelling when you’re assigning a value to it… and you had option explicit off. Ouch to them… 22. No understand the deployment or hardware the software is to be installed on. Ohhhh it’s for a Macintosh… lol. Well hopefully not that bad, but you get the point. 23. No naming style or code conventions. Honestly it doesn’t matter what you use… as long as you are consistent with the rest of the team, and hopefully at least yourself. 24. Using global variables everywhere. These are NOT your friend and hog memory like nothing you have ever seen before! 25. Not asking for help at all during the software development process. If you’re stuck, don’t fight with it for hours on end! Ask for help! 26. Not commenting your code. 27. Hogging all information to yourself. You think you’re more valuable this way? You’re actually not and there is a plan brewing to get you kicked off the development project, and possibly out of the company. You might want to brush up your sign “Will code for pizza!”. 28. Performing database operations at the application layer instead of the database layer. Not only is this putting the processing juice on your application instead of your server, but you have put your database at risk of data integrity issues, and getting bad data! Some of my hipster cool friends are always saying “It’s alllll good”, well, if your database can be caught saying this… and If everything looks good to your database, then you should be worried. It is NOT all good! 29. Not validating your data! Yikes… Yes.. let’s just assume all the data is perfect! NOT! 30. No load testing. What.. This is supposed to run on 1,000 user’s machines through Citrix? Interesting… Shouldn’t be an issue! lol… NOT. Credit goes to Original Author : http://www.realsoftwaredevelopment.com/
Mistakes what we are doing frequently in Software Development
Software Development Benedict Alphonse Sunday, May 31, 2009 0 comments
Software Developer - Must Know
1. Time spent writing great code
It’s not about the quantity it’s the quality! However a twist to this is: It is about the quantity, and the quality. Far too many times you will get one of two scenarios.
In scenario A, you have a developer that pumps out code like mad, things seem to be working… then bugs start happening, you don’t know why, seems to take forever to fix! Or they fix 10 and cause 5 more! But you get a lot of code…
In scenario B, you have a developer that seems so smart! You interview him and he knows everything about everything, can speak the theory up and down! Yet for some reason, you have assigned him three features, and three weeks later, he is still working on something that should have been done in 3 days! You are so confused! He is so smart! He knows everything about generics, multi-threading, and can explain pointers to your grandmother and make her excited to want to code! Why is nothing getting done?!
In your dream scenario, you get great code! Great code is done by a great developer that is super smart, knows what quality code is, and writes code like Tony Hawk rides his skateboard. It looks so natural! He or she is almost entertaining to watch! They also get it done at blinding speeds! They know how long each problem should take, and do not get caught up in finding the world’s best solution, that has multiple threads and layers, to write a game of pong. Bugs are nonexistent because they write unit tests for themselves, and just plain can code in their sleep! These guys are worth their weight in GOLD!
2. Interpretation of the problem
So there is a problem out there, with millions of ways to solve it. Some people are just natural quick thinkers and can come up with multiple solutions instantly. However, what a great developer would do is totally define the problem before doing anything! A great developer will create a document or whiteboard the problem out. They will email their managers and say things like “Can we meet so I can explain to you how I understand the problem?” Next they will start giving you various solutions, etc.
See, a great developer knows that the way they see the problem and interpret the problem, is probably not the way that the problem creator intended it to be understood. This is a key point, commit this to memory! A great developer will want to understand it fully, before attempting to approach a solution. Do you understand the problem 100%, no? 99%? Go ask more questions and be sure you are 100% clear!
3. How the problem is approached
So once you have clearly defined the problem, you start coding right? Wrong! A great developer will look at the layout, and start thinking of various options, and based on the problem, will start thinking about the best approach to solve the problem. I view this like a game of chess. You can know how all the pieces move, know all the rules of the game, but do you just start moving? No! You analyze the board, come up with a game plan, look at your opponent, and look at what he or she usually do. It’s the same case when you approach a problem.
Look at the problem, figure out what the outcome needs to be, what kind of time you have, the quality being expected, the tools you have to work with, etc. Then, start solving the problem.
4. Confidence in code
As a manager, how confident can you be in their code. Some developers you can say “I need this completed by Friday” come Friday, you get an email saying “I have checked the code into the branch, it is ready for testing” and you just know that there will be very little, if any, bugs found by the quality assurance team. On the flip side, there are some developers that will email you instead and say “I am still not done, and it will be done on Monday morning first thing.” And you are nearly 95% sure that it will be there, however it will be ridden with bugs, and basically unusable for days, if not weeks, until bugs are completely ironed out of the code.
Bottom line: The higher the confidence you can have in a developer, the closer they get to being great developers! Imagine being your manager, and the weight you lift off their shoulders if he doesn’t have to worry about your code!
5. Confidence in the solution
It’s one thing to be confident in the code. If you have a great developer on your hands, you are confident in the solution. These great developers will be great architects. They are able to dissect the whole problem, and figure out how the problem needs to be solved. See it’s not just about coding with great code, it’s also largely about how you architect the solution! This is a key point, and really what separates the good, from the great in the software world.
6. Meets user requirements
At the end of the day, you can have the best code, and the best solution possible, with all the best architecture, but does it meet the user’s requirement? It’s possible not! And you have completely failed. Now there are various degrees of missing the mark, but a great developer will hit the bull’s-eye consistently! They find out exactly what the user wants, come up with a great approach, show the user what they will get every step of the way with weekly builds that have no bugs, and continue to build upon the last version. Requirements are bang on, and the users do the jig!
7. Staying up to date
Great developers are constantly updating their skills independently and proactively! They thirst for new knowledge and perfection like a cat with milk. They don’t wait for their managers to come to them and set goals, ask them to take courses, or are given books to get up to speed on. They go and get these things on their own!
They find the conferences they want to go to, and send emails like “I would really love to go to Tech-Ed This Year! I will learn
Software Development Benedict Alphonse 0 comments

