Tuesday, 29 May 2007

3 Innovation for our Team

I recently wrote this to propose some changes to our team . I have altered some content to protect our company privacy though.

There 3 major changes that I would like to propose to improve the productivities and competitiveness of the team:
1. Moving to Agile Software Development Methodology
2. Automate and enforce better control in Deployment
3. Speed up Product and User Interface Design & Standard

Both #2 and #3 are crucial for #1.

1. Going Agile
Agile methodology matches our environment greatly where change is unavoidable, shorter product cycle seems to be less risky and frequent inspections on progress and product deliverables are most appropriate.

It can be the greatest evolution for the development team to redeem our reputation of being competitive and productive even as a small team. Also, it will cushion the impediments like poor planning, miscommunication, incomplete design and still-lots-to-be-improved coding.

Followings are the high-level plan for us to go agile:
a) To present the high-level ideas, benefits and execution plan to the management and the team to get buy-in.

b) If receive green light, proceed with more detailed procedures and plans on how to start implementing agile development, most probably co-exist with our old waterfall methodology.

c) Conduct internal trainings for all team members and frequent improvements and changes will happen along the agile adoption. Will also look for opportunities of external training, especially for those in the driver seats.

2. Automate Deployment to QA
It can reduce time and effort greatly to automate the deployment. This is especially necessary when we go agile as the development, deployment and testing iteration are within 1-2 weeks.

It also seems more “urgent” due to the recent support problem in a product where wrong source code is deployed to production and wrong SQL submitted to production while QA copy is correct. Why waste time to troubleshoot and fix the problem when it can be avoidable?

Here are the proposed steps or procedures for automation:
- Nightly update or check out code.
- Nightly build and deploy to QA machine.
- If build failed, send email notification to developers and QA in charge
- Nightly execute checked-in SQLs to QA database.
- Generate daily and weekly CVS report on changes and developers and auto-email to stakeholders and developers.
- Restart QA Application Server every morning to reflect the latest build.

Some sample report will be like this:

3. Speed up Product and UI Design
The current HTML Development to provide the mock-up UI are slow, tedious to make changes and are not able to communicate the page flow, error handling, functional specification effectively to the developers. StpBA Storyboarding is designed to solve this problem. With integration to Visio, it allows for GUI Storyboards, functional specification and test scripts all available at one place. It also able to generate few types of documentations.

A big caveat: Collaboration is an issue as there are different people responsible for functions, test scripts, UI design, etc. So, we may need to explore similar product but with better collaboration to speed up the product design stage.

Another effort will be to embark on an innovation process to redesign the UI to evolve around AJAX technology, hence better usability and simplicity. We can come out of a UI standard with broad knowledge on AJAX technology and research on great usability of other products. Examples will be Basecamp, this blog, etc.

Recently, this blog has implemented Auto-Save Blog Post. I am immensely pleased for this feature. I remembered I used to be in awe when I wanted to save my blog post when I was prompted that I was not connected to the Internet. Then, I waited for the connection to be available and resubmitted my content again. Learning from Microsoft product experience, I even copied out my content before I saved to avoid losing my content if the page hanged or redirected me to some other error pages. If you tried before to submit a long form you have filled to end up losing all the entries when error occured, you will know what I am saying here.

Happy Blogging!
Photo courtesy of http://www.sxc.hu

No comments: