Archive for May 2015
One of the first decisions you need to make before starting a project implementation is: which development methodology should I use? There are different approaches to the software development process. Two of the most popular methods are Waterfall and Agile.
What is Waterfall?
Waterfall is a linear approach to software development. That means that project stages are executed sequentially, and no stage can begin before the previous one is finished. You receive your completed project, fully developed and tested, at the very end of the process.
Pros of Waterfall methodology:
- Simple and easy to understand and use
- Easy to manage due to the rigidity of the model
- Phases are processed and completed one at a time
- Works well for smaller projects where requirements are very well understood
Cons of Waterfall methodology:
- You cannot go back a step; if the design phase has gone wrong, things can get very complicated in the implementation phase
- High amounts of risk and uncertainty
- Not a good model for complex and object-oriented projects
- Poor model for long and on-going projects
- Not suitable for the projects where requirements are at a moderate to high risk of changing
What is Agile?
Agile development, as opposed to waterfall, focuses on building software iteratively. The project is divided into small modules and delivered in weekly or monthly sprints. During each sprint, a certain functional set of features is developed, tested, and delivered to you for evaluation. This approach emphasizes rapid delivery.
Pros of Agile methodology:
- Value is added every sprint
- Easier to add features that are up-to-date with the latest industry developments
- Project priorities are set before every sprint and evaluated after each sprint
- Customer feedback is allowed and will contribute to the final end product
- High level of customer involvement (strong sense of ownership)
- Short time to market: quickly produce a basic version of working software
- Transparency is high
Cons of Agile methodology:
- Projects can run longer than anticipated
- Requires high level commitment of time and energy from developers
What can we conclude from all this? Both methodologies have their own strengths and weaknesses. The choice of methodology really depends on the goals you want to achieve. The key to deciding which is right for you comes down to the context of the project. Is it going to be changing rapidly? If so, choose Agile. Do you know exactly what you need? Good. Then maybe Waterfall is the better option. Or better yet? Consider taking aspects of both methodologies and combining them in order to make the best possible software development process for your project.
Do you use the Waterfall or Agile methodology? Why? Have you ever tried combining the two? How did that work out? Please, tell us below.
Business Development Manager
Professional Software Development
Startups have short launchpads and high expectations. In order to lighten the yoke, many startup founders turn to outsourcing, letting a third party provider handle some aspects of the business.
If you do it the “right way”, you can build a very successful company that way. The right way is *not* to think of your remote team members as outsourcing, but as a key part of your team.
In considering outsourcing as a potential option, you must first weigh the positive and negative impacts. Outsourcing frees up leadership to focus on the parts of the business that differentiate you from the competition, while staying assured that the basic parts are all still operating properly.
Outsourcing is a great option for some startups, but it can be confusing. There’re 5 questions you should answer to decide if outsourcing is the solution:
What is outsourcing?
Outsourcing is the farming out of a business process or service to a third-party provider. Outsourcing frees up some mental space for founders and can sometimes even save money.
What exactly are you outsourcing?
There are certain skillsets which are difficult to bring in-house. It is essential to understand what you will and what you will not be outsourcing, to understand what should rest totally in your control and what can be handled by someone else.
Is the vendor startup-oriented?
The choice of which company to outsource to is important. Vendor should be very active in implanting best practices from the software industry into the startups they work with.
Are you a good client?
Good clients should know what they want, otherwise they’re effectively wasting their own money. A highly collaborative attitude is helpful too. Clients should want to understand the development process just as developers should get a handle in the product’s business objectives. A mismatch between end-project and expectations is often the result of poor communication.
Does the reputation of the vendor matter to you?
People often rely on reputation to make outsourcing decisions. Ask for reviews and recommendations of providers to try and determine which one best fits your needs.
Outsourcing is one of the earliest crucial decisions that startups have to make after inception. Often, the decision lies not in whether to outsource, but who to outsource to and how.
Do you outsource? Please share your experience in comments bellow.
Professional Software Development
The mobile app development industry is thriving and continuing to evolve year after year. In 2014, we saw mobile app market maturing from smartphones and tablets to wearable devices and Internet of Things. There was also an increased focus on app analytics and mobile app marketing. Actualy developers don’t need us to tell them that the app landscape is constantly changing. But it never hurts to pause for a moment and look into exactly how it’s changing:
1. Swift surges onto developer scene
Anyone in the technology business knows it’s rarely an “if you build it, they will come” proposition. Adoption of new technologies and products—even trendy ones—can take a while. So the rise in usage of Apple’s Swift language for iOS apps is certainly noteworthy: According to VisionMobile’s survey of 8,000 developers, one in five were using Swift just four months after its public launch. Compare that with a 39% usage share for Objective C (which obviously had a bit of a head start with iOS-centric devs) among device-side developers. That’s rapid adoption, to put it mildly.
A decent chunk of early Swift developers—nearly a quarter of them—are new to iOS development. But VisionMobile notes Objective C isn’t going anywhere anytime soon, and the best iOS developers will have both languages in their toolbox: “For at least the next few years it seems that practically speaking it’ll be necessary to learn both languages to be an accomplished iOS developer,” the report reads.
2. Cross-platform tools growing in popularity
The State of the Developer report found third-party tool use among mobile developers, in particular, at an all-time high: 83% of respondents use at least one third-party tool for things like analytics, crash reporting, and testing. Even more notable, use of cross-platform tools has jumped from 23% to 30% during the past six months. What goes into selecting the right tools? One tech exec noted the importance of choosing a stable provider that’s going to be around for the long haul.
3. Enterprise apps make more money than consumer apps
Smartphones continue to fly off the shelves and the app stores teem with activity, yet there’s no guarantee your app will earn a dime. In fact, developers working on enterprise apps are much more likely to make money, and it’s not even close: 43% of developers focused on enterprise apps hit or exceed $10,000 per month in revenue, compared with just 19% of consumer app developers. Many consumers aren’t eager to shell out real money for mobile and other digital apps. On the other hand, as VisionMobile’s report says, “businesses are very willing to pay for software that helps them be productive and make money.”
4. The Internet of Things is hot, even if the payoff isn’t imminent
Plenty of developers are investing energy in something that might take a while to deliver a tangible payoff: the Internet of Things: (IoT). More than half (53%) of developers included in the report say they’re working on some form of IoT project. Interestingly, many are doing so as a side project or hobby, not their actual job. It’s no real surprise that the biggest areas of current interest within the broad IoT universe are those where existing mobile platforms—namely iOS and Android—have a clear stake, such as the smart home/smart building and wearable computing markets.
While it’s still early days, VisionMobile’s report cites an enormous upside in the IOT for the developer community at large: “The [IoT] products with the best software will be the most desirable; hence developers become essential to creating competitive products.”
Put it all together and you get a picture of a mobile development market that continues to evolve rapidly in everything from tools and languages to device platforms and economics. Keeping up with the changes can be almost as challenging as doing your actual job, but that’s one reason why mobile is such an exciting area right now.
Professional Software Development