Project Smart ~ Exploring trends and developments in project management today

Calendar icon
Adobe PDF icon

Five Essential Elements for Successful Software Development

~ By Rodney J Smith

Programmer looking at lines of code on a screen

Modern computer languages with their high-level constructs have come a long way since the early days of assembler programming. And with more and more people taking computer classes at school, programming skills are now more widespread than ever before, allowing even relative novices to produce professional-looking applications. But to truly join the ranks of the professional coder, several elements need to be put in place.

1. Integrated Development Environment (IDE)

Whilst it's possible to get started in many languages with merely a simple text editor, it won't be long before your code's complexity becomes unmanageable without some help. Modern IDEs like Visual Studio or Eclipse offer so much support to the coding process - built-in wizards to help you accomplish numerous tasks, code completion and dependency management, are just a few examples of standard features - that it's almost inconceivable to attempt a serious application without one.

2. Source Control

Source control tools integrate directly into your IDE and give you the ability to track changes to the various files that make up your project, enabling you to modify your code with confidence knowing that you can always roll back to an earlier version if things don't work out the way you planned. Source control repositories are also invaluable when working in a team environment, or across different machines.

3. Automated Testing

Testing used to be a dirty word amongst developers, but the recent popularity of techniques like Test Driven Development have placed the responsibility for testing squarely back at developers' feet where it belongs. Test frameworks like the xUnit family make it easy to write repeatable automated tests that demonstrate your code's functionality as you go, and provide confidence when refactoring that you haven't inadvertently broken anything.

4. Automated Build

Automating your build process takes this a step further, producing a complete packaged system every day, or in some cases, each time you make any changes to the source code. Generally your full suite of automated tests is run at the same time as your code is built, giving you confidence that everything still works when integrated and reducing what can otherwise be a major headache further down the line when you come to try and put everything together for installation.

5. Defect Management

If you plan to distribute your application to anyone else you will almost certainly need some way of keeping track of problems that people have experienced with your software, and the status of any fixes that you've come up with. This may be nothing more complicated than a spreadsheet, although there are a multitude of tools available to do the job for you.

One thing you won't have to worry about is the cost of purchasing all these tools to support your development activities, because there is high quality open source (free!) software in all these categories - and in many cases these tools are the industry standard, beating many proprietary tools in terms of quality and market share. So if you're serious about software development there's really no excuse.



Be the first to comment on this article.

Add a comment

(never displayed)

What is the day after Friday?
Notify me of new comments via email.
Remember my form inputs on this computer.

10 Golden Rules for New Project Managers

Head filled with words, plan, think, strategy

Today dozens of new project managers will start their first project, a daunting prospect. Here are my tips for surviving life as a project manager.

Project Planning Essentials

Tablet computer with project manager app and documents with Gantt and financial charts

Planning a project requires putting a series of tasks in order and determining dependencies between them. In practice it's never so straightforward.

Belbin and Successful Project Teams

Business team brainstorming using coloured labels on an office table

Creating successful project teams is a daunting task for project leaders. A good method for matching people to roles is the Belbin Team Inventory Method (BTIM).

How Agile Practices Reduce Requirements Risks

Road warning sign - Risks Ahead

Every software project carries some risk, but many of these risks can be mitigated. That's true of problems related to product requirements.

PROJECT SMART is the project management resource that helps managers at all levels improve their performance. We provide an important knowledge base for those involved in managing projects of all kinds. With weekly exclusive updates, we keep you in touch with the latest project management thinking.

WE ARE CONNECTED ~ Follow us on social media to get regular updates and opinion on what's happening in the world of project management.

Latest Comments

Pani Tararo commented on…
- Sat 22 April 12:58am

Cheryl commented on…
The Role of the Project Manager
- Thu 20 April 2:36pm

Dr. Nishikant Bohra commented on…
Who is the Project Manager?
- Thu 20 April 8:00am

Latest tweets

General Project Management • Earned Value Management #projectsmart #pmot about 4 days ago

General Project Management • Techniques and Methods for Managing Project Portfolio #projectsmart #pmot about 8 days ago

General Project Management • Advice needed - Initiating project "Better coopororation" #projectsmart #pmot about 8 days ago