Hello, I'm a software engineer student, I started a small software consulting/developing company almost two years ago, we started as 3 partners who did the programming and designing of the products our clients asked us for (mostly web apps), but as we received more clients we started hiring more people.
We are 6 persons in the team, the problem is that we have problems in the software development methodoly, since we dont have something well established, we define features and we have 1 week to deliver one feature, (like a scrum sprint), then we have a meeting about the progress and the next steps. But we dont document what is it really what we are going to do... like tests, components, interfaces, this makes the quality of our code and delivery times look bad. I started learining devops to help automate the development to production process, and started investigating how to integrate QA in the process, but I feel lost I dont know how to integrate it all together, how to document all the project before we start to coding. In my univesity classes they teached me UML for modeling classes, components, case uses, etc.. But I feel that they are used for other technologies, like php and java apps. Where we work mostly with React web apps with an Express js REST Api and a MySQL database.
So my question is: How do you organize/apply all of the software development process in your work/bussiness/professional life? Do you have any recomendations on courses/book for this type of area in the software development business.
Thanks.
Top comments (6)
Hi Fernando,
I understand the situation you are in and after working for 2 startups before this a "classic real problem" as mentioned by John Peters.
You need aligned processes, people and cost efficient tools that emphasize automation. What I am going to share below is just a summary of items you need to consider when making future plans based on my experience. Am not an expert rather am a solution architect with entrepreneurial spirit.
People To Manage Process
You require the following;
Tools To Automate Process
See this amazing summary made by XebiaLabs.
xebialabs.com/periodic-table-of-de...
Feel free to pic any tools tools that work for organisation
Documentation of Process
This is a very hard task. It requires alot of effort (in the beginning then eventually becomes easier) by everyone (developer, manager and architect) the project in order to make it work. What is missing is a documentation framework that works as a guide for future projects and acts like a high-level handover documentation of a project to any developer, manager or architect. After doing so many web projects, I did create a simple framework that considers DevOps flow and compliments Scrum Board (like the Jira Software board) and made it easier for other teams or team members to inherit a project. It's a fairly long framework hence I can not highlight it here. Feel free to reach out and ask more details.
Reference:
synopsys.com/blogs/software-securi...
hackernoon.com/devops-team-roles-a...
You can maybe improve your API Documentation by checking out Swagger.
For the Rest maybe don't have such a tight plan. Take one whole day to improve all the pieces you don't like ;).
For Dev Ops you could check out Buddy. I haven't tried it yet but it looks promising.
You are describing a classic real problem; which is that of Architecture. If a company has 100 programmers and no Architect, they will have 100 different results. Even well established companies don't have Architects. The best way forward is to double down on reusable components, establish reactoring sessions, make coding rules and do your best to compose sotware instead of always creating it. You have to have dedicated people that research and provide composable software.
Very few companies do this today. With increasing complexity many won't make it long term.
Hi Fernando,
Here are some books that might help:
Thanks! Will check them out.
Thanks!