Archive for July, 2007
Indirect Project Communication
The human nature is not always direct. So, it's not always clear what the stakes are. Sometimes stakeholders communicate them directly, most of the time they don't. The level of communication is indirect; stakes are contained in requirements made to the project, process and products. Requirements are always a clearly defined state that is desired. This is in contrast with stakes, which are generally vague and abstractly formulated (if formulated at all).
An oversimplified example: a stake of a programmer is "to be also involved in way cool new technologies like my brother-in-law", say Java; the corresponding requirement could be that "the system can only be programmed in Java". The requirement can be stated surrounded by other technical arguments, but it's only the stake mentioned that caused it to appear.
So, the project manager has this project, surrounded by requirements he has to take care of. But, remind yourself, they are not the stakes, they are not the crown jewels you may not touch. So you can mess with the requirements? Can you?
Related links
Project Management Communications Bible
Communication Failures between Team Members
Focus On Project Stakeholders
The entire process of software projects is strongly stakeholder-driven. It's their wishes, fears, dreams, their stakes (hence the name) that determine the course of the projects. A stakeholder can be a project team member, an employee of the user organization, or a senior manager. Virtually, it can be anyone, as long as they have something to do with the project.
The stakes are the crown jewels of the holders. They stick to them, they defend them, they are married to them. They also make up the words to formulate their expectations. The individuals will take all actions necessary to defend their stakes, or to get near the realization of them.
Stakes can be in two directions: fears or wishes. With the first there is a stake to lose, with the second there is something to gain. Either way, stakes are sacred things; anyone, including a project manager, should not try to mess with them.
Again, in order to do anything with the stakes of the holders, the project manager should be the greatest negotiator he possibly can be.
No commentsSoftware Project Management Problem
For long, the art of the management of a software project is really an art, it's a trick that's difficult to master. The difficulty lies in the central problem the software project manager is faced with; appropriately named 'the software project managers' problem' [1]
Everyone effected by the project, direct or indirect, has something to say, again direct or indirect, and will do so. Everyone wants to get the best from this project for him personally, or for his (part of the) organization. It's the job of the software project manager to see that everyone gets what he wants, in one way or another. He has to "make everyone a winner" [1]
In this respect, the role of the project manager becomes that of a negotiator. The customer always wants to have it all for free, the user wants to have to greatest functionality, the programmer doesn't want to document, but wants to use the coolest compilers. The software project manager has to make them all happy.
[1] Boehm, Barry W. and Rony Ross. "Theory-W Software Project Management Principles and Examples." IEEE Transactions on Software Engineering. 15.7 (1989): 902-916.
1 commentONE - Project Stakeholders
Staging The Project For Your Audience
The thrill of having tickets for the opening night for Andrew Lloyd Webber's new play on Broadway is in no comparison to the performance on amateurs night in our local town hall. Both are plays, both have players who conduct a series of lines to an audience. Prices differ, the quality of the players and props should give a serious gap in comparison. However, is there a difference in the appreciation of the audience? Is the night of those who went to Broadway more memorable then those who didn't cross our county line?
Most people would argue, it depends. It depends on the expectations of the audience. If they pay a bundle of money just to see some famous actor, they should be on Broadway. If it's people having fun in acting they want to see, amateurs night is surely the way to go. The staging should fit the expectations of the audience, and all is well.
A project has some aspects common to plays (not just tragedies). Some tricks are performed by members of a project team (the players) which are closely observed by people with stakes in the project, the stakeholders. As long as the players perform as expected by the audience, everybody is happy. The principles presented in this section aim at precisely that.
This guide covers the subject of software projects. Any project which has a larger part concerning software in it, can be categorised as such.
You will be introduced to the central principle of this course: the "flow of the stakes"; a software project manager should know the flow and have it printed in his brain, it should be his mindset. It is a way to catch the expectations, to integrate all expectations of several people, the stakeholders, and to make sure the project stakeholders know that their expectations are taken care of.
The main function of this section is to make you aware of this principle, to let you know there is a flow. It is not intended to provide a full depth analysis of every aspect of it. I try to do that in the other sections, but the true depth you can only view in practice.
"A basic principle of Lao-tse's teaching was that this Way of the Universe could not be adequately described in words, and that it would be insulting both to its unlimited powers and to the intelligent human mind to attempt to do so." (The Tao of Pooh
)
It is perhaps a little much, but it gives you a certain idea; well, any way, see the flow as the apotheosis of this chapter, first we build up some context around project stakeholders.
Related links
Why Plan Driven Theories Stink
WTF: Project Management Theories?
CMM Revisited: Oh Yeah, There Is Something Outside The Project
1 commentSoftware Project Management Course
The Microwave Way to Software Project Management is a free guide to help you get the hang of project management stuff in no-time. The entire course consists of seven chapters that are written especially for those who hate long and boring books.
If you are new to Project Management, please watch this 15 minute video first, and afterwards enjoy this tutorial.

