The Agile Development Team
The Development Team members are the “Construction Workers” in the Technology Solution Provider industry.
As with Architects that design the Sky Scraper, the fruits of their labor are only realized by the Construction Workers team’s success. Each construction team member has a very important responsibility for the success of the Sky Scraper.
The Development Team is the only team that produces something that has concrete value for the Client. All of the other teams support the successful delivery of the Development team’s work.
Without successful delivery of the other team’s works, Business, Architect, QA and Network, the Client’s expectations could not be successfully met but the Development Team is the only collection of works that the Client will ever receive to measure the engagement’s success.
This places the highest responsibility of the engagement on the Development Team.
The primary responsibility of the Development Team is the Business realization of the Ontology, the working model of the Entities and Interactions with Domain Knowledge, of the Enterprise Architecture Model.
Team Justification
The Development Team is a member of Technology Architecture.
Along with the QA and Network teams, they provide the delivery components, define the hardware requirements and create the deployment strategies.
The Sprint team’s largest collection of members is generally the Development Team members.
They are the implementors of the Architect’s vision of the Business Team’s communicated requirements for success.
During Sprint Planning the Development Team members set their capacity, in daily hours, for the new Sprint.
The Designers defined tasks from the SOWs created and assign tasks that fill eighty percent of the Sprint hours.
The additional twenty percent is development headroom and opportunities for paying down on the Technical Debt credit card.
The assigned Developer reviews the assignments, discuss any issues and then commits to the agreed upon tasks and the expected time it will take to complete the assignments.
Roles and Responsibilities
Developer Lead – This role manages the deliveries of the team. This is the Scrum Master’s primary contact to the team.
The Developer Lead is responsible for the quality of the code delivered by the team’s core developers.
Code review and compliance with engagement Best Practices, Code Standards and established Design Patterns are enforced by the Developer Lead.
Any team member coaching, mentoring or training is the responsibility of the Developer Lead.
The Developer Lead can be a Sprint developer but the role’s primary responsibility is to ensure that the team is delivering quality and a sustainable code base for the QA Team to validate.
This role is a member of the Daily Scrum Stand Up Meetings but speaks only if development tasks are assigned.
UI Developer – The User Interface Developer is a developer who has intimate knowledge of the entire Application stack and a good understanding of the Technologies implemented within the Services Oriented Architecture (SOA) stack.
The primary skill set for the UI Developer is Client-side Technologies. They role requires expert knowledge and experience with all aspects of the User Experience.
The Technology expertise required includes HTML, JavaScript, jQuery and related frameworks.
A strong knowledge of Cascading Style Sheets (CSS) and Client-side frameworks such as Angular, Knockout and Bootstrap are expected as well.
The role requires that any Client Technology that is selected for an engagement must be mastered.
This role is a speaking member of the Daily Scrum Stand Up Meetings and delivers to the Scrum Team the activities of the previous day, the planned activities of the current day and any blocks.
All resolution details are scheduled as an “Off-line” meeting, with the relevant Team Members. after the Stand up meeting by the Scrum Master.
Application Developer – This role’s primary development responsibilities are focused on the Application stack.
This is generally a Model/View/Controller Web application but can be any Client-facing selected technology for the engagement.
The Application Developer must be experienced in all aspects of the designed solution. This includes support for the UI Developer and understanding of the SOA stack for support for the Back End Developer.
The Technology requirements include all Design Principles, Object Oriented Programming (OOP) Best Practices along with a good knowledge of the implementation of Design Patterns
All code developed by this role must be created using Test Driven Development (TDD).
The code must be first created within the Testing Framework standards defined for the Test Assemblies.
The code starts as a RED Failing test. This acts as a visual “To Do” list of defined Code validation abstractions. The test is then developed to pass in any way possible for the GREEN test. At this stage some Best Practices may be waived.
The most important task of the Application Developer is the YELLOW stage of TDD. The code within the Test Assembly, that passes now as a GREEN test, is moved into the Assembly under test and refactored into the Design Principles, Best Practices of OOP and comply with established Design Patterns.
Code Review of all developed code is essential for ensuring that the YELLOW refactoring is completed successfully. This action helps ensure that the code base delivered to the Client will lower the Total Cost of Ownership (TCO) throughout the Software Development Life Cycle (SDLC).
Knowledge of Aspect Oriented Programming (AOP) is required to implement the minimum Application-centric Cross Cutting Concerns provided by the Back End Developer for Error Handling, Logging, Instrumentation (Messaging) and Security.
This role is a speaking member of the Daily Scrum Stand Up Meetings and delivers to the Scrum Team the activities of the previous day, the planned activities of the current day and any blocks.
All resolution details are scheduled as an “Off-line” meeting, with the relevant Team Members. after the Stand up meeting by the Scrum Master.
Back End Developer – This is the role that implements the Architect Team’s solution for providing Data to the Application stack.
The Back End Developer, sometimes referred to as a “Middleware Developer”, must be proficient in all aspects of the Service Oriented Architecture (SOA) stack. This includes Web Services that implement SOAP and REST architectures for cross-domain delivery of information for the Applications.
A strong knowledge of the Representational State Transfer (REST) architectural style and the concepts of State representation rather than concrete Methods implementation are required for this role.
A thorough knowledge of Data Layer Abstractions such as Object Relational Mapping (ORM) frameworks for Database Table representations as ORM framework objects is essential.
Intimate knowledge and experience with creating Repository Patterns using the Request/Response Design Pattern to transform collections of Entity Objects into single Complex Data Transfer Objects (DTOs) that can be serialized at the Web Services layer for Application consumption.
A strong skills with Business Rules and Rules Engines that are consumed on the Business Layer of the SOA stack is required to deliver efficient payloads to the Client Applications.
An understanding of Aspect Oriented Programming (AOP) is required to implement the Cross Cutting Concerns that all SOA assemblies with consume. They are AOP assemblies for Error Handling, Logging, Instrumentation (Messaging) and Security at a minimum.
An implementation of these Cross Cutting Concern assemblies will be used for Application-centric AOP requirements.
This role is a speaking member of the Daily Scrum Stand Up Meetings and delivers to the Scrum Team the activities of the previous day, the planned activities of the current day and any blocks.
All resolution details are scheduled as an “Off-line” meeting, with the relevant Team Members. after the Stand up meeting by the Scrum Master.
Database Developer – The Database Developer has the responsibility for the complete understanding of the Client’s current information landscape.
Requirements for new databases and modifications to the existing data repositories are defined by the Architects Team’s Data Architect and Database Analysts Statement of Works (SOW).
The requirements defined by the Data Architect’s SOWs are implemented by the Database Developer.
This role works with the Architect team to create functional requirements, modifies existing databases and data products according to the defined Client’s Data Domain needs.
Database Developers works with other Development Team members on topics related to Data Management and Data Manipulation and Reporting for the Daily Operations.
Database Developers are responsible for getting the “Data Right”.
Relational schema are the prime model for the Database Developer, using single rows and small subsets. Database Developer uses ETL (Extract, Transform and Load) skills mostly for Data Feeds
The Database Developer is responsible for the Transactional Database Model within the Client’s Data Domain. This is called Online Transactional Processing (OLTP).
The ability to create defined reports, as a Report Writer, is a skill set requirement for this role.
An understanding of Enterprise Data Management (EDM) to ensure database quality, and performance that serves both internal and external Client Users.
This role is a speaking member of the Daily Scrum Stand Up Meetings and delivers to the Scrum Team the activities of the previous day, the planned activities of the current day and any blocks.
All resolution details are scheduled as an “Off-line” meeting, with the relevant Team Members. after the Stand up meeting by the Scrum Master.
Business Intelligence Developer – The Business Intelligence (BI) Developer role is to get the “Out” of the various repositories within the Organization for Reporting and Analysis primarily for Management decisions.
The BI Developer turns the Domain Data into “Actionable” Information.
Skills required is the ability to target a specific area for improvement, with quantifiable progress, given realistically achievable goals in a time frame that adds value to the Business Domain.
An intimate understanding of the Business Domain is required as Business Intelligence (BI) is being used more across all functions of the Domain’s Value Chain.
The Domain Knowledge Model that supports the Domain’s Value Chain is created by the BI Developer using Online Analytical Processing (OLAP) skills.
These skills include creating Fact Tables, Dimensions and Cube Structures primarily as Star schemas.
Data Mining, Data Warehouse and ETL (Extract, Transform and Load) skills are required to help create the Data Landscape to OLAP processing.
The BI Developer is responsible for loading Reporting Systems.
A solid understanding, implementation experience and tools for creating Enterprise Data Management (EDM) strategies to ensure database quality, and performance are required for a complete BI Developer.
This role is a speaking member of the Daily Scrum Stand Up Meetings and delivers to the Scrum Team the activities of the previous day, the planned activities of the current day and any blocks.
All resolution details are scheduled as an “Off-line” meeting, with the relevant Team Members. after the Stand up meeting by the Scrum Master.
Continuous Integration Manager – The Continuous Integration (CI) Manager role creates and manages the daily deployments to the Development environment with “Smoke Tests” to ensure that the integrity of the Code Base is maintained throughout the entire development cycles.
The CI Manager also manages all “Code Pushes” to higher environments such as QA, Staging, a Production emulation environment, and Production.
All automated test suites and harnesses along with the required scripts are managed by the CI Manager.
The Web reports for the Business to monitor the Sprint development progress through Acceptance Test Driven Development (ATDD) Behavior Driven Design (BDD) tools such as SpecFlow are managed by the CI Manager as well.
The Continuous Integration Manager is responsible for success delivery of the Sprint Deployment code to QA and ultimately to Production.
This role is a speaking member of the Daily Scrum Stand Up Meetings and delivers to the Scrum Team the activities of the previous day, the planned activities of the current day and any blocks.
All resolution details are scheduled as an “Off-line” meeting, with the relevant Team Members. after the Stand up meeting by the Scrum Master.
Code Review Manager – Successful code reviews is the responsibility by the Code Review Manager.
The Code Review Manager assigns Code Review Leads to the approved Design Code Designs.
This role is responsibly for ensuring the scheduling of all Code Reviews and reviews Code Review follow-up requests, if required.
The Code Review Manager certifies that the code reviews has been completed successfully.
This role delegates the majority of the code review responsibilities to the assigned Code Review Lead.
Code Review Lead – All code reviews are managed by the Code Review Lead.
This is a rotating role amongst all of the Development Team members.
The Code Review Manager delegate the scheduling responsibility to the assigned Code Review Leads.
This role selects a Code Technologist to act as an assistant for during the code review process.
The Code Review Lead will be responsible for secondary knowledge about the reviewed code base.
This role will be able to act as a “Alternate Proxy Developer” when required for Bug fixes and change management feature functionality requests when the original Developer and the Code Technologist is not available.
The Code Review Lead role creates the third level depth of knowledge of the Client’s code base deliverables.
Code Technologist – This is a Code Review Lead assigned role for assistance in the Code Review process.
This is a rotating role amongst all of the Development Team members.
The Code Assistant will be responsible for primary knowledge about the reviewed code base.
This role will be able to act as a “Primary Proxy Developer” when required for Bug fixes and change management feature functionality requests when the original Developer is not available.
The Code Technologist role creates the second level depth of knowledge of the Client’s code base deliverables.
Areas of Participation
Detail Representation – The development tasks are the detailed representations of the Business Model.
The Development Team is the Builder of the Technology Domain Entity solution.
The Domain Entity Data Model is create within the selected Development language such as C# and .NET and built on the defined Network Architecture.
The Cross Cutting Aspect of Security is designed to be available and applied as a Domain Component Level Authentication and Authorization concern.
The Software Development Forces of Nature are used as Design Constraints to help manage the forces at work such as Capacity and Latency (Affinity) along with Intermittent Failures.
The “Human Factor” is a design consideration, both intentional malicious attacks and unintentional human error.
Functioning Enterprise – The results of the development tasks must be the Business Enterprise’s realization of a successful audience perception of success: A Functional Enterprise Business Technology Solution.
The Data Entity models must be presented in “Process Flows” that create an “Enjoyable User Experience”.
A Functional Enterprise is extensible through Distributed Systems that can support heterogeneous Clients that can scale with time with minimum of design changes.
Changes in the Organizational Roles should not adversely affect the scalability and extensibility of the Functional Enterprise Business Technology Solution.
The deployed solution that creates the Functional Enterprise should be as non-temporal as possible.
Its Timing Cycles should be defined dynamically and driven by the Strategies of the Enterprise at a single point in space and time.
Participation Requirements
-
Data Definitions
-
Developer Lead
-
Application Developer
-
Back End Developer
-
Database Developer
-
Business Intelligence Developer
-
-
Data Enterprise Delivery
-
Developer Lead
-
Application Developer
-
Back End Developer
-
Database Developer
-
Business Intelligence Developer
-
Continuous Integration Manager
-
-
Program Development
-
Developer Lead
-
UI Developer
-
Application Developer
-
Back End Developer
-
Database Developer
-
Business Intelligence Developer
-
-
Enterprise Business Functionality Delivery
-
Developer Lead
-
UI Developer
-
Application Developer
-
Back End Developer
-
Continuous Integration Manager
-
-
Distributed Network Services
-
Developer Lead
-
Back End Developer
-
Database Developer
-
Business Intelligence Developer
-
-
Enterprise Services Delivery
-
Developer Lead
-
Back End Developer
-
Database Developer
-
Business Intelligence Developer
-
Continuous Integration Manager
-
-
User Access Security Development
-
Developer Lead
-
UI Developer
-
Application Developer
-
Back End Developer
-
-
Enterprise Security Delivery
-
Developer Lead
-
UI Developer
-
Application Developer
-
Back End Developer
-
Continuous Integration Manager
-
-
Operational Timings Development
-
Developer Lead
-
UI Developer
-
Application Developer
-
Back End Developer
-
Database Developer
-
Business Intelligence Developer
-
-
System Event Scheduling Delivery
-
Developer Lead
-
UI Developer
-
Application Developer
-
Back End Developer
-
Database Developer
-
Continuous Integration Manager
-
-
Business Rules Development
-
Developer Lead
-
Application Developer
-
Back End Developer
-
Database Developer
-
Business Intelligence Developer
-
-
Enterprise Strategies Delivery
-
Developer Lead
-
UI Developer
-
Application Developer
-
Back End Developer
-
Database Developer
-
Business Intelligence Developer
-
Continuous Integration Manager
-
-
Daily Scrum Stand Up Meeting
-
All Developers
-
Continuous Integration Manager
-
-
Sprint Design Reviews
-
Development Lead
-
Code Review Lead
-
Assigned Code Technologist for Designs Under Review
-
Continuous Integration Manager
-
-
Sprint Development Reviews
-
Code Review Lead
-
Assigned Code Technologist
-
Developer Under Review
-
Developer Lead (Optional)
-
-
Sprint QA Release Reviews
-
Code Review Lead
-
Assigned Code Technologist
-
Continuous Integration Manager
-
Developer Under Review
-
Developer Lead (Optional)
-
Wisdom Pearl # 138 – What is Success in Business Technology?
Business Drives Technology
… Technology Does Not Drive Business
…… Be Sure that your Technology Solutions Truly Supports the Business Success Criteria
Latest posts by Brad Huett (see all)
- DevOps: A Bridge to Your DevOps Culture - March 25, 2016
- Embracing Test Driven Development (TDD) - March 25, 2016
- DevOps: Delivering Agile Projects - March 25, 2016