Thursday, July 23, 2009
Indeed we need agile beyond software products. I'm not sure exatly what it should look like. First of all maybe we should stop speaking about 'supporting functions' and not look upon IT- and business functions as two separate things. Although businesses can evolve without IT and could benefit from using agile/lean principles. While businesses is developed using IT, we need to assure IT is aligned with the business to achieve true 'business agility'.
We need better transparency between enterprise architecture and software product development. Enterprise architects and business analysts need to understand that the BIG design up-front and the huge requirement specification covering all details is not the solution. And 'agilistas' need to understand that there is more to achieve than the one and only product and that processes, tools and documentation are needed to some extent.
Communication rather than EA frameworks, processes and tools, so to speak, as stated in the manifesto. Although the latter is also important.
Monday, July 20, 2009
Agile is purely about effective communication and continuous improvement. Focus on the people and listen your customer. Agile is about giving the priority to the people involved in the process. People are responsible to make a project fail or succeed. The use of Agile Methodologies helps projects to see problems sooner.
Agile chooses to do things in small increments with minimal planning, rather than long-term planning. It splits the work into iterations which take short time frames typically lasting from one to four weeks. Iterations undergo a full software development cycle. This minimizes the overall risk and allows the project to adapt to changes more quickly. Documentation is produced as required by stakeholders. Multiple iterations may be required to release a product or new features.
Team composition in an agile project is usually cross-functional and self-organizing without consideration for any existing corporate hierarchy or the corporate roles of team members. Team members normally take responsibility for tasks that deliver the functionality of iteration. They decide for themselves how they will execute during iteration. There is a Scrummaster and the team members in a usual agile team.
Agile methods emphasize face-to-face communication over written documents (routine and formal daily face-to-face communication methods are common). Most agile teams are located in a single open office to facilitate such communication. Team size is typically small (5-9 people) to help make team communication and team collaboration easier. Larger development efforts may be delivered by multiple teams working toward a common goal or different parts of an effort. This may also require a coordination of priorities across teams.
Each agile team contains a customer representative. This person is appointed by stakeholders to act on their behalf and makes a personal commitment to being available for developers to answer mid-iteration problem-domain questions. At the end of iteration, stakeholders and the customer representative review progress and re-evaluate priorities with a view to optimizing the return on investment and ensuring alignment with customer needs and company goals.
An Agile culture is established when the 3 major groups come together within a company. Executive management endorses the Agile principles, working managers learn to coach instead of direct, and the project team understands and supports Agile principles and practices.
Scrum has become one of the most popular Agile packaged methods. The Scrummaster is at the heart of Scrum. This individual is not a manager but more of a process facilitator and guide. A Scrummaster:
• Helps the team develop practices that support Agile principles
• Acts as a guide in training the team on how to be Agile and use Scrum
• Removes impediments that prevent the team from delivering software
• Shields the team from corporate bureaucracy and activities that do not add value to software development
• Champions engineering excellence and processes that support the creation of shippable software
• Ensures the team has direct access to the customer
Traits required to work in agile teams
As agile teams work differently from normal teams and depend a lot on effective and efficient communication and fast execution, there is an increased need to use soft skills. Some of the traits and skills that can make the agile teams more meaningful and productive are:
· “just enough” planning
· A desire to finish things.
· A spirit of collaboration.
· The ability to ask for help, to seek out review.
· The ability to take initiative.
· Enjoy working in an intense environment.
· Adapting to new situations and frameworks easily
· Ability to develop and maintain collegial relationships across the team.
· Managing Diversity
· Value for:
o Individuals and interactions over processes and tools
o Working software over comprehensive documentation
o Customer collaboration over contract negotiation
o Responding to change over following a plan
3. Time Management/ Planning
5. Conflict Management
6. Dealing with Change/ Flexibility
7. Decision making
8. Teamwork/ Teambuilding
9. Handling stress
10. Problem Solving
Individual opinion about what’s important
Learning from peers
Reliance on individual abilities
Comfort knowing help is there
Panic when workload peaks
Focus on the organization
What’s in it for me?
Responsibility for the team
Stress on the "supervisor"
Simple, visible measurement
· Customer satisfaction by rapid, continuous delivery of useful software
· Working software is delivered frequently (weeks rather than months)
· Working software is the principal measure of progress
· Even late changes in requirements are welcomed
· Close, daily cooperation between business people and developers
· Face-to-face conversation is the best form of communication (Co-location)
· Projects are built around motivated individuals, who should be trusted
· Continuous attention to technical excellence and good design
· Self-organizing teams
· Regular adaptation to changing circumstances
· Reduced risk
Modules for sessions:
· Managing Self
· Managing Relationships
· Managing Work
Saturday, July 18, 2009
Oracle Application Testing Suite is a comprehensive test suite for Web application testing and monitoring. Oracle acquired “Empirix –e TEST suite” on June 6th 2008, and repackaged it as ‘Oracle Application Testing Suite’ (OATS), which is a part of Oracle Enterprise Manager.
Oracle has complementary products and a shared focus on lowering cost and delivering higher quality of service.
OATS products include:
i. e-Manager : Test Process Management Tool
ii. e-Tester : Automation and Regression Test Suite
iii. e-Load : Performance Test Tool
Oracle Load Testing for Web Applications allows you to easily and accurately test the performance and scalability of your Web applications and Web services. Oracle Load Testing for Web Applications not only stresses your application to simulate the impact of end-user workloads, but also enables rigorous validation that protocol-based legacy client server testing tools cannot provide. Its integrated scripting platform cuts scripting time in half, eliminating weeks from a project’s testing schedule. Oracle Load Testing for Web Applications is a component of Oracle Application Testing Suite, the centerpiece of the Oracle Enterprise Manager solution for comprehensive testing of packaged, Web and service oriented architecture–based applications.
e-Load for Load Testing, Performance Testing and Tuning for Web Applications
The following are the performance testing products:
i. Open Script : Scripting platform for creating automated extensible test scripts in Java
ii. e-Load : e-Load for Performance Testing and Monitoring
e-Load supports most of the performance counters (OS, Servers, Web Resource, Application, etc.,), for more details refer the document in Annexure – A link
e-Load: For performance and scalability testing, it is a performance testing tool that enables accurate testing of the response times and scalability of web applications and web services. Using e-Load we can simulate hundreds or thousands of concurrent users, executing real business transactions, to analyze how well web software applications will perform under load.
The realistic usage scenarios in Oracle Load Testing for Web Applications can handle even the most complex Web applications. By utilizing a unique virtual users capability that encompasses many parameters (including configurable browser types, connection speeds, and think times), testers can interact with the Web application just like real users will to understand exactly how the application will scale under peak load conditions.
Oracle Load Testing for Web Applications can also be used to test the performance of Web service interfaces by simulating thousands of concurrent clients accessing SOA-based applications. Easy to use and accurate, Oracle Load Testing for Web Applications maximizes your application performance by giving you the ability to tune your application under peak load conditions.
e-Load Key Features
v e-Load – A load and performance testing tool for validating the scalability of a customer’s Web applications. It is the industry’s first collaborative load testing solution that can be fully accessed through a Web browser interface, enabling distributed teams to collaborate in real-time to run and analyze load tests.
v e-Load can emulate hundreds of thousands of virtual users accessing a customer’s application simultaneously and can measure the effect of the load on application performance and it provides of performance monitoring.
v e-Load gathers the critical performance metrics to identify bottlenecks. It Simplifies accessibility with an intuitive Web based user interface. Allows distributed users to share testing results during test run/execution.