loading...

Advice needed... How is your Software Development Process/Cycle?

zablon18 profile image Fernando Zablah ・1 min read

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.

Posted on by:

zablon18 profile

Fernando Zablah

@zablon18

Software developer who loves working with electronics and sharing knowledge.

Discussion

pic
Editor guide
 

Hi Fernando, I don't think courses or a book is going to help you much. From your description, you are scaling your development efforts a long way beyond your ability and experience, and it is unprofessional to keep going down this path. I would recommend trying to find a mentor who has worked in the industry and is generous with their time to talk through the questions you have.

Definitely read and learn more, but so many of the answers to your questions rely on your specific situation, so nothing that already exists will really help. You need someone to spend some time with you and understand in detail your concerns and suggest approaches based on their experience.

 
 

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,

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.

What’s the difference between agile, CI/CD, and DevOps?

People To Manage Process
You require the following;

  • Scrum Master / Agile Coach - If your way of working utilizes Agile methodology then you have to hire one
  • Project Manager - This person will help you manage project time, scope, budget, and quality. You can hire or have a project manager who is flexible and understands Agile & Scrum methodology thus consolidating 2 roles.
  • DevOps Consultant - This person can be able to switch between DevOps roles depending on the scope of the project and make an effort to promote DevOps culture in your organisation.

DevOps Roles

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.

 

Hi Fernando,

Here are some books that might help:

  • Escaping the Build Trap
  • The Professional Product Owner
  • The Art of Scalability
  • Mastering Professional Scrum
 

Thanks! Will check them out.