presentasi malioboro--10-des-2010

Download Presentasi malioboro--10-des-2010

If you can't read please download the document

Upload: bambang-purnomosidi-d-p

Post on 28-May-2015

496 views

Category:

Documents


0 download

DESCRIPTION

Presentasi Linux User Group Jogja, 10 Desember 2010

TRANSCRIPT

  • 1. Managing a Software Development Team: Some Experiences Bambang Purnomosidi D. P. twitter: @bpdp Facebook: /bambangpdp More: http://bpdp.name

2. Managing a software development team is never an easy task. It consists of 2 sides: technical and non-technical 3. Decide the tools which will be used by the team Leader should have enough technical capabilities so that he can decide the right tools for the job. Once you dont decide the tools, your team will be confuse as they have more than one preferences 4. Use a specific software development methodology, probably with some minor adaption A software development methodology consists of process and modelling. It guides the team through the process and enable the team to model the software which is built by the team to solve client problems. It is important to use the specific methodology so that everyone in the team knows what and how to do the development. If you dont decide any methodology, then your team wont have any guides. Remember, you have to use a specific methodology but dont be too rigid. Your team may consists of people from many backgounds with many level of capabilities 5. Make some conventions regarding technical issues Again, this is important to keep the team away from the state of flux and let the guys in the team communicate with the same language. You surely dont want your team to have more than one variable / property naming system, right? What if some programmers use this_is_a_variable, while the others use thisIsAVariable? 6. Know the client(s) and their problems which are tried to be solved Deal only with 1 client representation. You must understand this domain problem good enough so that you can define the scope of the problems and deal with the problems. 7. Decide the scope of the problems and insists on this. Clients basically dont understand the requirements, so your duty as a leader is to define the scope of the problems which are tried to be solved by the software. You must cooperate nicely with the client and have the information understood by all team members. From programmers point of view, the uncertainty caused by scope uncertainty will lead to frustration. Well, I do understand that agile methodologies encourage changes, but who want to deal with changes everytime? What I am trying to say is you as a leader should understand that changes are possible but this should be done within the scope 8. Have a good interpersonal relationship and dont be a jerk I know that this software development task is not easy. Clients always ask the progress and the team is in a stress condition. It really helps to just stay with the team and always willing to help them whatever you can than just act like a jerk who walks here and there and yelling. Trust me, the team will respect you more if you are always willing to help them. 9. Never let the team in a state of flux Uncertainty comes everytime. Whenever the team has anything uncertain, your decision is needed to keep them stay away from confusion. You do understand that you have to have a good grasp in technical side and problem domain to make a good decision, dont you? 10. Let the team concentrate on technical matters Ok, pay attention more to non technical matters so that the team can concentrate on technical side. Dont let them do any clerical things since programmers (usually) hate to do administrative things. Its good to have a dedicated person to deal with all administrative things. 11. Let the team member knows each other about progress and difficulties Opennes is important. By let them know each others progress, you keep them in a fair situation. Low salary probably can be understood, but unfair treatment can not be tolerated. 12. Inform the team about your progress too So you think you can hide your progress? The team will surely want to know that you do your jobs too. If you hide your progress, they will lose respect and trust in you. 13. Communicate. Communicate. Communicate I can not stress more. This is really important for the team to have them communicate each other. Your tasks will be to communicate with them and act as a liaison between the team and the client. Oh and dont forget, have a good sense of humour. 14. Always keep backup of everything You dont need to backup everything if you are sure that you always live in an ideal situation. You should keep backup in more than one place. Compress them and have them uploaded anywhere on the Internet (4shared.com, rapidshare.com, /etc) as long as you have full control of your files. 15. Use Version Control System Version control system is a software which can be used to track the software source code versioning. You may use git, mercurial, subversion, /etc for this purpose. 16. Use web based bug tracking system, project management software, and/or wiki This will keep any information handy and on track. All any other members can also see the projects progress. It will keep each team members informed and any unfair situation can be detected. 17. and that the end of the story. Thank you for your attention.