Skip Navigation LinksHisham Baz > Expertise > Methodology

Agile

Good software will change. People will use it, have ideas for improvement and the software will evolve. Dealing with change effectively is a key part of the software development process. Hisham can help define, manage and execute a successful change management policy that minimizes the risk to your software projects.

As part of the design process we will use a number of modeling techniques to plan and describe the software system and how it interacts with the environment. As requirements change these models can be adjusted and used to communicate the changes. Usually a phased delivery approach with incremental functionality provides the smoothest software rollouts that are highly tuned to your customer’s needs.

For many years Hisham has been helping companies improve their development process using agile methodologies. This includes techniques for proper requirements analysis and modeling, build process automation, continuous integration, test driven development and quality assurance programs.

Design and Modeling

  • Agile design process
  • Use case modeling and UML
  • Design patterns
  • Usability and user interface design
  • Model-View-Presenter/Controller
  • Microsoft Solutions Framework
  • Graphics Design
  • Test Driven Development

Development Process and Tools

  • Build process automation
  • Team Foundation Server
  • NUnit/NAnt/Resharper
  • Cruise Control.NET
  • Software configuration management
  • VSS/Subversion/etc
  • Release and deployment
  • Testing program and plan

Continuous Integration

Continuous integration brings tremendous benefits to development teams. Frequent build and testing becomes the heart-beat of the project providing real-time feedback of the quality of the code base. By rejecting poor quality code that breaks the build or introduces defects at development time the quality of the software will be vastly improved. For this technique to be successful a good build process needs to be in place as well as a comprehensive set of unit tests.

Test Driven Development

Hisham brings a very strong focus on quality to software development. Test driven development is a key part of an overall quality program. As each new feature is implemented a series of automated test cases is created to validate the expected behavior. This acts like scaffolding that supports the code base and helps to ensure that the application continues to function as expected after changes have been made.

Test driven development is a both a design technique and a quality assurance measure. In addition to providing rapid smoke-testing of functionality, by using unit testing developers create code that is more modular and has fewer dependencies improving the structure of the code base.