Chapter 1: Mindset of the software project manager
Stakeholders are all the people involved in a project, the customer, the supplier, the boss, the user, you name it. As a project manager you have to deal with them; it's even worse, they will determine if your software project will be a success or a failure. This first chapter will describe the image a software project manager should have engraved in his mind. If you see it, you will surely recognize it. It's simple and short, so much easier to keep in your head then a huge binder with methods.
Chapter 2: Project Intake
Ever got a present where you thought "what is this?" Ever got something from your superiors nicely rapped in a paper with in neon letters 'project' on it, where you thought "what?" Then this chapter is surely for you. Problems, ideas or just plain stupidity are quickly labeled 'project' and handed over to a project manager. The intake is to clarify what is meant so the project manager is not getting the blame.
Chapter 3: Requirements determination
Whatever you do, what ever you make,you should know what to do or to make. After an intake the global contours of the project are outlined by goals and scope. You should get more specific though. It's this getting more specific that requirements determination is all about
| Chapter 4: Requirements validation As a kid I played this little game at school we called 'telephone line'. Twenty kids were hurdled up into a circle. One started by whispering a sentence in the ear of his neighbor, so the other kids couldn't hear what was said. The neighbor would say the same sentence to his neighbor, and so on, until the sentence was 'round circle'. The fun of the game was comparing what the last one had heard with what was originally said. Mostly, they didn't even come close. During the project the requirements stated at requirements determination should be validated. This validation goes two ways: are we meeting the requirements, and are the requirements still valid. This section handles the requirements made to the product part of the project. |
Chapter 5: Project Progress
In Holland we have this huge (200km) ice-skating event, the "Elf Steden Tocht" which means "Eleven cities tour". On the course are several check points, which in fact are the eleven cities, where you have to get a stamp. Getting these stamps is very important. Actually, the race is about passing all the checkpoints.In a project it's all about getting the approvals to keep on going. This section handles giving feedback on the requirements made to the process. Are we still within time and budget, and are the project constrains still the same
| Chapter 6: Risk Management I cannot tell you what the future will bring. No one can, although some people believe they can. This whole project thing is based upon assumptions and estimations, on guesses and hunches. Sometimes we are wrong. In a project we have to deal with this as a fact of life. Enter "risk management". A risk is the possibility of loss of some kind. It's all about what can be different from what we believe right now. Not just what can go wrong, but possibilities can arise also if the future brings not what you think it will. "Dealing with uncertainty" would be a good subtitle for this section of the guide. |
Chapter 7: The Bigger Picture
This final chapter in this project management course will cover two aspects of doing projects in a larger context, your organization. The aspects are how to handle policies issued on what systems you may use, and how it should be constructed, and how you can introduce a "project approach" into an organization in such a way, your own job as a project manager will be more effective.
Relevant links
Deliver Good Customer Service that Customers Demand
Why is good customer service becoming so important these days? It's simply because customers, who are not getting quality support, are turning their backs to the sites that do not deliver.
Project Perfect project management software and consulting
Project Perfect provides white papers, project management software and consulting services on project management. Our software can help manage risks, issues, action items, benefits, scope, budget and expenditure, checklists, documents and much more. Integrated with Microsoft Project.
Mind Tools Project Planning and Management Section
This page shows you how to use a wide range of skills which help you to schedule and manage projects.
Software Project Management Classroom Course
3 day project management course in UK for people involved in software and other IT projects.
Management Resources
Management related news, books and web resources.
Computer Technical Tutorials & More
A premier directory for computer technology and related tutorials, subjects, and websites providing dynamic user ratings and hit counts to all links. All link submissions are free.
Project Management Resources
Thousands of content-rich Internet resources in over 50 different business categories from Accounting and Project Management to Writing.
Surrex Solutions Corporation
IT Consulting. Project Staffing Management Information Technology Services Career Opportunities Staffing Services Project Management Software Development Contract Programming Employment.
Distance,online,computer based learning and training
Target Global Campus are dedicated to providing current and continuously updated distance learning solutions using the most educationally sound online learning and computer based training available.
Dutch Project Management Directory
10 commentsKeeping your computer programmer career on a good level
Computer programming is a serious business so you cannot let your attention wander from keeping your computer programmer's career on a good level. It means you need to keep yourself update, always, if you want to be in the race of software development.
How to keep your education on a good level?
Your successful career of a computer programmer depends on your skills which must always be kept up to date. In this era of hi-fi technology that keeps on changing every other day, keeping you up to date is absolutely necessary.
With the rapid advance of new programming technology, languages, tools and platforms, you need to find a way of keeping up-to-date in this field. Keeping in view your career as a computer programmer always be prepared to learn new skills quickly so that you never lose a chance of selection as a computer programmer. You must be ready to cope with
the demands associated with constant learning.
There are many ways to keep your education on a good level.
-Make your choice of a field, Hardware or Software.
-If software, learn new programming languages and master them.
-Get yourself a certification viz. Microsoft, Sun, CISCO, Brainbench, etc.
-Keep yourself in touch with programming.
Tips on what websites to read and follow to stay in good shape and to be a
top notch programmer
Internet boom has made it possible for you to learn new things without having you to attend any formal classes. Yes, there are thousands of websites that provide you a wealth of information that will help you build your career as a computer programmer.
Some of the websites that play a vital role in a computer programmer's career are
listed below:
http://www.programmersheaven.com: This website provides a wealth of information on various programming languages including tutorials, sample code; sample
downloads and also links to other websites that are very important for a computer programmer.
http://java.sun.com: This website is a total solution to a computer programmer's requirement for Java platform.
http://forum.nokia.com: This website has a forum that is participated by millions of
computer programmers around the globe.
http://www.codeproject.com: This website provides a computer programmer with lots of sample code.
http://www.devguru.com: This site plays role of a Guru (teacher) and assists the
computer programmer in enhancing his skills.
http://www.brainbench.com: This website provides computer programmer certifications on various platforms with specific guidance for certification. It also provides sample tests before actually taking the certification test on this website.
http://www.microsoft.com: This website provides guidance on its certification as well as helpful articles along with world's largest software development library network for the computer programmer.
Do you need to write/speak English?
This part is of prime importance to you as a computer programmer. Because once you
choose computer programming as your career, you need to develop yourself as a top notch computer programmer to remain in the competition and this is possible only when you are open to the outside world where a wealth of information has been made available through Internet. English is the main language used on Internet. Computer programmers around the globe have benefited through this vast medium i.e. Internet.
Basically, English proves to be a best medium of interaction between people around the globe when it comes to software development. Lots of source code, examples, and sample demos that have been developed by computer programmers and are available on Internet; and you need to read, write and speak English so that you can have optimum use of these resources.
If you have selected computer programming as a career, then you will be interacting with lots of people. It is possible that you are required to go overseas to learn new things. It is also possible that you may need to interact with overseas clients while working as a
freelancer or working for a company. English proves to be the best universal medium of communication and most suitable language for a computer programmer who has selected computer programming as a career. So it will be very beneficial for you as computer programmer to read, write and speak English.
Ensuring Paid Programming
Being a software developer, it is very important that you get paid for all the hard work you put in while you do the programming. You must have spent a lot of time programming and working very hard for the project and finally must be expecting a good payment. But, if you had placed your bid and got this project through an unsecured site, then getting paid can be a problem for all the programming you have done or will be doing.
The buyer may promise you a lump sum initially, but may leave you without having paid for the programming you did. He may run away with your completed project, leaving nothing for you. So, to avoid such a situation, you have to make sure that you are being paid for all the programming you have done.
In order to be sure that you are paid for the programming, you have to take care of the following things.
1) You must place your bid only through a trusted and secured site like RAC (RentACoder.com). Although they charge you a part of your gain, they take care that of your financial security and will ensure that you are paid for the programming done. No
buyer can run away with your work, without paying you if you have done all that were
described in his bid request.
2) You must submit your project in time, with quality, so that the buyer need not send you back the stuff which you have developed over the period putting in your every skill for the development of the project. This will enable easy acceptance of the project and ultimately easy payment.
3) Avoid making private deals with your buyer. All the deals have to be done via the trusted site. Usually, people follow the procedure just to avoid paying commission to the site and welcome difficulties. Someday this could be a problem and once they know that you have settled anything outside the website, they will throw you out because they are doing the administration part to ensure that you are paid for the programming.
4) Avoid giving personal details such as address, phone fax etc… to the buyer. Always ask the buyers to contact you and communicate with you through RAC so that it is 100% confirmed that you will be paid for the programming you will do for the buyer.
Building up relationships to ensure you are paid
It is very important for you, as an offshore programmer, to maintain a good relationship with the buyer. You must ensure that you are very polite with the buyer and avoid any sort of conflicts with your client (buyer). If you maintain your relationship with the buyer on the basis of trust, honesty, and hard work then there will be no stopping in the long and
strong relationship and will be paid for every project you will be programming.
Once you are able to create trust in your client then it is sure that you will be given first priority over others for the next project from the buyer, who will be your long-term client and that will make sure that you are paid for the programming part you will play in all his projects.
No commentsHow to organize offshore development
In Offshore Development, you don't have direct contacts (face to face) with the clients. So the contact with the client must be made through internet e.g. E-mail, chatting etc. In offshore software development, first of all you need to organize everything that is required for the project.
Your first step is to collect the information from the client, such as what is the purpose of the offshore project that he needs to get developed, ask him to provide you vital statistics of the project. Also get the details of the system that already exists and need to make changes in that. If yes, then concentrate on the drawbacks of the old version so that you can overcome those and provide better solution to them.
Understand the requirement properly, have discussion on that. Create a list of software and hardware that will be required for the offshore project under development at your end. As an offshore developer, you must have to take care about the time required for the
development of the offshore project.
Support
As your client and you as an offshore developer, are at different places, you need to make sure that you provide all the support required for the offshore project that you have developed. Sometimes you may need to provide him online support. It is your sole responsibility to do that. It will be very appreciable by the client, if you stay in contact with him for the technical support for at least 6 months.
Documentation
Documentation is the most important thing in offshore project development. You will need to provide your client with all the documentation of the offshore project you have developed. Documentation may contain the following:
1. Requirement Analysis.
- Need for System
- Resources
- Hardware, Software requirement,
2. System Design :
- Databases management,
- Entity Relation ship diagrams (Entity Relationship Diagrams),
- Data flow diagrams (Data Flow Diagrams)
- Advantages and Disadvantages of the software
- Pictorial representation of the project.
3. Existence of the old system and its limitation.
4. Proposed system.
5. Software Testing Report
6. Help System of the project
7. User Guides in PDF format.
Maintenance
Maintenance of the software plays the most important part in offshore software development. Once the software is developed, it needs maintenance till the people who are using it are well experienced. There will be a possibility that some bugs will come up after the software has been installed on the user's machine and you will have to fix the bugs. It means you will be needed to solve the problems that may occur. This can be done
by providing the client a maintenance support for one year that will be called "Warranty Period". During this time you will have to provide the technical support.
After the Warranty period is over, you may have to make agreements for the maintenance of the offshore software developed. This will be the Annual Maintenance Contract, which will get renewed every year, if the client needs you to help on the offshore project that you have developed for him.
No commentsAvoiding customer dissatisfaction in offshore outsourcing to India
It is very important for people like you, who are in India and are involved in offshore outsourcing, to avoid customer dissatisfaction. Staying in India and thus being offshore, if you do an excellent job in outsourcing, there is always a chance that the buyer returns with a new project and you can work on it. It also enables the buyer to speak positively about you to his friends who ultimately may become your future clients.
If you do a bad job while being in India and working on offshore projects and outsourcing, you not only lose a buyer, but the buyer may tell ten of his friends about this. They in turn may tell a few of their friends and thus you lose about 20-30 clients, which is a heavy loss for all of the offshore programmers in India like you, who depend on offshore outsourcing.
Living in India, and being involved in offshore outsourcing, communicating with the customer is the best way to avoid customer dissatisfaction. Right from the time, you as a developer in India get the project through an offshore outsourcing client; you need to concentrate on identifying all the requirements and hence get ahead of the buyer in analysis. You must communicate all the extra requirements identified by you to the
client so that he can revise them and appropriately suggest you about it. You can communicate with your client and receive quick responses and answers to your questions.
Although your client may be irresponsive, it is always your responsibility to tell your client how his project is progressing and get suggestions from him. It is always better to ask the
client questions, show him samples or screen shots and suggest alternatives to him. This will enable him to identify any discrepancy and let you know at a much earlier stage rather than after all your work is done. This will also avoid much number of rejections by your offshore client and in turn help you in rework of offshore outsourced project in India.
As you are in India, working offshore and are involved in outsourcing, you have to always get a step ahead for your client to let him know that you are the best among the rest. This can be done by providing him a simple help file or a logo or few simple animations at no extra charge. It is very important for you to explain to your client the project in as much detail as he wants. It is also very essential for you in India, to answer any questions asked by your offshore client or provide support for technical issues in outsourcing.
Follow up the project with an email which should be as detailed as possible. You may advise the client and guide them as best as you can, but ALWAYS you must deliver what he wants and not what you think it should be. You must always remember that your client is always right. This way you can avoid your client reject you project and can stop him from sending the stuff back and/or stop him from adding the requirements every now and then.
No commentsTest Offshore Software
Every organization has limits on the resources available to it. Software Outsourcing permits you to redirect resources towards activities that provide a greater return in serving your customer. Let us see what is "Software Outsourcing"?
Software outsourcing means you hire somebody outside your company to provide IT services or get your software developed from somebody who is not part of your software company.
Offshore software outsourcing
For Offshore Company, Outsourcing of software is just a software development at another location, a facility connected with the client's location using high-speed data communication links to allow engineers and managers to communicate on a real-time basis. The communication from both sides is possible online. For an Offshore company you can
monitor software development process and project milestones on an up-to-the-minute
basis. As a professional, the software developed through offshore company, must ensure both quality and progress. If you are an offshore programmer who develops software for outsourcing must have:
-Expertise in latest technology
-Rapid deployment
-Lowered Costs.
Your company, as an offshore company for software outsourcing, is responsible for high-risk and powerful proposition will be a high-gain. For an offshore software development a "good relationship" is the key for success. Your offshore company must have technical skills and quality for outsourcing and it will be a relationship based on compatibility, trust and mutual respect.
Testing
Testing is the most important phase in Software Development Life Cycle. You must
test the program code of your offshore software that has been outsourced to you.
You must always use different testing techniques for your outsourced software.
Who does the testing?
Alpha Testing: Alpha testing is done at programmer's site. Your team members or employees can participate in this testing. Offshore company always prefers Alpha testing usually after the basic design of the software that has been outsourced. Now you have to look over the program and make suggestions or give ideas to your designer to improve existing status of the software. To solve the MAJOR problems you can report and give ideas to your Programmer or Designer. Just avoid reporting the little things. There's bound to be a number of bugs after a program is created and the designer most likely knows about many of them. This isn't the main concern in alpha testing.
Beta Testing: Beta test is carried out after Alpha by the customer first time at his site. Beta testing a product can become very tedious for the designer to do all by himself. It's also not recommended because it's likely that you'll overlook several things. You will
require the Beta testers to test your product. Beta testing requires a good communication between the designers and the beta tester. As a designer it is your responsibility to keep the tester active during testing phase. Beta testing is like proofreading a paper. Offshore companies always keep in mind that the designing and alpha testing is not sufficient for an
outsourced software product. Such a product is not going to be used by the public unless it's absolutely flawless. It is impossible to have a product 100% free from bugs. But remember that even a little thing doesn't seem right then the person that's using it will probably get the feeling that the entire product is flawed. It's very important for you to test your product by multiple testers and for you as a tester to catch these bugs and report them.
When?
You must follow the Software testing after the design phase of the Software that has been outsourced to you. Alpha testing takes place at the Designer site. Once the Alpha testing is over, Beta testing is carried out as customer site. Types of test cases are available e.g.
Stress Testing, Black Box Testing, White Box Testing, Regression Testing, Functional Testing etc. which helps you to test the performance of the system. Thus you, as a Designer, must take care about testing until your offshore software product that has been outsourced to you is totally bug free.
What if something is wrong?
You will receive feedback from a beta tester(s) on changes made in the program for outsourced software and also receive proper reporting about the bugs. You must act like the developer try to add new features and find the solution for existing bugs. You must think about the following things before handing over it to the offshore company:
-Is the product good enough?
-Is the product user friendly?
-Does the product satisfy the user's requirement?
-Does the product is bug free?
Related article
Software Test Strategy for time-pressured projects
No comments
Bas de Baar discusses Project Management in a global, mobile, virtual and multi-cultural world. 

Subscribe to my blog by email and you will receive bi-weekly a summary of my postings. As sign of my gratitude you receive the first part of my book "