Realistic Software Development
Unleashing the power of methodologies and good practices!
In order to create good software it is absolutely necessary to have a perfect management of tasks and people, this can be achieved by implementing changes in the way the project manager manages teams.
So let's move on to the basic methodologies and good practices necessary for success.
The key to victory is to be organized and scalable and to do this it is mandatory to have good tools - the tools must become part of your routine and merge perfectly with all the tasks needed. In my opinion the best set of tools out there for managing entire ecosystems are provided by Atlassian.
This incredible tool is responsible for managing your entire project, you can create workflows with ease, export reports tailored to your needs, build your teams tasks and control tasks with absolute visibility. This tool becomes the main control center for all the tools related to Atlassian, for example you can integrate it with Confluence enabling documentation to be available in each task. For Software Developers it is gold since you can accurately track changes of all the code associated with a task, run all the tests needed to make sure everything works and deploy it frequently using continuous integration.
Confluence is a content collaboration software that allows for extreme availability of documentation, storing documents in a Microsoft Word is a thing of the past - as they get old and heavy it becomes stressful to manage however Confluence makes it seem like a walk in the park. Notes, project plans, product requirements, multimedia, dynamic content build, automatic versioning, instant previews, full-text search, pinned comments, templates and a powerful search engine to find work quickly and easily.
Bamboo is a powerful tool for building, testing and deploying solutions in real time using continuous integration. The ability to fully integrate it with JIRA Software and Bitbucket gives full traceability for making sure a requested feature gets deployed to the server, Bamboo supports parallel tests, branch detection, quarantine, triggers, docker agents, deployment projects, dedicated agents and more.
Status Page is an automated downtime page with incident communication, sometimes your project may go offline for unknown reasons and the users start calling and sending emails asking what happened, at this time instant communication of unavailability is extremely important to notify users. Who knows maybe a bot in china can think your site is sexy and suddenly your server had a DDOS.
Bitbucket is a massive distributed version control system that can be scaled to work with teams of any size, allows simple code reviews, ensure granular permissions to files, diff views, projects and Integrates easily with JIRA Software, Confluence and Bamboo.
HipChat is a chat for teams built for business, it integrates with the Atlassian stack meaning it becomes a ChatOps allowing it to operate remotely in integrations and give a real time feedback of everything that is happening - Resolve incidents faster, stop endless escalation ping-pong and collaborate in real-time with other agents, or across technical teams, with @mentions in a team room. It supports file sharing, email, SMS, video calling, screen sharing and uses 256-bit SSL encryption security.
Extend the Atlassian Stack with over 2,000 integrations, add-ons, and plugins.
Managing time of tasks, meetings, calls and breaks to ensure the deadlines are met is an extremely demanding task, for this reason the necessity of being organized requires good tools - you don't want to do this in a Excel sheet and constantly ask the feedback of your team, use JIRA Software and create a detailed report of who is working on what and the progress you need to make the delivery. Burndown charts are useful for visually identifying the progress of the delivery, define milestones, sprints and do a standup meeting everyday. There is also the need to evaluate how tired your team is from all the work that has been done in the past, if too much workload is persistent you need to better plan your sprints and allocate the tasks by effort and the day of the week in order to not cause burnouts. Get rid of negative behavior and be the change your team needs to promote a healthy environment based on trust and team work.
There are a lot of methodologies but the one i think is more productive is Agile Scrum.
Agile Scrum is a cycle of never ending roles, responsibilities and meetings. It is beginning to become a trend in Marketing but is mostly used in Software Development, this is due to the ability to plan and execute milestones with precision while minimizing the risks and complexity. Scrum has the roles of Product Owner, Scrum Master and Team.
The Product Owner should be a person with vision, authority, availability and is responsible for keeping the team on track however micro managing is not permitted.
The Scrum Master should be the bridge between the Team and the Product Owner, this person does not manage the team but destroys all the walls that are blocking the team.
The Team is self managed and has autonomy and responsibility to meet the goals of the sprint.
I recommend Microsoft technologies for building complex quality applications.
One of the top Integrated Development Environment (IDE) for building and integrating complex applications.
Web API is a framework for building web APIs that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. It is extremely powerful in providing secure information to several clients and has a low learning curve.
CSharp, or C#, is Microsoft's most popular and powerful programming language that is available in Cloud, Desktops, Mobile, Gaming and more.
Your office space must have windows that open, light, good air quality with no dust, a coffee machine and food supplies! no excuses!
Did i miss something? Feel free to comment below!