IT Project Tips and Tricks - 02 - The Seven Sacred Disciplines of App Dev
Here are the seven disciplines that you must get right, or the project will fail. This means if you get just one of these wrong but the rest right, the project will still fail. It's all or nothing. It's very unforgiving. It's like a chain, if one link fails, the whole chain fails.
- Methodology - how the project work is managed
- Requirements - what the app will do
- Architecture and Design - the foundational structure of the app
- User Interface - what end users see and interact with
- Coding - self explanatory
- Testing - self explanatory
- Environments and Deployment - how the app moves from development to production
We will dive deeper into all of these in later articles, but for now the question becomes, "How do we guarantee that we succeed in each discipline?"
The answer is that there must be one person on the team that is responsible and accountable for making sure that quality is maintained in each discipline. We will get into the different roles of the project team members in a later article, but I will list the roles here and by a process of elimination convince you who bears this MOST HEAVY BURDEN. Here's a hint, disciplines 3, 4, 5 and 6 listed above are technical, so the person needs a strong technical background.
- Stake Holder - nope, not technical enough
- Project Manager - nope, not technical enough
- Subject Matter Expert - nope, not technical enough
- Business Analyst - nope, their main responsibility is requirements
- Technical Team Lead - YEP, THIS IS THE SUCKER WHO'S HEAD IS ON THE BLOCK
- Architect - nope, their main responsibility is the architecture and leading tech inspections
- UI Expert - nope, their main responsibility is a beautiful and practical UI
- Developer - nope, their main responsibility is writing code
- Database Keeper - nope, their main responsibility is data persistence integrity
So, let's touch on the Technical Team Lead role now. This person must be EXTREMELY experienced in all the disciplines and their main job is to make sure that quality is maintained in all of them. Details on how this is done will be spread throughout all the articles but suffice to mention a few here. The Tech Lead attends all the Stand Up meetings and can smell when something is rotten a mile away. They attend requirements, design and code inspections on the more difficult use cases. They spot check the source code from time to time. They do not tolerate broken builds. They spot check test the app themselves for egregious errors. They enforce the integrity of the different environments. They must have a great record of accomplishment, have excellent people skills, be trusted and respected by peers, have great technical skills (they pretty much have to have been a former developer) and take pride in their reputation for successful deliveries. The company culture should be that a Tech Lead's reputation is on the line if the project fails. But really if this person has the aforementioned traits, the project should not fail. Inevitably there will be projects that fail or are late for reasons beyond their control. For example, dependency on other departments (server team, networking, business experts, etc...) that refuse to cooperate. This happens a lot in big companies. If it does, they will inform upper management such that they can decide if they want to get involved and make things happen.
The takeaway here is that the seven disciplines of app dev are sacred, quality must be maintained in all of them or the project fails, and it is the Tech Lead's responsibility to do so.
Comments