Justin York – Simdesk

“Del's leadership was instrumental in bringing agile methodologies to our development team. While transitioning to scrum, I often consulted with Del about how to handle things in the scrum framework. Once our team was fully running on scrum, I felt that we were at least twice as productive as we had been in the past.”

Matt Willson – Pervasive Software

“As Delmar's manager for over a year, I was very impressed with the simplicity of his designs, the quality of his software, and the tenacity he brought to problem solving, especially customer issues. Delmar provided strong leadership for the developers who worked under his tutelage.”

Steve Mook – Pervasive Software and Simdesk

"Del is experienced,enthusiastic and tenacious - an excellent team lead with expertise in UI design and development and Scrum project management. He is willing to learn new technologies, challenge assumptions, take risks, and be accountable for results. His skill and leadership would benefit any team that seeks to improve its ability to deliver value to customers and to the business."

Archive for build

Sep
10

Rhythm and development (Part 1)

Posted by: Delmar Hager | Comments Comments Off

We see rhythm all around us. Day and night, awake and asleep,  7 day week, the years, the seasons, and music. Rhythm is very much a part of our lives. When the rhythm of our lives is disrupted we may become anxious or our productivity decreases. I know from personal experience if I do not get my Sunday afternoon nap my workweek is affect adversely.

Rhythm is important to any development process… Rhythm can battle complexity, keep competition off-balance, maintain sanity and predictability for architecture and development teams.

Software Architecture Organizational Principles and Patterns, Dikel, Kane and Wilson Page 73

This is one of the underlying principles of Agile that we are aware of but have a tendency to assume. As you will notice from the above quote this is a principle that is recognized as a good practice for architecture.

What are the benefits of a team getting into a rhythm?

  1. Predictability
    Our customers and stake holders know they will see working software on a set schedule. When the stake holders see the team meeting their commitments with scheduled demonstrations a sense of order comes over the project.
  2. Managing requirements
    We can manage many requirement “crises” by instructing the stake holder we will consider the new requirements in the next iteration  where the product owner can prioritize the requirement. All new requirements are reviewed so no one feels they are being ignored.
  3. Periodic inspection
    Continuous inspection is the mainstay of Agile development. Knowing that we have our customers reviewing our work will make us comfortable in that we are creating software the meets the needs of the customer.
  4. Demonstrations of working products
    We have working products that are tested and ready of the customer to use at the end of every iteration. This help guarantee quality. We are “putting the stake in the ground” which helps us to make critical design choices expediently. We cannot get into analysis paralysis if we know we have to deliver working products.

I am sure there are many more benefits of being in a rhythm. But as noted above rhythm is very important in Agile development.

Categories : Agile
Comments Comments Off

Years ago I worked for a start-up company and under a very demanding manager. He was a stickler about not having build breaks and that our software could be delivered to whom ever we want after a build. The first task he would do on a new project was to create the make file that would build the install script for the product. To him that was the most critical component and must  be constantly maintained during the development cycle. After every build of the product we had an install package.

Software delivery is so critical especially with very complex projects that involve multiple teams. Deploying software into a SOA that is 24×7 presents challenges that we never faced in our small start-up. But the principle remains the same, “You need to know how to deliver your product right from the beginning of the project”.

How many project put this as a top priority? I have seen many situations where how we  deliver  product into the “live” environment is not considered until the end of the project. Why should this be important?

  1. Large systems can be fragile
    With a small product you can control the environment it will be deployed into. With large system deploys their are many factors you have to be aware of during a deploy. Just one table not being updated in a database can cause serious problems during a deploy. With the multiple connections that are involved it can be very difficult to track down the problem.
  2. The individual teams cannot understand the whole
    It is unrealistic to have all of the teams on the project understand every aspect of the deployment. The team’s focus is on their functionality they need to provide.
  3. A continuous integration,  build and deploy process needs to be implemented
    Continuous integration, build and deploy are the cornerstone on which a solid software system can be built. Without this in place you will have difficulty deploying a workable solution.
  4. A integration and build team is critical
    This is the team that is responsible for building and deploying the product. They understand all of the components of the system and determines the deployment strategy.

A good Agile process depends on having the foundation in place. Continuous integration, build and deploy is the foundation for good process.

Categories : General
Comments Comments Off