Taster

Taster

The blog is about life and thoughts of a Solution Architect who come across interesting challenges and some stupid things around his struggle for living. He may also has discussed some non-sense. That has been his habit.

Saturday, August 4, 2012

How do you introduce quality to your small code project with unseasoned developers?



What is quality? 

It is the general acceptance despite the fact the nature of the business you are in, the term quality is always given a narrow customer oriented theme today as an approach for better commercialization. But for a young new project manager the view towards quality from the perspective of customer may not descriptively helpful for him to manage his project healthily to meet the desired objectives. Customer perspective is good and the aim of the focus is always to enhance the credibility towards customer while making the customer ultimately happy about what you deliver. If that is the only purpose of the quality what happens when you get continuous pain in ass complaints on, scalability, maintainability, adaptability, need of better incremental change management, need of effective communication, need for cost minimization through various approaches like reduction of correction and rework, optimum use of resources so and so forth. More over what happen if you cant provide a delightful life for your co-workers? you cant' provide a safe workplace?  when you can't keep the moral of your team at an adequate level ? ... Therefore given the customer kingship, quality should always in view of everything you engage daily.  In other words Quality must be given a broader perspective.

The quality Mission

Given the above introduction an ideal project manager should well define his quality expectations covering the better deliver of customer expectations as well as covering the expectations of all other stakeholders making their stakes well align towards the project objectives. It should always enhance and improve the quality of life of every stake holders in general in connection to the stakes and interest they hold towards project while making them genuinely delightful about their contribution and commitment. OFC , this is not easy. 

How? : A Simple quality approach

In order support the above quality mission in your project you could find various ideas to enhance the quality. As a new project manager of a small startup project team you are always responsible for every single penny you spend. So first of all you will need to understand your budget now. Resources are not always free. Understand the resources you have.  Since you are small you may not be maintaining huge resource calendars, and nor huge resource pool. When you dont have budgets to hire quality experts, organize quality workshop; you just try them your self. Not very hard, you will have to be a good motivator, good mentor, and good  a good coach. Use it as an opportunity polish your skills and confidence.

It is always a best way to start your quality program from the workplace. Then you can think about the quality of the people, quality of their skill, and finally quality of your product.Clean organized and nice workplace will always enhance the moral and reduce rework, brings better visibility of what you all do to every body whilst improving effective communication. Remember the communication and reminding of quality is very important to your small team when you start. It would take some times to establish ground rules and quality oriented culture among members of your small team. At the start you must plant the roots to make a conducive quality orientation to your project team.  Since your budget is limited and you operate at small scale I would suggest you must first look  at cheap quality procedures. There I suggest workplace organization approaches like 5s. Such approach will give you and your team a big relieve and will create a nice clean and stress free divulging environment to surface emerging talents. Many people think 5s is displaying banners and bill boards in and around. True 5S is very helpful and reduce lot of rework, and improve efficiency in your small office room even in the software development environment as state in the beginning. As a project manager you could provide effective leadership there and you yourself can organize one hour 5s small workshops or discussions like arrangements in order to train your staff. For instance once a month you could repeat such programs till you inculcate the roots in to your project team culture.

Then you must think about approaches to enhance the code quality (the quality of product), quality of people and their skill. In order to enhance the individual skill level, train and develop your human resource pool, you yourself can be a good mentor and a coach without much much cost. This is one great opportunity for you where your technical knowledge, interpersonal skills and leadership skills and confidence as a project manger going to be challenged. Parallel to this, it is also the best time to implement quality assurance measures according the quality plan you prepared at the early stages of the project.I have seen that various software testing approaches are knowingly or unknowingly practiced by many project groups with or without view of assuring quality and controlling the quality.

Software quality assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality. The methods by which this is accomplished are many and varied, and may include ensuring conformance to one or more standards, such as ISO 9000 or a model such as CMMI. These conformance approaches are generally costly and indeed will need some expertise and resource to a startup small project. I recommend here to the Project Manager; just get the basic idea of what is quality assurances. Don’t ever contrast quality assurances with quality control. Quality control always deal with verifying or testing the final product for conformance. But in contrast quality assurance is ongoing; in the sense while you develop the product you think about the quality, and conformance of you code at to the least level that the product flawlessly meets the defined functionality agreed. Test driven development is a good approach, but it is also costly in terms of time and scope and effort, and not good if your team does not comprise seasoned developers who know better about writing correct unit test cases.  Therefore whren you are operating at small scale with not very talented and not very seasoned startup team,  I suggest you should first start quality assurance with a functionality checklist. You can define phases to the project – based on the progress, doesn’t matter if you are agile or non-agile, clear about requirements or not exactly sure about requirement; however try to define your phases based on the functionality you burn down. Up on the checklist if you have a QA team you can ask them to start writing test cases, If you don’t have a separate QA team ask one or two of your guys to write unit test cases to cover your check list. If you get lot of integrations in the latter phases make sure you also maintain a check list to test the component wise integrations.  Then you can write integration tests or system tests to check the integrated interfaces.

However I would want my article to be short as much as possible. The above approach seems very untraditional for an experienced practitioner. One would find it is such preliminary. But I have experienced that the approach earns results when your project scope is relatively small, your team is small (like 5 – 8 members max) when your budget is limited, when your team is unseasoned, and you are running out of time. Good Luck !!!

No comments:

Post a Comment