How we develop software by Kristóf KOVÁCS (kristof.kovacs@aiee.eu) It is meant to be a general explanation of our software development process. It s a distillation of more than 20 years of industry experience.
This presentation explains how we work together with our clients on software development projects. Also it helped us greatly to collect them into one place, and forcing ourselves to formalize it.
We have four main steps: 1. We understand your project 2. We plan your solution(s) for you 3. We develop your software 4. Operation and maintenance Maybe some of these steps are already done for your project. It can be that there are already detailed specifications. Or it will be operated by your own IT department. And often, software is just part of something bigger. We understand and respect this.
Step 1 of 4 We understand your project This is the part where you (or your team) sit down with us for a lunch (with lots of empty sheets) or in a conference room with a whiteboard, and we all talk and draw schematics.
We gather all information Usually involves meeting you and your team, in person or in a teleconference. If there are any related data or documents, we would like to see them. We ask, learn, understand, talk, absorb, study... We can sign non-disclosure agreements at this step if necessary, but nothing that forbids us accepting work from anybody else.
Then we share our advice This step is always free. We love to talk to people. We tell you how we see the project. Maybe there are frameworks or open source that could be used. We estimate approximate development time & costs. We usually have lots of ideas, advice, and recommendations immediately. Chances are that we have already seen something that was similar in some ways. At the very least, we surely will have questions that make you think more deeply about your project.
And we tell you all the options Software development is a bit like saying connect A and B places : you can buy a bicycle or build a railway, or many things in between. But if your business hangs on the project, you want the development to be reliable, sustainable, maintainable but flexible. Cheap ways have their places, for example, when you just want to test a new idea. Later, you can repaint your train, but you can t turn it into a submarine. We help you with this initial decision, too. We are based in Hungary, so we usually manage to be a bit cheaper than others, but we don t aim to be a low-cost-low-quality provider: we are good at what we do. If price is at the essence, we have trusted developers in even cheaper regions, but even then, we keep project management in our hands.
Step 2 of 4 We plan your solution(s) for you This may happen as a dedicated part of the development process, or as part of the contract writing.
How does planning happen? For normal projects, this step is part of our initial quote, and is done by us for free. But certain project sizes may require extensive planning. In this case, we first contract for writing the detailed specs that anyone can then use to develop the project. In case of a serious inquiry we are willing to make a detailed quote that already contains the depth of planning needed to quote a price and timeframe for the project.
We use AGILE best practices We believe in iterations. It s very likely that if the work takes more than a few weeks, or have clearly separable deliverables, we will suggest breaking it up into Phases. We believe in relatively short timescales. We prefer to deliver working software early, even if with a limited feature set, and work up from there, in constant communication with you. This lets you decide what is urgent and what is not. This lets you test-drive stuff as it is being developed. We are signatories of the Agile Manifesto, a code of conduct for software developers, and we honor its twelve principles.
What is in the plans? Contains specification of the deliverable and detailed quotes for time & cost. Usual formats are use cases, mock-ups, database models, feature lists, or other industry standard description methods. We use the best tools for the task: some projects are better described with words, some with drawings, some with database diagrams, some with scenarios (use cases). Or a combination of these.
Step 3 of 4 We develop your software This is where the fun begins.
At the start of each Phase We hold a teleconference with the developers, to detail the plans into doable programming tasks, and to make a schedule for the week. Each week, we do this again. Our lightweight project management methods are based on Scrum methodology, the recommendations of the Agile Alliance, and of course, the many years of our own experience.
Ongoing communication During the development, questions will arise that require quick decisions. We would like to have the phone number of the best expert on your team. One you trust. We would like you to have a look at our progress about once a week. You have to give us someone whose decisions you trust as if those were your own. There is no point if her decisions are overridden by someone else later.
When will it be ready? Our initial estimate, when we guess the overall size of the project, will be measured in Phase X is about N weeks. During the development, the coding tasks for the 1 or 2 week cycle are specified in hours by the developers. When we start a Phase and write the detailed specifications, the estimate is in days. Feature X takes N days. Depending on the agreement between us, we invoice by programmer hours used or the agreed fixed price of the Phase. On projects where there are a lot of unknown factors (for example, we have to take over somebody else s program code) where it may be humanly impossible to give reasonable estimates, then it is best for both parties if we work with a flat hourly fee.
Step 4 of 4 Operation and maintenance Because it s not ready if it s not out there.
A traffic-heavy software has very different needs from one that for example does complex calculations, but have few users. And does it have high loads all the time, or just in peaks? If the latter, then we may suggest serious cost-reducing solutions, like having a cloud involved. What kind of database engine? Can something be cached? Do milliseconds matter, or should it be cheaper instead? Operation Once your project is finished, it usually needs a server to run on, and fast Internet. Different projects may require different topologies. We can provide you with the right infrastructure, or advise your provider.
Maintenance The foundations of your system will sooner or later require security updates. Your business landscape will change. Laws may change. Software may need tuning. You may have fresh new ideas to make it even better. And don t forget backups. And make sure that when there is a need to restore it, there will be someone who can actually do it.
The maintenance contract We apply security patches, monitor your system, and immediately step in if something bad happens. Contains a predetermined number of programmer hours that you can use to have changes made. We provide you with technical support. You always have someone to call if you need. Big changes and new features are new Phases, and are best handled in a new development contract. We use automated monitoring systems that alert us in SMS when something goes wrong. Chances are, our guys are already working on solving the problem before you even notice it.
Closing thoughts It s all good and fine, but why choose us? Besides we being the ones who supply you with handy materials like this one?
Telecommuting developers not only reduce costs, but also allow us to be more flexible. Our sector experience includes manufacturing, shipping, finance, automotive, FMCG, retail, telecomm, healthcare, media, education and defense. We constantly experiment with bleeding edge technologies, so we are often experts by the time others first read about them in the press. Our comparative advantages Telecommuting developers for reducing costs Project managers with realworld business experience Experience in several sectors Always cutting-edge Sustainable development
Really thank you. Thank you for your time!