Software Development Methodology

Thursday, September 18, 2008

S-DAD, ePublishing’s Solution-Driven Agile Development

Each enterprise brings unique challenges to the development process. Typically, external market forces determine your processes, and the needs of your many stakeholders must be considered.

Hence “faster and cheaper” rule the day – which is the polar opposite of how successful Enterprise-Class technology is engineered. ePublishing, with decades of software development and architecture expertise, has crafted its own development methodology to address these challenges.

The result is S-DAD, ePublishing’s Solution-Driven Agile Development methodology.

The ePublishing development methodology is best described as “The Project Defines The Process.” The majority of the development we undertake cannot be fit into any single methodology or protocols, as there are rarely definitive beginnings and endings to our client’s needs and projects. We work in a world of quickly shifting priorities -- rapidly adding and subtracting features and functionalities with little notice.

Throw in seemingly impossible deadlines – and achieving a balance between predictive and adaptive software development methods becomes extremely important.

Agile Development
Agile software development is an umbrella term for a collection of development methodologies that focus on adaptability over predictability. Projects tend to be separated into smaller, more manageable phases that can be quickly completed (e.g. within one to four weeks) and then either released into production or expanded upon with additional initiatives in a rolling fashion. Agile practices encourage frequent direct communication to supplement written documentation, and success is ultimately dictated by software that works. Please note that in the ePublishing environment this methodology includes rigorous stress and unit testing, Q/A, and peer review.

Solution-Driven Agile Development, or S-DAD, is ePublishing’s own implementation of Agile methodologies based on extensive experience of what actually works in the real world of fast-paced web application and development/management.

As is the case with Agile, S-DAD allows for and anticipates requirements changing as the project proceeds, and it espouses small projects with quick turnaround time. S-DAD strikes a delicate balance between written/spoken communication, and formalized documentation so as to maximize adaptability without sacrificing clarity of concept or accountability.

Solutions Manager – Roles and Responsibilities
The central owner of S-DAD is the Solutions Manager, the person who ensures all parties, including the individual stakeholders, can work seamlessly as one unified team with a common, albeit potentially changing set of goals. ePublishing’s Solutions Managers excel at many roles, most importantly combining project management with client communications and industry expertise. Solutions Managers play a central role in ensuring your success.

Finally, there is no such thing as "project completion" within S-DAD. Projects meet milestones, some bigger than others, but there is always room for improvement. One of the primary tenets of S-DAD is to continually help you realize the full potential of each of your sites. It is an ongoing commitment that recognizes the reality that market forces and business strategy must drive your sites – and those sites must generate revenue – a point easily overlooked when the focus is purely on the technical aspects of a process.

Flexible Processes to Accommodate New Ideas
Allowing for flexibility and quick implementation of new processes and features within the application is an essential part of the initial build. S-DAD is end-user focused. The Solutions Manager plays an integral part in this process, by becoming highly knowledgeable your business through regular communication and consultation. The Solutions Manager must be able to analyze and consult on perceived short- and long-term technology needs to best serve you and your users.

The S-DAD process begins with a new idea or enhancement. For example, a client may express an idea, feature, or opportunity, which needs to be articulated and defined in detail. The client and their Solutions Manager, and often including senior developers and designers, will meet and hash out all of the ideas being considered for a given project.

Solutions Managers do not simply transcribe requirements or otherwise act simply as a middleman. They take ownership of the project, asking exploratory questions, thinking problems and issues through fully, offering suggestions and expert recommendations, and adding intellectual value to the project from the very beginning. Within ePublishing, this process may include the CTO, and a business analyst. The Solutions Manager will then take all of the ideas discussed and assemble them into one or more coherent Statements Of Work so that all interested parties have a common document as a reference.

Large-scale ideas are broken into phases or smaller sub-projects, which can be rapidly developed and deployed. These smaller projects are created with the knowledge that they are part of a greater whole –and thereby do not sacrifice time or create dependencies that must later be addressed.

Flexible Teams
Once a Statement Of Work has been completed and approved, the Solutions Manager assembles the team best suited for the project. For small, simple projects, the team may be one developer; or for more complex projects, the team could consist of many developers, architects, designers, data analysts, UI specialists, code reviewers, SEO experts and Q/A engineers.

The Solutions Manager assigns each team specific deliverables and deadlines for which they take full ownership and must see to completion. Of course, as S-DAD is an adaptive process, there is room for team members to suggest improvements to the Solutions Manager if it will enhance the deliverables. Likewise, if needs change during the course of development, these changes can be incorporated into the release using a disciplined, organized approach to minimize scope creep.

At the center of all of these exchanges, the Solutions Manager plays a proactive role to monitor progress from all team members and is responsible for ensuring completion of milestones on time and on budget. The Solutions Manager must delicately balance all changes to deliverables with timelines and must make the final decision (in concert with the client) as to what should be promoted into the current phase and what should wait until a subsequent release.

Q/A Testing
Once all deliverables have been completed in a safe development environment, the application is migrated to a staging environment in a mock migration that mimics the eventual production migration in every way possible. Once completed, Q/A staff will use the statement of work to review all of the deliverables for correctness, code efficiency, performance, and reliability. Q/A staff may also make suggestions or comments about the project, which the Solutions Manager will review.

Once Q/A has completed all testing satisfactorily and all issues are resolved, the project is released to you for Approval Testing. This step is very critical in the process, because it is the first time you see what was originally envisioned. Reaching this stage quickly – before too much time has elapsed between planning and Approval Testing -- is the primary reason why small projects are preferred over large ones.

During the approval phase, your stakeholders will be expected to verify that all deliverables as articulated in the statement of work have been completed to their satisfaction and that there are no subsequent issues or concerns that need to be addressed before release.

An Ongoing Creative Process
Once approved, a migration will be scheduled and then executed by the Release Manager. When a migration is complete, new projects are initiated, whether immediately following the release of the previous project or months later. The next phase for a site may have already been envisioned, with additional requirements discovered during the development or testing process, or the client and the Solutions Manager may have created new initiatives during the process.

In any case, the creative process continues to move onward as new ideas emerge to improve usability, quality, profitability, and the experience for the end user of the application.