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.
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.
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.
Photo courtesy of http://www.sxc.hu